Linux | vim 编辑器

列举 vim 编辑器中常用的三种模式

Posted by Haauleon on March 11, 2021

vim 普通模式

  在普通模式中用的编辑器命令,比如移动光标,删除文本等等,这些都是vim启动后的默认模式。

一、浏览文本

  在普通模式下,可以使用移动游标的方式来浏览当前文本的上下文。

1
2
3
4
5
6
h     # 左移 
l     # 右移  
j     # 下移 
k     # 上移 
w     # 移动至下一个单词  
b     # 移动至上一个单词



二、删除文本

  在普通模式下,可以使用以下命令来进行当前文本的删除操作。

1
2
3
4
5
6
7
8
x     # 删除游标所在的字符 
X     # 删除游标所在的前一个字符 
dd    # 删除游标所在的一整行 
dw    # 删除一个单词 
D     # 删除游标所在的位置直到行尾 
d^    # 删除游标所在的位置直到行首 
dG    # 删除游标所在的位置直到文档结尾处 
d1G   # 删除游标所在的位置直到文档首部



三、vim重复命令

1、重复执行上次命令   普通模式下的小数点.表示重复上一次的命令操作。举个例子,在普通模式下输入dd删除整行后,再按下.也会删除整行。

2、执行指定次数相同的命令   普通模式下的N<command> 中的N表示重复命令的次数。举个例子,输入10dd表示删除10行文本,输入5x表示删除5个连续字符。

四、游标快速跳转定位

  在普通模式下,为了快速找到对应行数的文本,可以使用以下命令进行快速定位。

1
2
3
nG      # 游标移动至第n行 
gg      # 游标移动至第1行 
G       # 游标移动至最后一行


解决文本没有显示行号的问题:

  1. 若当前处于普通模式,需按下i进入命令模式
  2. 在命令模式下,输入:set num后即可显示行号

小技巧  完成跳转后,可按下组合快捷键 Ctrl+o 快速回到跳转前光标所在的位置。该技巧的应用场景——你在写代码时,突然想到有个 bug需要修复,这时候你跳转到对应的行数去改好了,这时只需按下 Ctrl+o 就可以回到你之前写代码的位置。

五、行内快速跳转定位

  在普通模式下,可以使用以下命令在行内以单词为单位进行跳转。举个例子,

1
2
3
4
5
6
7
8
w         # 到下一个单词的开头
e         # 到当前单词的结尾
b         # 到前一个单词的开头
ge        # 到前一个单词的结尾
0或^      # 到行头 
$         # 到行尾 
f<字母>   # 从游标当前所在位置向后搜索并跳转到第一个匹配的位置
F<字母>   # 从游标当前所在位置向前搜索并跳转到第一个匹配的位置



六、复制及粘贴文本

  在普通模式下,可以使用命令y进行文本复制,然后使用命令 p 进行文本粘贴。

1
2
3
4
5
6
7
yy       # 复制游标所在的整行(3yy表示复制3行) 
y^       # 复制至行首,或y0。不含光标所在处字符 
y$       # 复制至行尾。含光标所在处字符 
yG       # 复制至文本末 
y1G      # 复制至文本开头 
p(小写)  # 代表粘贴至光标后(下) 
P(大写)  # 代表粘贴至光标前(上)



七、剪切及粘贴文本

  在普通模式下,删除命令dd 等同于剪切。举个例子,首先使用命令dd 删除当前行,然偶胡找到要粘贴的位置,最后使用命令 p 进行粘贴。这一点可以实现一个很爽快的功能——交换上下行

1
2
3
4
dd        # 剪切 
5G        # 光标移动至第5行
p(小写)   # 粘贴至光标后(下) 
P(大写)   # 粘贴至光标前(上)



vim 插入模式

  在普通模式下,按下i键(插入)或a键(附加)键都可以进入插入模式。在当前模式中,大多数按键都会向文本缓冲中插入文本。

  在插入模式中,按下ESC键可以退出当前模式,回到普通模式。

一、编辑文本

  在普通模式下,可以使用以下命令从相应的位置进入插入模式,并进行文本的输入和编辑。

1
2
3
4
5
6
i          # 在当前光标处进行编辑  
I          # 在行首进行编辑 
A          # 在行末进行编辑 
a          # 在光标后进行编辑 
o          # 在当前行后插入一个新行 
O          # 在当前行前插入一个新行



vim 命令行模式

  在普通模式下,按下 : 键可以进入命令行模式。在当前模式中,可以输入能被解释并执行的文本。举个例子,执行命令需按下:键,在命令执行之后,vim将返回到命令行模式之前的模式——通常是普通模式;搜索需按下/?键,过滤命令需按下!键。


一、退出vim

  在命令行模式下,可以使用以下命令可退出当前模式。

1
2
3
4
5
6
7
:q!                # 强制退出,不保存  
:q                 # 保存  
:wq!               # 强制退出并保存  
:wq                # 保存并退出  
:x                 # 保存并退出  
:w 文件路径         # 另存为  
:saveas 文件路径    # 另存为