普通模式:移动光标的操作
G或(shift+g) 将光标移动到文件的最后一行。
gg 将光标移动到文件的第一行,等价于1gg或1G。
0 数字0,将光标从所在位置移动到当前行的开头。
$ 从光标所在位置移动到当前行的结尾。
n<Enter> n为数字,<Enter>为回车键,将光标从当前位置向下移动n行。
ngg n为数字,移动到文件的第n行,如11gg可移动到第11行,可配合 “:set nu”查看。
H 光标移动到当前窗口最上方的那一行。
M 光标移动到当前窗口中间的那一会。
L 光标移动到当前窗口最下方的那一行。
h或(←) 光标向左移动一个字符。
j或(↓) 光标向下移动一个字符。
k或(↑) 光标向上移动一个字符。
l或(→) 光标向右移动一个字符。
普通模式:搜索与替换操作
/liang 从光标位置开始,向下寻找名为liang的字符串。
?liang 从光标位置开始,向上寻找名为liang的字符串。
n 从光标位置开始,向下重复前一个搜索的动作。
N 从光标位置开始,向上重复前一个搜索的动作。
:g/A/s//G/g 把符号A的内容全部替换成B,斜线为分隔符,可以用@、#等替代。
:%s/A/B/g 把符号A的内容全部替换成B,斜线为分隔符,可以用@、#等替代。
:n1,n2s/A/B/gc n1、n2为数字,在第n1行和第n2行直接寻找A,用B替换。
普通模式:复制、粘贴、删除等操作
yy 复制光标所在的当前行。
nyy n为数字,复制光标开始向下共n行。
p(小写) 将已复制的数据粘贴到光标的下一行。
P(大写) 将已复制的数据粘贴到光标的上一行。
dd 删除光标所在的当前行。
ndd n为数字,删除从光标开始向下共n行。
u 恢复(回滚)前一个执行过的动作。
x 向后删除字符。
X 向前删除字符。
d1G 删除当前行至第一行。
dG 删除当前行至最后一行。
d0 删除当前光标文本至行首。
d$ 删除当前光标文本至行尾。
进入编辑模式命令
i 在当前光标所在处插入文字。
a 在当前光标所在的下一个字符插入文字。
I 在当前所在行行首的第一个非空格符处开始插入文字,和A相反。
A 在当前所在行行位的最后一个字符处开始插入文字,和I相反。
O 在当前所在行的上一行插入新的一行。
o 在当前所在行的下一行插入新的一行。
Esc 退出编辑模式,回到命令模式中。
命令行模式:
:wq 退出并保存。
:wq! 退出并强制保存,“!”为强制的意思。
:q! 强制退出,不保存。
:n1,n2 w filename n1、n2为数字,将n1行到n2行的内容保存成filename这个文件。
:n1,n2 co n2 n1、n2为数字,将n1行到n2行的内容复制到n3位置下。
:n1,n2 m n1、n2为数字,将n1行到n2行的内容剪切到n3位置下。
:!command 暂时离开vi到命令行模式下执行command的显示结果,例如,:!ls /etc
:set nu 显示行号。
:set nonu 与set nu相反,取消行号。
:vs filename 垂直分屏显示,同时显示当前文件和filename对应文件的内容。
:sp filename 水平分屏显示,同时显示当前文件和filename对应文件的内容。
I + # + Esc 在可视块模式下(Ctrl+V),一次性注释所选的多行,取消注释可用“:n1,n2s/#/gc”,这里的操作是一个通用的方法,# 号可以换成别的操作,例如Tab键盘,这样就是批量缩进。
Del 在可视化模式下(Ctrl+V),一次性删除所选内容。
r 在可视化模式下(Ctrl+V),一次性替换所选内容。
vim 打开文件的方法小结
vim file 打开/新建文件,光标置于第1行行首,file为任意文件名。
vim file +n 打开文件,光标置于第n行行首,n为自然数。
vim file + 打开文件,光标置于最后一行行首。
vim file +/pattern 将光标置于第一个与pattern匹配的字符串处,pattern为任意字符串。
特别说明:
当如果不知道自己处在什么模式时可以按2次Esc键即可回到命令模式。
最要提醒:注意大小写!!!