Vi 编辑器使用技巧



Vi 编辑器使用技巧。

<<关键是 中英文切换着打字太辛苦了 转载请注明出处>>
用惯了windows的人,刚开始接触vi那会是很痛苦的回忆,各种不习惯,不过linux用的多了,敲命令行敲习惯了以后,就算你在用outlook写邮件,写完后会情不自禁的去按 Esc(切换模式),或者在邮件中会出现 :w这样的奇怪内容. 相比UE这样的编辑器,其实vi还是有其他文本编辑器望尘莫及的优势的,只是,不像UE所有的东西都再菜单栏里,vi的一些技巧需要自己去摸索,这里总结些我知道的,平时用到的:

移动:
G=gg : 跳转到文本最后一行
20G : 跳转到第20行
:20 : 跳转到第20行, $最后一行
8+:向下移8行
8-: 向上移8行
8 回车: 向下移8行
8 空格:右移8个字符
8k/j/h/l:上下8行,左右8个字符
0, home键,^ : 回到行首
end键,$:到行尾
b:按单词向前移动
w:按单词向后移动

编辑:
a/A:光标后/行尾插入
i/I:光标前/行首插入
r/R:修改字符/字符串
~, 8~:切换大小写,切换接下来8个字符大小写
% s/word1/word2/g:替换
!command:执行shell命令,比如用:1,$!sort 来排序
u:undo上一次改变
U:undo当前行所有的改变
ctrl+R:redo被undo了的改变
“.”,ctrl+r:重复上一个动作

查找:
/word 查找word,n向后查找,N向前查找
?word查找word,N向后查找,n向前查找
*:向前搜索光标所在单词
#:向后搜索光标所在单词
/word1.*word2/:按正则表达式查找
/word1/;/word2:word1所在的行查找word2

复制粘贴:
x, 20x:剪切,剪切20个字符
y,yy,20yy:复制,复制当前行,复制20行(Y=yy), 其他还有y^,y$
d,dd,20dd:剪切,剪切当前行,剪切20行(D=dd) , 其他还有d^,d$
p:粘贴

打开保存:
ctrl+x+e:启动默认编辑器
vi filename:用vi打开filename
vi +8 filename:用vi打开filename,光标置于第8行
vi + filename:用vi打开filename,光标置于最后一行
vi +/8*8 filename:用vi打开filename,光标置于匹配8*8一行
vi –r filename:上次编辑系统崩溃,恢复filename
sp filename:打开文件filename,和当前文件分屏显示,使用ctrl+w+w来切换分屏
w!:强制保存(只读文件)
q!:强制退出(不保存)
ZZ:强制退出
:w filename:另存为
:r filename:读取文件filename到当前文件
:6,8w >> ~/newfile:读取当前文件6-8行内容到~/newfile

设置:
Set nu=set number:开起显示行号
Set nonu=set nonumber:关闭显示行号
Set ai sw=4=set autoindent shiftwidth=4:开启自动缩进,每次缩进4个空格
Set noai:关闭自动缩进
>>:向右缩进
<<:向左缩进
8>>:当前及向下8行向右缩进
Set all:显示所有选项和设置列表