i/a |
从光标所在位置以前、以后开始插入 |
I/A |
光标移到行首、行尾,而后开始插入 |
o/O |
光标所在行的下、上新插入一行,而后开始插入 |
G |
光标移动到文件最后一行的行首 |
nG |
相对文件的开始的第n行开始,如:1G光标移到第1行开始 |
$ |
光标移到当前所在行的行尾 |
n$ |
光标移到第n行的行尾 |
0 |
光标移到当前所在行的行首 |
n+/n- |
光标上移或下移n行 |
^ |
光标移到所在行的第一个非空格字符 |
h/j/k/l |
光标左、下、上、右移动 |
H |
光标移至当前屏幕左上角 |
M |
光标移至当前屏幕显示文件的中间行行首 |
L |
光标移到当前屏幕最后一行行首 |
rc |
用字符c替换光标所指向的当前字符 |
nrc |
用字符c替换从光标开始的n个字符 |
x |
删除光标所在处的字符 |
nx |
删除从光标所在位置开始向右的n个字符 |
dw |
删除一个单词。若光标处在某个词中间,则从光标所在位置开始删除至词尾并连同空格 |
ndw |
删除n个指定的单词 |
db |
删除光标所在位置以前的一个词 |
ndb |
删除光标所在位置以前的n个词 |
dd / D |
删除光标所在整行 |
ndd |
删除光标所在行及以后的n-1行 |
dG |
删除光标所在位置至文件尾的全部内容 |
d1G |
删除光标所在位置到文件首的全部内容 |
d$ |
删除光标所在位置到当前行的末尾的内容 |
d0 |
删除光标所在位置到当前行的开始的内容 |
yy |
将当前行的内容复制到缓冲区 |
nyy |
将当前开始的n行内容复制到缓冲区 |
yG |
将当前光标所在位置到最后一行的全部内容复制到缓冲区 |
y1G |
将当前光标所在位置到第1行的全部内容复制到缓冲区 |
y$ |
将当前光标所在位置到当前行的末尾的内容复制到缓冲区 |
y0 |
将当前光标所在位置到当前行的开始的内容复制到缓冲区 |
p |
将缓冲区的内容写出到光标所在位置 |
/str |
向右移动到有str的地方 |
?str |
往左移动到有str的地方 |
n |
向相同的方向移动到下一个有str的地方 |
N |
向相反的方向移动到下一个有str的地方 |
u |
撤销前一次操做 |
ZZ |
存盘退出 |
ZQ |
不保存退出 |
:n | 直接输入要移动到的行号便可实现跳行 |
:/str/ |
从当前光标开始往右移动到有str的地方 |
:?str? |
从当前光标开始往左移动到有str的地方 |
:/str/w file |
将包含有str的行写到文件file中 |
:/str1/,/str2/w file |
将从str1开始到str2结束的内容写入file文件中 |
:s/str1/str2/ |
将找到的第1个str1替换为str2 |
:s/str1/str2/g |
将找到的全部str1替换为str2 |
:n1, n2s/str1/str2/g |
将从n1~n2行找到的全部str1替换为str2 |
:1,.s/str1/str2/g |
将第1行到当前位置的全部str1替换为str2 |
:.,$s/str1/str2/g |
将从当前位置到结尾的全部str1替换为str2 |
:1,$s/str1/str2/gc |
将从第1行到最后一行的全部str1替换为str2,并在替换前询问 |
:n1,n2 co n3 |
把从n1开始到n2为止的全部行的内容复制到n3行的后面 |
:n1,n2 m n3 |
把从n1开始到n2为止的全部行的内容移动到n3行的后面 |
:d |
删除当前行 |
:nd |
删除从当前所开始的n行 |
:n1,n2 d |
删除从n1开始到n2为止的全部行的内容 |
:.,$d |
删除从当前行到结尾的全部内容 |
:/str1/,/str2/d |
删除从str1开始到str2为止的全部内容 |
:w | 将当前编辑的内容存盘 |
:w file | 将当前编辑的内容写到file文件中 |
:n1,n2w file | 将从n1开始到n2结束的行写入到file中 |
:nw file | 将第n行写入到file中 |
:1,.w file | 将从第1行到当前光标位置的全部内容写入到file中 |
:.,$w file | 将从当前光标位置到文件结尾的全部内容写入到file中 |
:r file | 找开另外一个文件file |
:e file | 新建file文件 |
:f file | 把当前文件更名为file |
:!Cmd | 运行Shell命令Cmd |
:n1,n2 w ! Cmd | 将n1~n2行的内容做为Cmd命令的输入,若是不指定,则将整个文件做为命令的输入 |
:r ! Cmd | 将命令运行结果写入当前行位置 |
:q | 退出Vi |
:wq | 退出保存Vi |
:q! | 不保存退出Vi |
:set autoindent | 缩进每一行,使之与前一行相同。 |
:set noautoindent | 取消缩进 |
:set number | 在编辑文件时显示行号 |
:set nonumber | 不显示行号 |
:set ruler | 在屏幕底部显示光标所在的行、列位置 |
:set noruler | 不显示光标所在行、列位置 |
:set tabstop=value | 设置显示制表符空格字符个数 |
:set wrapmargin=value | 设置显示器的右页边。当输入进入所设置的页边时,编辑器自动回车换行 |
:set | 显示设置的全部环境选项 |
:set all | 显示全部能够设置的环境选项 |