(1)移动
k 上
h l 左 右
j 下
% 跳转到相配对的括号
gD 跳转到局部变量的定义处
'' 跳转到光标上次停靠的地方, 是两个', 而不是一个"
0 到行首
$ 到行尾
gg 到页首
G 到页末
行号+G 跳转到指定行
(2)进入和退出Vi命令
ZZ 退出vi并保存
:q! 退出vi,不保存
:wq 退出vi并保存
:e 不保存重新打开
(3)重复
. 重复上一次操作
(4)插入
o 在光标下方新开一行并将光标置于新行行首,进入插入模式。
O 同上,在光标上方。
a 在光标之后进入插入模式。
A 同上,在光标之前。
R 进入替换模式,直到按下Esc
(5)替换
:s/p1/p2/g 将当前行中所有p1均用p2替代,若要每个替换都向用户询问则应该用gc选项
:n1,n2s/p1/p2/g 将第n1至n2行中所有p1均用p2替代
%s/^.//g 删除每行第一个字符
%s/^..//g 删除每行前2个字符,类推
%s/^/xxx/g or %s#^#xxx#g 在每行最前头添加xxx
%s/$/xxx/g or %s#$#xxx#g 在每行最后头添加xxx
%s/xxx/yyy/g or %s#xxx#yyy#g 全局替换,加%表示所有行,g表示一行里全部目标
(6)删除
x 删除当前光标下的字符
dw 删除光标之后的单词剩余部分。
d$ 删除光标之后的该行剩余部分。
cc 也是删除当前行,然后进入INSERT MODE
(7)行合并
J 把下面一行合并到本行后面
(8)设置高亮
:set hlsearch 设置高亮
:set nohlsearch 关闭高亮
:nohlsearch 关闭当前已经设置的高亮
(9)恢复误操作
u 撤销最后执行的命令
U 修正之前对该行的操作
Ctrl+R Redo
(10)复制黏贴
选块 先用v,C-v,V选择一块,然后用y复制,再用p粘贴。
yy 复制当前整行
nyy 复制当前行开始的n行内容
p 黏贴
k 上
h l 左 右
j 下
% 跳转到相配对的括号
gD 跳转到局部变量的定义处
'' 跳转到光标上次停靠的地方, 是两个', 而不是一个"
0 到行首
$ 到行尾
gg 到页首
G 到页末
行号+G 跳转到指定行
(2)进入和退出Vi命令
ZZ 退出vi并保存
:q! 退出vi,不保存
:wq 退出vi并保存
:e 不保存重新打开
(3)重复
. 重复上一次操作
(4)插入
o 在光标下方新开一行并将光标置于新行行首,进入插入模式。
O 同上,在光标上方。
a 在光标之后进入插入模式。
A 同上,在光标之前。
R 进入替换模式,直到按下Esc
(5)替换
:s/p1/p2/g 将当前行中所有p1均用p2替代,若要每个替换都向用户询问则应该用gc选项
:n1,n2s/p1/p2/g 将第n1至n2行中所有p1均用p2替代
%s/^.//g 删除每行第一个字符
%s/^..//g 删除每行前2个字符,类推
%s/^/xxx/g or %s#^#xxx#g 在每行最前头添加xxx
%s/$/xxx/g or %s#$#xxx#g 在每行最后头添加xxx
%s/xxx/yyy/g or %s#xxx#yyy#g 全局替换,加%表示所有行,g表示一行里全部目标
(6)删除
x 删除当前光标下的字符
dw 删除光标之后的单词剩余部分。
d$ 删除光标之后的该行剩余部分。
dd 删除当前行。
删除包含特定字符的行:
g/pattern/d
删除不包含指定字符的行:
v/pattern/d
g!/pattern/d
现实TAB键以及空格等:
set list!
删除指定的行:
:x,.d #从x行删除到当前行;
:.,xd #从当前行删除到x行;
:x,.+3d #从x行删除到当前行后第三行;
:x,.-1d #从x行删除到当前行前一行
cc 也是删除当前行,然后进入INSERT MODE
(7)行合并
J 把下面一行合并到本行后面
(8)设置高亮
:set hlsearch 设置高亮
:set nohlsearch 关闭高亮
:nohlsearch 关闭当前已经设置的高亮
(9)恢复误操作
u 撤销最后执行的命令
U 修正之前对该行的操作
Ctrl+R Redo
(10)复制黏贴
选块 先用v,C-v,V选择一块,然后用y复制,再用p粘贴。
yy 复制当前整行
nyy 复制当前行开始的n行内容
p 黏贴
xdd 剪切x行
(11) 翻页
整页翻页 ctrl-f ctrl-b
f就是forword b就是backward
翻半页
ctrl-d ctlr-u
d=down u=up
滚一行
ctrl-e ctrl-y
zz 让光标所杂的行居屏幕中央
zt 让光标所杂的行居屏幕最上一行 t=top
zb 让光标所杂的行居屏幕最下一行 b=bottom