您的位置:首页 > 其它

vi-学习笔记整理

2020-06-06 06:29 316 查看

vi 简介

vi 是一款无图形界面的环境下的编辑工具

vi 的特点:
没有图形界面 的 功能强大 的编辑器
只能是编辑 文本内容,不能对字体、段落进行排版
不支持鼠标操作
没有菜单
只有命令

vi 和 vim
在很多 Linux 发行版中,直接把 vi 做成 vim 的软连接
vi
vi 是 Visual interface 的简称,是 Linux 中 最经典 的文本编辑器
vi 的核心设计思想 —— 让程序员的手指始终保持在键盘的核心区域,就能完成所有的编辑操作
vim = vi improved vim可以看做vi的升级版

vim 安装
安装参考

打开和新建文件
在终端中输入 vi/vim+文件名
如果文件已经存在,会直接打开该文件
如果文件不存在,会新建一个文件

退出vi
Esc退出编辑模式后,shitf+; 键
输入 q 表示不保存退出vi
输入 :wq/:x 保存后退出

打开文件并且定位行
vi /vim 文件名 +行数 (注意空格位置)

提示:如果只带上 + 而不指定行号,会直接定位到文件末尾;如果不跟+,会定位到文件首行

vi异常处理
如果 vi 异常退出,在目录下方会产生一个 .swp的隐藏文件,为交换文件,下次再使用 vi 编辑该文件时,会看到以下屏幕信息,按下字母 d 可以 删除交换文件即可

vi三种工作模式及常用命令

  • 命令模式
    打开文件首先进入命令模式,是使用 vi 的 入口
    通过 命令 对文件进行常规的编辑操作,例如:定位、翻页、复制、粘贴、删除……
    在其他图形编辑器下,通过 快捷键 或者 鼠标 实现的操作,都在 命令模式 下实现

  • 末行模式 —— 执行 保存、退出 等操作
    要退出 vi 返回到控制台,需要在末行模式下输入命令
    末行模式 是 vi 的 出口

  • 编辑模式 —— 正常的编辑文字

末行模式命令

  • w 保存
  • q 退出,如果没有保存,不允许退出
  • q! 强行退出,不保存退出
  • wq 保存并退出
  • x 保存并退出

命令模式命令
提示:在命令模式下,先输入一个数字,再跟上一个命令,可以让该命令 重复执行指定次数
移动光标

  • h 向左
  • j 向下
  • k 向上
  • l 向右

行内移动

  • w 向后移动一个单词
  • b 向前移动一个单词
  • 0 行首
  • ^ 行首,第一个不是空白字符的位置
  • $ 行尾

行数移动

  • gg 文件顶部
  • G(shitf+g) 文件末尾
  • 数字gg 移动到 数字 对应行数
  • 数字G 移动到 数字 对应行数
  • :数字(shit+;为:) 移动到 数字 对应行数

屏幕移动

  • Ctrl + b 向上翻页
  • Ctrl + f 向下翻页
  • H 屏幕顶部
  • M 屏幕中间
  • L 屏幕底部

段落移动
vi 中使用 空行区分段落

  • { 上一段
  • } 下一段
    括号切换
  • % 括号匹配及切换

选择文本
vi 中要选择文本,首先要使用命令切换到可视模式,vi中可视模式一共有三种
然后按下↑↓←→方向键来选中需要复制的区域

  • v 可视模式 从光标位置开始按照正常模式选择文本

  • V 可视行模式 选中光标经过的完整行

  • Ctrl + v 可视块模式 垂直方向选中文本

    撤销和恢复撤销

  • u 撤销上次命令

  • CTRL + r 恢复撤销的命令

删除

  • x 删除光标所在字符,或者选中文字
  • d(移动命令) 删除移动命令对应的内容
  • dd 删除光标所在行,可以 数字+dd 删除多行
  • D 删除至行尾
  • dw 删除一个单词
  • dG 删除至行的内容
  • d0 从光标位置删除到一行的起始位置
  • d} 从光标位置删除到段落结尾

复制、粘贴

  • y(移动命令) 复制当前光标选中内容
  • yy 复制一行,可以 nyy 复制多行
  • p 粘贴

命令 d、x类似于 CTRL + X 剪切操作
命令 y类似于 CTRL + C 复制操作
命令 p类似于CTRL + V 粘贴操作

vi 中提供有一个 被复制文本的缓冲区
复制和删除 命令都会将选中的文字保存在缓冲区
使用 粘贴 命令可以将缓冲区的文字插入到光标所在位置
vi 中的 文本缓冲区同样只有一个,如果后续做过 复制、剪切 操作,之前缓冲区中的内容会被替换,但缓冲区和系统的剪切板并不是同一个,因此不能使用CTRL+V 来将系统中通过CTRL+C的内容粘贴到vi中,但是可以通过鼠标右键在编辑模式下粘贴

替换
需在命令模型下,替换完成后,按下 ESC 可以回到 命令模式

  • r 替换当前字符
  • R 替换当前行光标后的字符

缩排和重复执行

  • >> 向右增加缩进(缩进一次性4个空格大小)
  • << 向左减少缩进
  • . 重复上次命令

查找字符串

  • /str 查找 str

查找到指定内容之后

  • n: 查找下一个
  • N: 查找上一个
  • 查找一个文件中不存在,取消高亮显示

匹配字符串

  • * 向后查找当前光标所在单词
  • # 向前查找当前光标所在单词

查找并替换
需在末行模式下

全局替换

  • :%s/旧文本/新文本/g,替换区分大小写

可视区域替换

  • 先在可视模式下,选取要替换的内容
  • 然后通过 : s/旧文本/新文本/g,替换区分大小写
  • 注意:可视模式区域替换不同于全局替换,前面无%

如果在使用查找替换命令时候,希望出现提示信息,可以将末尾的 g 改成 gc 在替换的时候,即

  • :%s/旧文本/新文本/gc

  • y - yes 替换
  • n - no 不替换
  • a - all 替换所有
  • q - quit 退出替换
  • l - last 最后一个,并把光标移动到行首
  • ^E 向下滚屏
  • ^Y 向上滚屏

插入命令

  • i 在当前字符前插入文本

  • I 在行首插入文本

  • a 在当前字符后添加文本

  • A 在行末添加文本

  • o 在当前行后面插入一空行

  • O 在当前行前面插入一空行

    案例:多行代码增加注释

  • 移动到要添加注释的 代码的第 1 行,按 ^ 定位到该行行首

  • 按 CTRL + v 进入 可视块 模式

  • 向下选中要添加的代码行

  • 输入 I 进入 编辑模式,并在 行首插入

  • 输入 # 也就是注释符号

  • 按下 ESC 返回到 命令式

切换文件和新建文件
需在末行模式下

  • :e . 会打开内置的文件浏览器,浏览要当前目录下的文件
  • :n 文件名 新建文件
  • :w 文件名 另存为,但是仍然编辑当前文件,并不会切换文件

分屏

  • :sp [文件名] 横向增加分屏
  • :vsp [文件名] 纵向增加分屏

    分屏窗口快捷键命令都是基于 CTRL + W ,使用方式为 CTRL + W +命令
  • CTRL + W + w 切换到下一个窗口
  • CTRL + W + r 互换窗口
  • CTRL + W+ c 关闭当前窗口,但是不能关闭最后一个窗口
  • CTRL + W + q 退出当前窗口,如果是最后一个窗口,则关闭 vi
  • CTRL + W + o 关闭其他窗口
  • CTRL + W + + 增加窗口高度
  • CTRL + W + - 减少窗口高度
  • CTRL + W + > 增加窗口宽度
  • CTRL + W + < 减少窗口宽度- CTRL + W + = 等分窗口大小

常用命令也可参考

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: