linux 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:显示所有选项和设置列表