0%

Linux | Vim 常用操作

四种模式

vi 有两种模式,命令模式插入模式,vim 作为 vi 的增强版多了两种模式,普通模式可视模式

            graph LR
            A(普通模式) -->|i/a...| B(插入模式)
A(普通模式) -->|shift + :| C(命令模式)
A(普通模式) -->|v/V...| D(可视模式)
B -->|Esc| A
C -->|Esc| A
D -->|Esc| A
          

可以通过底部状态行看出所处的模式:

  • ①普通模式 ,打开文件后所处的就是普通模式
  • ②插入模式 ,编辑文件时的模式
  • ③命令模式 ,可以查找、替换等十分丰富的操作
  • ④可视模式 ,可以实现光标选择整块文字的操作

各模式间的转换方法:

  • ②③④==>① 按 esc 键 (所以,没事可以多按按 esc)
  • ①==>② 按 i/a 在光标前/后插入;按 I/A 在行首/尾插入;按 o/O 在当前行的下/上新建行;按 s 删除光标所在字符再插入;按 S 删除光标所在行再插入
  • ①==>③ 按分号(shift + :)
  • ①==>④ 按 v 可视模式 visual;按 V 可视行模式 visual line;按 ctrl+v/V 可视列模式 visual block。

普通模式

  • hjkl 前下上后
  • 0 跳转至本行头
  • ^ 跳转至本行前第一个非空字符
  • g_ 跳转至本行最后一个非空字符
  • $ 跳转至本行尾
  • fx 跳转至本行下一个字符 x 处
  • tx 跳转至本行字符 x 前一个字符
  • 1G 跳转到第一行
  • nG 跳转至第 n 行
  • G 跳转到最后一行(文末)
  • /word 向下查找文字(按 n 查找下一个)
  • ?word 向上查找文字(按 n 查找下一个)
  • u 撤销操作
  • . 重复上一指令
  • ZZ 等同于 :wq
  • yy 复制当前整行
  • y$ 复制光标后该行内容
  • p 粘贴到光标的下一行
  • d$ 删除光标后该行内容
  • dd 删除整行
  • dw 删除单词
  • d方向键 删除字符
  • 4dd 删除光标行及下面 4 行
  • J 光标行与下一行合并

命令模式

:后输入以下内容,然后回车:

  • w 保存,不退出。后可跟文件名
  • wq 保存,退出
  • q! 不保存,强制退出
  • set number 显示行号
  • set list 显示回车符和 TAB 符
  • n1,n2 m n3 移动 n1-n2 行(包括 n1,n2)到 n3 行之下
  • n1,n2 co n3 复制 n1-n2 行(包括 n1,n2)到 n3 行之下
  • n1,n2 d 删除 n1-n2 行(包括 n1,n2)行
  • s/a/A/  替换当前行找到的第一个 a 为 A  
  • s/a/A/g  替换当前行找到的所有 a 为 A
  • n1,n2s/a/A/g 替换 n1~n2 行间所 a 为 A
  • 1,$s/a/A/g 替换全文 a 为 A
  • %s/a/A/g 替换全文 a 为 A
  • %s/\r//g 删除行尾的^M

注意:

  • n1 和 n2 规则:为.时,表示当前行$时,表示最后一行
  • a 和 A 规则:^I是 TAB,通过直接点击 TAB 键输入;允许正则表达式
  • %等同于1,$

存稿录入,未完待续……

欢迎关注我的其它发布渠道