vi 的基本操作
Command-Line-Options
vi -r file recover files and recent edit after crash
Text
w b 下一个单词、上一个单词
W B 下一段单词,上一段单词
e 下一段单词的结尾
E 上一段单词的结尾
) 以空一行为一段,显示下一段
( 以空一行为一段,显示上一段
}{ 跟上面差不多段操作为主,跟上面差不多
]]结尾,[[开头
Lines
0 一行的开头,$一行的结尾
^一行的非空白字符的开头
+ 下一行的非空白字符开头
-上一行的非空白字符开头
n| 这一行的第几列
H 屏幕的开头
M 屏幕的中间
L 屏幕的结尾
nH开头往下几行
nL开头往上几行
Scrolling
CTROL+F往下滚屏
CTROL+B往上滚屏
CTROL+D往下滚半屏幕
CTROL+U往上滚半屏幕
z+ENTER 当前光标以上滚上去
Search
/pattern 本行匹配这个单词
;往下寻找匹配的单词
,往上回找
?pattern寻找单词
N下一个匹配的
n上一个匹配的
Ff本行中从光标往前找字符f,停留在f的位置上
Tx本行中从光标往后找字符f,停留在f的位置上
ff本行中往前找字符f,停留在f的位置上
2ff在本行中寻找第二个f
tf从光标往后找字符f,停在f的前面
Line-Number
nG跑到第n行
:n跑到第n行
Marking-Position
mx 在此处标记为x然后通过后面的指令寻找
‘x 找到x的地方
''回到调用处,或者再次回到x处
Insert
//这三个就不说了
i,a
I,A
o,O
Change
cw 改变一个单词
cc改变一行
C从光标处删除到结束
r可以改变单个字符
s删除单个字符,然后进入编辑的模式
R进入替换的模式
S删除当前的行,然后进入编辑的模式
Delete,move
x删除当前的字符,不进入编辑模式
X删除光标前面的字符
ndd删除下面n行
%符号可以在不同的括号之间就行移动
1,9d删除1到9行
dw删除一个单词
dd删除当前的行
d motion 当上下左右的移动将改变删除的东西
D删除光标出到结尾。
p,P将剪切的字符放到当前光标的上面或则下面
Yank
4,6 co 12 第四行到第六行 复制到12 行的下面
np复制几次,相同的信息
yw复制一个单词
"ayy 将一行的内容存入到寄存器中,寄存器有a-z
"aP将寄存器中的内容取出送到光标的前面
Other Commands
. 重复上一次的动作
J合并两行
u,U恢复,撤销恢复
Exit Commands
ZZ保存并退出
:30,60w newfile 30-60行作为一个新的文件
:30,60>>file 30-60行追加到一个文件中
maps
:map x sequence 将x映射为sequence
:unmap x
folds
zc 折叠
zo 展开折叠
zR 展开所有折叠
zM 所有折叠