Vi,是一款由加州大学伯克利分校,Bill Joy 研究开发的文本编辑器。
文本编辑器有很多,比如图形模式的gedit、kwrite、OpenOffice,文本模式下的编辑器有vi、vim(vi的增强版本)。vi和vim是我们在Linux中最常用的编辑器。vi或vim是Linux最基本的文本编辑工具,vi或vim虽然没有图形界面编辑器那样点鼠标的简单操作,但vi编辑器在系统管理、服务器管理字符界面中,永远不是图形界面的编辑器能比的。
(注意:vi是unix/linux操作系统中最经典的文本编辑器,只能是编辑字符,不能对字体、段落进行排版;它既可以新建文件,也可以编辑文件;他没有菜单,只有命令,且命令繁多。虽然vi的操作方式与其他常用的文本编辑器(如gedit)很不相同 ,但是由于其运行于字符界面,并可用于所有unix/linux环境,目前仍被经常使用。)
VI常用命令:
vi 的三种命令模式
1.Command(命令)模式,用于输入命令
2.Insert(插入)模式,用于插入文本
3.Visual(可视)模式,用于视化的的高亮并选定正文
(注:不同的版本所给与vi的三种工作模式也不同。vi有三种工作模式:命令模式、文本编辑模式和最后行模式。不同工作模式下的操作方法有所不同。
1.命令模式:
命令模式是启动vi后进入的工作模式,并可转换为文本编辑模式和最后行模式。在命令模式下,从键盘上输入的任何字符都被当作编辑命令来解释,而不会在屏幕上显示。如果输入的字符是合法的vi命令,则vi就会完成相应的动作;否则vi会响铃警告。
2.文本编辑模式:
文本编辑模式用于字符编辑。在命令模式下输入i(插入命令)、a(附加命令)等命令后进入文本编辑模式,此时输入的任何字符都被vi当作文件内容显示在屏幕上。按Esc键可从文本编辑模式返回到命令模式。
3.末行模式:
在命令模式下,按“:”键进入最后行模式,此时vi会在屏幕的底部显示“:”符号年作为最后行模式的提示符,等待用户输入相关命令。命令执行完毕后,vi自动回到命令模式。
为了实现跨平台操作兼容不同类型的键盘,在vi编辑器中无论是输入命令还是输入内容都是用字母键。例如按字母键“i”在文本编辑模式下表示输入字母“i”,如果在命令模式下则表示将工作模式转换为文本编辑模式。)
不同模式的切换
a:在光标位置之后输入
i:在光标位置之前输入
o:在光标位置下一行插入
O:在光标位置上一行插入
当我们按ESC进入Command命令模式后,我们可以用下面的一些键位来移动光标;
1.方向移动:
j 向下移动一行
k 向上移动一行
h 向左移动一个字符
l 向右移动一个字符
向上箭头 向上移动
向下箭头 向下移动
向左箭头 向左移动
向右箭头 向右移动
2.翻页:
ctrl+b 或page up 向上移动一屏
ctrl+f 或page down 向下移动一屏
3.行间快速跳转
1G 或 gg 跳转至文件的首行
G 跳转至文件的末行
#G 跳转至文件的第#行
4.行内快速跳转
Home键或者“^”.数字“0” 跳转至行首
End键或者“$” 跳转至行尾
5.行号显示
:set nu 在编辑器中显示行号
:set nonu 取消编辑器中的行号显示
文本内容的删除操作;
x或Del 删除光标处一个字符
#x 删除几个字符,#表示数字,比如3x
dw 删除一个单词
#dw 删除几个单词,#用数字表示,比如3dw表示删除三个单词
dd 删除一行;
#dd 删除多个行,#代表数字,比如3dd 表示删除光标行及光标的下两行
d$ 删除光标到行尾的所有字符
d^ 删除光标到行首的所有字符
复制操作
yy命令复制当前整行的内容到vi缓冲区
yw复制当前光标所在位置到单词尾字符的内容到vi缓存区,相当于复制一个单词
y$复制光标所在位置到行尾内容到缓存区
y^复制光标所在位置到行首内容到缓存区
#yy例如:5yy就是复制5行
#yw例如:2yw就是复制两个单词
如果要复制第m行到第n行之间的内容,可以在末行模式中输入m,ny例如:3,5y复制第三行到第五行内容到缓存区。
黏贴
1.p 将复制的内容粘贴到光标之后
2.P 将复制的内容粘贴到光标之前
补充:ddp:将光标位置所在行与下一行互换
文件内容查找
/word :从上而下在文件中查找字符串“word”
?word :从下而上在文件中查找字符串“word”
n 定位下一个匹配的被查找字符串
N 定位上一个匹配的被查找字符串
撤销编辑及保存退出
u:取消最近一次的操作,可以使用多次来恢复原有的操作 [1]
U:取消所有操作
ZZ:保存当前文件内容并退出Vi编辑器
文件内容替换