一、打开文件、保存、关闭文件(vi命令模式下使用)
vi filename //打开filename文件
:w //保存文件
:w vpser.net //保存至vpser.net文件
:q //退出编辑器,如果文件已修改请使用下面的命令
:q! //退出编辑器,且不保存
:wq //退出编辑器,且保存文件
ZZ //推出并保存
二、插入文本或行(vi命令模式下使用,执行下面命令后将进入插入模式,按ESC键可退出插入模式)
a //在当前光标位置的右边添加文本
i //在当前光标位置的左边添加文本
A //在当前行的末尾位置添加文本
I //在当前行的开始处添加文本(非空字符的行首)
O //在当前行的上面新建一行
o //在当前行的下面新建一行
R //替换(覆盖)当前光标位置及后面的若干文本
J //合并光标所在行及下一行为一行(依然在命令模式)
三、移动光标(vi命令模式下使用)
1、使用上下左右方向键
2、命令模式下:h 向左、j 向下 、k 向上、l 向右。
空格键 向右、Backspace 向左、Enter 移动到下一行首、- 移动到上一行首。
3. w : 向后移动一个单词, b 向前移动一个单词。 e向后移动到单词词尾, ge向前移动到一个单词的词首。 W, B, E移动的单词以空白符为分割符。
4. $ :移动到行尾, 0 移动到行首, ^ 移动到本行第一个非空字符
5. fx, 移动到本行下一个x字符,Fx,向前。 tx,移动到字符x前一个字符。 Tx,向前。
6. %括号匹配。
7. xG, 到x行。 G到最后一行, gg到首行。
8. 50%, 90%: 移动到文档的一半,90%处。
9. H, M, L 移动到可视范围内的头,中,尾。
10. CTRL-G: 显示目前位置, :set number 显示行号, :set ruler:显示光标的位置。
11. CTRL-U,向上移动半屏, CTRL-D向下移动半屏。
12. *命令, 查找光标坐在单词。 #命令,反方向。
13. /< 词首, >/ 词尾。
14. `m: 移动到m标签。 ``切换标签。 ms, 把当前位置作为s标签。
四、删除、恢复字符或行(vi命令模式下使用)
x //删除当前字符
nx //删除从光标开始的n个字符
dd //删除当前行
ndd //向下删除当前行在内的n行
u //撤销上一步操作
U //撤销对当前行的所有操作
Ctrl-R //撤销一个撤销
五、搜索(vi命令模式下使用)
/vpser //向光标下搜索vpser字符串
?vpser //向光标上搜索vpser字符串
n //向下搜索前一个搜素动作
N //向上搜索前一个搜索动作
六、跳至指定行(vi命令模式下使用)
n+ //向下跳n行
n- //向上跳n行
nG //跳到行号为n的行
G //跳至文件的底部
七、设置行号(vi命令模式下使用)
:set nu //显示行号
:set nonu //取消显示行号
八、复制、粘贴(vi命令模式下使用)
yy //将当前行复制到缓存区,也可以用 "ayy 复制,"a 为缓冲区,a也可以替换为a到z的任意字母,可以完成多个复制任务。
nyy //将当前行向下n行复制到缓冲区,也可以用 "anyy 复制,"a 为缓冲区,a也可以替换为a到z的任意字母,可以完成多个复制任务。
yw //复制从光标开始到词尾的字符。
nyw //复制从光标开始的n个单词。
y^ //复制从光标到行首的内容。 VPS侦探
y$ //复制从光标到行尾的内容。
p //粘贴剪切板里的内容在光标后,如果使用了前面的自定义缓冲区,建议使用"ap 进行粘贴。
P //粘贴剪切板里的内容在光标前,如果使用了前面的自定义缓冲区,建议使用"aP 进行粘贴。
x 删除光标下的字符 ("dl" 的缩写) X 删除光标前的字符 ("dh" 的缩写) D 从当前位置删除到行尾 ("d$" 的缩写) dw 从当前位置删除到下一个单词开头 db 从当前位置删除到前一个单词的开头 diw 删除光标上的单词 (不包括空白字符) daw 删除光标上的单词 (包括空白字符) dG 删除到文件末 dgg 删除到文件首
九、替换(vi命令模式下使用)
:s/old/new //用new替换行中首次出现的old
:s/old/new/g //用new替换行中所有的old
:n,m s/old/new/g //用new替换从n到m行里所有的old
:%s/old/new/g //用new替换当前文件里所有的old
十、编辑其他文件
:e otherfilename //编辑文件名为otherfilename的文件。
十一、修改文件格式
:set fileformat=unix //将文件修改为unix格式,如win下面的文本文件在linux下会出现^M。
十二、下是vim关于窗口分割的命令:(以下命令在最后一行模式下)
:split(开启另一个窗口察看同一文件)
:split 文件名(开启另一个窗口察看指定文件)
:vsplit(开启另一个窗口察看同一文件)
:vsplit 文件名(开启另一个窗口察看指定文件)
CTRL-W
h 跳转到左边的窗口CTRL-W
j 跳转到下面的窗口CTRL-W
k 跳转到上面的窗口CTRL-W
l 跳转到右边的窗口CTRL-W
t 跳转到最顶上的窗口CTRL-W
b 跳转到最底下的窗口
ctrl-v
进入纵向编辑模式
G
移动游标到最后一行,可视块覆盖所要修改的列
r
进入修改模式
5
输入数字“5”
ESC
退出纵向编辑模式,同时所有被选中的数字都被改成了“5”,并回到命令模式
% | 跳转到配对的括号去 |
[[ | 跳转到代码块的开头去(但要求代码块中'{'必须单独占一行) |
gD | 跳转到局部变量的定义处 |
'' | 跳转到光标上次停靠的地方, 是两个', 而不是一个" |
mx | 设置书签,x只能是a-z的26个字母 |
`x | 跳转到书签处("`"是1左边的键) |
> | 增加缩进,"x>"表示增加以下x行的缩进 |
< | 减少缩进,"x<"表示减少以下x行的缩进 |
zz: 将当前行置于屏幕中间(不是转载…)
zt: 将当前行置于屏幕顶端(不是猪头~)
zb:底端啦~
【vim切换buffer】
命令 ls 可查看当前已打开的buffer
命令 b num 可切换buffer (num为buffer list中的编号)
其它命令:
:bn -- buffer列表中下一个 buffer
:bp -- buffer列表中前一个 buffer
:b# -- 你之前所在的前一个 buffer
:bdelete num -- 删除第num编号buffer