保存并退出

ZZ 或者使用 :wq

不保存退出编辑

ZQ 或者使用 :q!

方向键

←H、→L、↑J、↓K

撤销

u

恢复

Ctrl + R

删除

x

向后删除一个字符

de

从光标位置删除到单词末尾

dw
从光标删除至单词的末尾
cw
从光标删除至单词的末尾(并进入”插入模式”)

daw

删除光标所在的单词(delete a word)
caw
删除光标所在的单词(delete a word),并进入”插入模式”。

d0

从当前光标删除到行首

D 以及 d$
从当前光标删除到行末

dd

删除当前行

3dd

删除下3行

C

功能和D相同,区别在于完成删除操作后进入 INSERT MODE

cc
删除当前行,然后进入INSERT MODE

查找/搜索

/要查找的内容

在当前文件中查找该内容(eg. /name),另外还可以↑↓进行查看历史搜索记录。

n

查找下一个。
N
查找上一个。

?要查找的内容:向上查找

*

直接搜索光标所在的单词。

跳转

0(数字0)

光标所在行的行首

$

光标所在行的行末

b

跳转到单词首

e

跳转到单词末

G

光标跳转到最后一行

gg

光标跳转到文件第1行

10gg

光标跳转到第10行

10+

光标下移10行

10-
光标上移10行

屏幕滚动

Ctrl + U

向上(up)滚动(半屏)

Ctrl + D

向下(down)滚动(半屏)

Ctrl + F
向上(forward)滚动(一屏)

Ctrl + B
向下(back)滚动(一屏)

o(英文小o)

在光标下方新开一行并将光标置于新行行首,进入插入模式。
O:同上,在光标上方。

a:在光标之后进入插入模式。
A:同上,在光标之前。

Ctrl + O

上次光标停留位置,重复按可以回退更多步

Ctrl + I

跳转到较新的位置

%

找配对的括号 )、]、}等

  1. 把光标放在本节下面标记有 —> 那一行中的任何一个 (、[ 或 { 处。
  2. 接着按 % 字符。
  3. 此时光标的位置应当是在配对的括号处。
  4. 再次按 % 就可以跳回配对的第一个括号处。
  5. 移动光标到另一个 (、)、[、]、{ 或 } 处,按 % 查看其所作所为。

替换

R

进入替换模式,输入一个字符替换光标所在位置的字符。

输入 cw,改变当前位置
要改变文本直到一个单词的末尾,请输入 ce

:%s/old/new/g

全局替换所有的 old 为 new。

%:表示整个文件

:%s/xxx//gn

不进行替换,只显示符合条件的 xxx 的个数。

复制粘贴

yy

复制当前行

3yy

复制下3行

yaw

复制光标所在的单词

p

粘贴

高阶玩法

set xxx

设置XXX选项
eg.

set nu

显示行信息

设置高亮
:set hlsearch 设置高亮
:set nohlsearch 关闭高亮

:nohlsearch

关闭当前已经设置的高亮

Ctrl + G

显示当前编辑文件中当前光标所在行位置以及文件状态信息。

:! xxx

紧接着输入一个外部命令可以执行该外部命令。

:!dir 或者 :!ls 用于显示当前目录的内容。

:!del FILENAME :!rm FILENAME - 用于删除名为 FILENAME 的文件。

:w FILENAME 可将当前 VIM 中正在编辑的文件保存到名为 FILENAME 的文 件中。

:w temp.bak 可将当前编辑文件中可视模式(v montion)下选中的内容保存到文件 temp.bak** 中。**

:r demo.txt 可提取磁盘文件 **demo.txt** 并将其插入到当前文件的光标位置 后面。

:r !dir 可以读取 dir 命令的输出并将其放置到当前文件的光标位置后面。

.

重复上一次操作