首页 > 技术文章 > vi实战记录

xiaochina 2016-09-27 21:44 原文

   vi编辑器在Unix和Linux中比较早期的,Vim是vi的扩展集,是对vi的加强

服务器最小化,默认集成vi编辑器!了解vi常用命令,工作起来颇有-洪荒之力!!!

01.关于退出

:wq!  ----强制保存退出
:wq  ---- 保存退出
:x   ----- 作用和:wq 一样
ZZ  ---- 作用和:wq一样,(注意Z是大写的,并且不是在命令模式)
:q  ---- 退出
:q!  ---  强制退出

 ==============================================

02.关于移动

方向

h : 在当前行向左移动一个字符
j:  移动到下一行
k:  移动到上一行
l:  在当前行向右移动一个字符
Ctrl +f:  向前滚动一页
Ctrl +b:  向后滚动一页
:n   将光标定位到第n行
:$   将光标定位到最后一行
0   将光标定位到本行的行首
$   将光标定位到本行的行尾
G   将光标定位到本文章的最后一行,与:   $功能相同。gg定位到文章开头
H   将光标定位到屏幕的顶端
M   将光标定位到屏幕的中间
L   将光标定位到屏幕的底端

============================================
03.关于搜索

/:   后面跟要查找的东西,在文件中向前搜索
?:  后面跟要查找的东西,在文件中向后搜索  ?one #查到one
n:  向前重复搜索
N:  向后重复搜索
=============================================
04.关于复制

yy:  复制光标当前行
nyy:  复制光标当前行到当前行以下的n-1行
:1,100 co 200   将1~100的内容复制到第200行。
:100,102 co $   将100~102行的内容复制到最后一行。

==============================================
05.关于粘贴

p :   粘贴到当前行的下一行
P(大) :   粘贴到当前行的 上一行

==============================================
06.关于删除.剪切

 拷贝, 删除与粘贴 在 vi 中 y 表示拷贝, d 表示删除, p 表示粘贴. 其中拷贝与删除是与光标移动命令 结合的

yw 表示拷贝从当前光标到光标所在单词结尾的内容.

dw 表示删除从当前光标到光标所在单词结尾的内容.

y0 表示拷贝从当前光标到光标所在行首的内容.

d0 表示删除从当前光标到光标所在行首的内容.

y$ 表示拷贝从当前光标到光标所在行尾的内容.

d$ 表示删除从当前光标到光标所在行尾的内容.

yfa 表示拷贝从当前光标到光标后面的第一个a字符之间的内容.

dfa 表示删除从当前光标到光标后面的第一个a字符之间的内容.

特殊地: yy 表示拷贝光标所在行. dd 表示删除光标所在行. D 表示删除从当前光标到光标所在行尾的内容.

dd   删除当前行
ndd   与nyy相似
dw   删除一个单词
ndw   与ndd相似
x    删除一个字符
nx   删除n个字符
dG   删除当前光标到文件末尾的所有内容。
d0   删除当前光标到本行行首的所有内容
d$   删除当前光标到本行行尾的所有内容
:1,100d  删除1~100
:100d    删除第100行
:1,100 mo $   将1~100行的内容移动到最后一行。

=============================================
07.关于插入

i:  在当前位置的字符前面进入插入模式
I:  在当前行的开头进行插入
a:  在当前位置的字符后面进入插入模式
A:  在当前行的结尾进行插入
o:  在当前行下面打开一个新行进行插入
O:  在当前行上面打开一个新行进行插入


=============================================
08.关于撤销

u:  撤销上一次的更改  z撤销

=============================================
09.关于替换

regexp:  是要匹配的式样
replacement:  是要替换的字符串

:s/regexp/replacement   -------------------------替换当前行出现的第一个式样

:s/regexp/replacement/g  -------------------------替换当前行所有的匹配
:%s/regexp/replacement/g  -----------------------替换文件中所有匹配式样

:g/str1/s//str2/g                  str2全部替换str1

=============================================

PS:  还有一个重要的命令就是"." 命令,这个命令是用来重复上一命令的

vi里如何:撤销上次操作?,多次重复一组编辑操作?

a)   撤消上一个编辑操作。       ====>   u 
b)   重复上一个编辑操作。     =====>   . 
c)   还原被撤消的编辑操作。   ======>   Ctrl   +   R 
d)   多次重复一组编辑操作。 ====>  ". " 命令可以重复最近一次的编辑动作. 

附录,鸟哥私房菜!


《鸟哥的Linux私房菜》vi 讲义

 

引用:http://www.cnblogs.com/xiaochaohuashengmi/archive/2011/10/14/2211202.html

推荐阅读