vi编辑器工作模式
- 命令模式
- 输入模式
- 末行模式
命令模式
- 光标移动键:h:左 j:下 k:上 l:右
- 7h:光标向左7个字符,同理5j:光标向下移动5个字符
- w :移动到下一个单词的词首
- 2w : 向后跳转2个单词
- e:跳到当前单词的结尾,如果光标在词尾则移动到下一个词的词尾
- b:跳转至当前词的词首,如果光标在词首则移动到上一个词的词首
- 0:绝对行首
- $:绝对行尾
- ^:行首第一个非空白字符
- 7G:跳转至文本的第7行
- G:跳转至文本的最后1行
- -:跳转至上一行的行首(非空字符)
- +:跳转至下一行的行首(非空字符)
输入模式
- i:在当前光标前插入字符
- a:在当前光标之后插入字符
- O:向上新建一行,插入字符
- o:向下新建一行,插入字符
末行模式:( esc -> : )
- w:保存数据
- q:不保存数据退出编辑器
- !:强制 (组合命令:wq!:强制保存并退出)
- wq:保存数据并退出编辑器-->等价于x
- 数字N:直接跳转至文本的第N行的行首(飞空字符)
- /: 斜杠后输入字符,可以查询字符文本,匹配的字符高亮显示
删除命令 d(组合使用)
- x:删除光标所在处的单个字符
- 2x:删除光标所在处向后的共2个字符
- dd:剪切整行(类似删除一行的效果):使用p命令粘贴即可
- dw:删除当前字符,并连接当前单词和下个单词
- 2dw :删除当前字符和第二个单词,与第三个单词连接
- 2dd:删除从光标所在处向后剪切2行(效果等价删除2行)
案例:0,$d:末行模式下运行即可清除整个文件的内容
d光标目标位置
- d0:删除行内当前光标左边的所有字符(包含空白字符)
- d$:删除行当前光标之后的字符
末行模式:删除行数**(定位符在前面)
- 1,2d:删除1-2行字符
- +2d:光标所在行的向下删除2行(光标所在行不删除)
- .d:删除光标当前行:’.’相对路径表示当前行
- $d:删除最后一行
复制/粘贴:(行为单位)
- 复制命令:y/yy
- 粘贴命令:p(内容粘贴在光标所在行的下一行)
- P:与p命令相反(粘贴至光标的上一行)
- r:替换光标所在的字符
- R:从光标位置开始向后替换字符
- u:撤销前一次编辑操作(可以连续撤销)
- 2u:撤销前2次操作
- ctrl+r:VI撤销撤销命令
- word:撤销撤销 ctrl+y
VI编辑器可视化
- v:可视化:选中光标滑动的字符
- V:矩形化操作:整行处理