快捷键

光标移动 说明
h 向左移动光标
j 向下移动光标
k 向上移动光标
l 向右移动光标
Ctrl+fPage Down 屏幕向下移动一页
Ctrl+bPage Up 屏幕向上移动一页
Ctrl+d 屏幕向下移动半页
Ctrl+u 屏幕向上移动半页
+ 光标向下移动一列
- 光标向上移动一列
n+空格 n代表数字,光标向右移动n列
0功能键Home 数字0,光标移动到当前列第一个字符
$功能键End 光标移动到当前列最后一个字符
H 光标移动到首行第一个字符
M 光标移动到屏幕中间行第一个字符
L 光标移动到屏幕末行第一个字符
G 移动到文件最后一列
n+G n代表数字,移动光标到文件的第n列
gg 移动到文件的第一列
n+回车 n代表数字,光标向下移动n列
搜索-替换 说明
/word 向光标下方搜索字符
?word 向光标上方搜索字符
n 这个 n 是英文按键。代表“重复前一个搜寻的动作”。举例来说,如果刚刚我们执行/test 去向下搜寻 test这个字串,则按下 n 后,会向下继续搜寻下一个名称为test的字串。如果是执行 ?vtest 的话,那么按下 n 则会向上继续搜寻名称为test的字串!
N 与小n功能相反
:n1,n2s/word1/word2/g n1 与 n2 为数字。在第 n1 与 n2 列之间寻找 word1 这个字串,并将该字串取代为word2 !举例来说,在 100 到 200 列之间搜寻 test 并取代为 TEST 则:“:100,200s/test /TEST /g”
:1,$s/word1/word2/g 从第一列到最后一列寻找 word1 字串,并将该字串取代为word2 !
1,$s/word1/word2/gc 从第一列到最后一列寻找 word1 字串,并将该字串取代为word2 !且在取代前显示提示字符给使用者确认(confirm)是否需要取代!
删除-复制-粘贴 说明
x,X 在一列字当中,x 为向后删除一个字符(相当于 [del] 按键),X 为向前删除一个字符(相当于 [backspace] 亦即是倒退键
nx n 为数字,连续向后删除 n 个字符。举例来说,我要连续删除 10 个字符,“10x”。
dd 删除光标所在的那一整列
ndd n 为数字。删除光标所在的向下 n 列,例如 20dd 则是删除 20 列
d1G 删除光标所在到第一列的所有数据
dG 删除光标所在到最后一列的所有数据
d$ 删除光标所在处,到该列的最后一个字符
d0 那个是数字的 0 ,删除光标所在处,到该列的最前面一个字符
yy 复制光标所在的那一列
nyy n 为数字。复制光标所在的向下 n 列,例如 20yy 则是复制 20 列
y1G 复制光标所在列到第一列的所有数据
yG 复制光标所在列到最后一列的所有数据
y0 复制光标所在的那个字符到该列行首的所有数据
y$ 复制光标所在的那个字符到该列行尾的所有数据
p,P p 为将已复制的数据在光标下一列贴上,P 则为贴在光标上一列!举例来说,我目前光标在第 20 列,且已经复制了 10 列数据。则按下 p 后,那 10 列数据会贴在原本的 20 列之后,亦即由 21 列开始贴。但如果是按下 P 呢?那么原本的第 20 列会被推到变成 30 列。
J 将光标所在列与下一列的数据结合成同一列
c 重复删除多个数据,例如向下删除 10 列,[ 10cj ]
u 复原前一个动作
Ctrl+r 重做上一个动作。
. 意思是重复前一个动作的意思。如果你想要重复删除、重复贴上等等动作,按下小数点“.”就好了!

从一般模式进入编辑模式,对应的常用操作键:

操作 说明
i,I 进入插入模式(Insert mode):i 为“从目前光标所在处插入”, I 为“在目前所在列的第一个非空白字符处开始插入”。
a,A 进入插入模式(Insert mode):a 为“从目前光标所在的下一个字符处开始插入”, A 为“从光标所在列的最后一个字符处开始插入”。
o,O 进入插入模式(Insert mode):这是英文字母 o 的大小写。o 为“在目前光标所在的下一列处插入新的一列”;O 为在目前光标所在处的上一列插入新的一列!
r,R 进入取代模式(Replace mode):r 只会取代光标所在的那一个字符一次;R会一直取代光标所在的文字,直到按下ESC 为止。
ESC 退出编辑模式,回到一般指令模式中

从一般指令模式进入指令列模式下对应的常用操作键:

操作 说明
:w 保存
:w! 强制保存
:q 不报错退出
:q! 强制不保存退出
:wq 保存并退出
ZZ 保存修改后退出
:w+filename 另存为指定文件名
r+filename 读入指定文件的内容到光标下面
n1,n2 w+filename 将n1到n2列的内容存储到指定文件名
:!command 暂离vi/vim编辑执行后面的command,按Enter后返回
:set nu 显示行号
:set nonu 取消显示行号
:nohl 取消搜索高亮显示,永久禁用搜索高亮显示可执行命名echo "set nohlsearch" >> ~/.vimrc