vi/vim上古神器
vi/vim 纯文本编辑器
G或(shift+g) 将光标移动到最后一行
gg 将光标移动到文件的第一行
0(数字0) 将光标从所在位置移动到当前行的开头
$ 将光标从所在位置移动到当前行的结尾
n
ngg n为数字,移动到文件的第n行
H 光标移动到当前窗口最上方的那一行
M 光标移动到当前窗口中间的那一行
L 光标移动到当前窗口最下方的那一行
h或(←) 光标向左移动一个字符
j或(↓) 光标向下移动一个字符
k或(↑) 光标向上移动一个字符
l或(→) 光标向右移动一个字符
/wt 从光标位置开始,向下寻找名为wt的字符串
?wt 从光标位置开始,向上寻找名为wt的字符串
n 从光标位置开始,向下重复前一个搜索动作
N 从光标位置开始,向上重复前一个搜索动作
:g/A/s//B/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 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! 强制退出,不保存
:x 保存并强制退出vi编辑器
:set number(:set nu) 在文件中的每一行前面列出行号
:set nonumber(:set nonu) 取消行号
:set readonly 设置文件为只读状态