红联Linux门户
Linux帮助

vi 的一些简单命令

发布时间:2006-03-28 21:27:37来源:红联作者:8o8o8
vi 属于使用UNIX和Linux系统的一个基本功。它速度快,比所有需要滑鼠的编辑器都快。现在Linux里的vi实际上是改进版的vim,用一个alias设成了vi。也就是说,使用时vi和vim没区别。

vi 有两个状态:编辑状态和输入状态。编辑状态时,你可以对文件进行删除字、行的操作,也可进行调整格式,存盘等操作。输入状态就是敲字。下面举例说明它的使用。比如要编 hello.c

vi hello.c

你可以先简单地敲几行,按a到输入状态,

#include

void main() {
printf("Hello world!\n");
}

然后,按Esc键切换到编辑状态。再按:w存盘。冒号表示要输入命令,w就是写盘(write)。
如果要回到输入状态,先把鼠标调整到要输入的位置,然后按i,就进入输入状态了(input)。按a也可以,它会在鼠标的下一位置输入(append,“加”的意思),按o也可以,它会自动加一个新行。

小结一下:i 或者a或者o 切换到输入状态,Esc切换到编辑状态。:w 存盘。

处在输入状态时,通过键盘的输入和删除操作,与其他的编辑器没区别,Backspace键和Del键都可以用来删除字符,方向键调整鼠标的位置,等等。

在编辑状态时,也可用键盘上的j,k,h,l键来上下左右移动鼠标(h=左,l=右,j=下,k=上),当然新版的vim,用键盘上的四个方向键也可以。我们再输入两行,先把鼠标移动到文件末尾,按i进入输入状态,输入

// this is a comment,
nothing elsee

然后按Esc切换进编辑状态。注意到,else多了一个e,需要删除。把鼠标移动到两个e的中间,按x,后边那个e就删掉了。现在按u,那个e又undo回来了。再按x把它删掉。

我们还注意到,第二个解说行不合C语言的规范,要把第二行跟第一行接上就好了。好,把鼠标移动到第一个解说行,按大写的J,我们注意到,两行接上了,

// this is a comment, nothing else

这个大写的J,就是join的意思。当然了,整个这个解说行无意义,应该删除,方法是:把鼠标移动到解说行,按dd,这行就删除了。再按p,这行又回来了。再按dd删除它。

现在按:wq,存盘并退出vi。

小结一下:编辑状态下,hjkl四个键移动鼠标,x删除一个字母,u是undo,dd删除一行,p把刚删的东西恢复回来,J把下边的一行接上,:q退出。

如果要删除100行怎么办? 100dd。编辑了一阵,结果发觉全不对,想恢复到文件刚开始的状态怎么办?:e。能不能不退出vi直接编辑另外一个文件?可以,:vi another.c。

如果需要了解更多的命令,需要在网上找找有关的教程。总之,熟能生巧。

[ 本帖最后由 8o8o8 于 2006-3-28 23:05 编辑 ]
文章评论

共有 0 条评论