vi编辑器

LUOPING0 2011-10-23

文本编辑器有很多,比如图形模式的gedit、kwrite、OpenOffice,文本模式下的编辑器有vi、vim(vi的增强版本)。vi和vim是我们在Linux中最常用的编辑器。vi或vim是Linux最基本的文本编辑工具,vi或vim虽然没有图形界面编辑器那样点鼠标的简单操作,但vi编辑器在系统管理、服务器管理字符界面中,永远不是图形界面的编辑器能比的。

vi的三种命令模式

Command(命令)模式,用于输入命令

Insert(插入)模式,用于插入文本

Visual(可视)模式,用于视化的的高亮并选定正文

光标移动

当我们按ESC进入Command模式后,我们可以用下面的一些键位来移动光标;

j向下移动一行

k向上移动一行

h向左移动一个字符

l向右移动一个字符

ctrl+b向上移动一屏

ctrl+f向下移动一屏

向上箭头向上移动

向下箭头向下移动

向左箭头向左移动

向右箭头向右移动

我们编辑一个文件时,对于j、k、l和h键,还能在这些动作命令的前面加上数字,比如3j,表示向下移动3行。

/#+Enter#为查找的内容 

插入模式(文本的插入)

i在光标之前插入

a在光标之后插入

I在光标所在行的行首插入

A在光标所在行的行末插入

o在光标所在的行的下面插入一行

O在光标所在的行的上面插入一行

s用输入的文本替换光标所在字符

S用输入的文本替换光标所在行 

文本内容的删除操作;

x一个字符

#x删除几个字符,#表示数字,比如3x

dw删除一个单词

#dw删除几个单词,#用数字表示,比如3dw表示删除三个单词

dd删除一行;

#dd删除多个行,#代表数字,比如3dd表示删除光标行及光标的下两行

d$删除光标到行尾的内容

J清除光标所处的行与上一行之间的空格,把光标行和上一行接在一起

退出保存;

在命令模式下按shift+:文本底端出现冒号

:w保存;

:wfilename另存为filename;

:wq!保存退出;

:wq!filename注:以filename为文件名保存后退出;

:q!不保存退出;

:x应该是保存并退出,功能和:wq!相同

撤销操作

u命令取消最近一次的操作,可以使用多次来恢复原有的操作[1]

U取消所有操作

Ctrl+R可以恢复对使用u命令的操作

复制操作

yy命令复制当前整行的内容到vi缓冲区

yw复制当前光标所在位置到单词尾字符的内容到vi缓存区,相当于复制一个单词

y$复制光标所在位置到行尾内容到缓存区

y^复制光标所在位置到行首内容到缓存区

#yy例如:5yy就是复制5行

#yw例如:2yw就是复制两个单词

如果要复制第m行到第n行之间的内容,可以在末行模式中输入m,ny例如:3,5y复制第三行到第五行内容到缓存区。

查找和替换

vi的查找和替换功能主要在末行模式完成:

至上而下的查找

/要查找的字符窜,其中/代表从光标所在位置起开始查找,例如:/work

至下而上的查找

?要查找的字符窜例如:/work

替换

:s/old/new用new替换行中首次出现的old

:s/old/new/g用new替换行中所有出现的old

:#,#s/old/new/g用new替换从第#行到第#行中出现的old

:%s/old/new/g用new替换整篇中出现的old

如果替换的范围较大时,在所有的命令尾加一个c命令,强制每个替换需要用户进行确认,例如:s/old/new/c或s/old/new/gc

恢复文件

 vi在编辑某一个文件时,会生成一个临时文件,这个文件以.开头并以.swp结尾。正常退出该文件自动删除,如果意外退出例如忽然断电,该文件不会删除,我们在下次编辑时可以选择一下命令处理:

O只读打开,不改变文件内容

E继续编辑文件,不恢复.swp文件保存的内容

R将恢复上次编辑以后未保存文件内容

Q退出vi

D删除.swp文件

或者使用vi-r文件名来恢复未保存的内容

相关推荐