【Linux】vi/vim的使用

vi/vim这个代码编辑器得到很多Linux程序猿的推崇,自Linux/Unix出现以来,一直得到部分程序猿的推送。如果你用惯各类IDE,或者windows下的编辑器,将会非常不习惯这个东东,然而你也必须要懂,因为遇到一些无图形界面的服务器,你不得不利用vi/vim去编辑Linux的部分文件,下面说说vi/vim的使用。

首先呢,如果这个Linux有图形界面,比如Ubuntu12.04,按Ctrl+Alt+T打开Linux的终端。之后,利用cd命令,进入相应的目录,输入vi helloworld.c,进行代码的编辑,要意识到这个helloworld.c此时仅存在内存,并没有被创建。


接着,进入vi/vim之后还不能进行任何写作。这个编辑器分为命令(光标)模式、输入模式和EX(末行)模式。在命令模式点i进入输入模式,点冒号:进入末行模式。

在输入模式是不能按退格、移动光标、del等删除文字的,仅能按Tab缩进与按回车。仅能输入,此处的输入与终端的输入一模一样,如果你的Ubuntu装了中文输入法,也是可以打中文的。

在输入模式下,如果乱按光标则会输入一些奇奇怪怪的字符,如下图,所以要意识到自己处于vi/vim的哪个模式。

【Linux】vi/vim的使用_第1张图片

要移动光标,在输入模式必须先按ESC回到光标模式,之后才能用键盘的上下左右进行光标的移动,或者你使用hjkl来移也行,尽量用hjkl来移光标吧,这可是这个难用到死的vi/vim的标准使用方式,毕竟早期的键盘连个基本的上下左右都没有。

在命令模式下,按Shift+4也就是$能快速把光标移到这行的行末,按shift+6能够把光标移到这行的行首,也就是end键与home键,当然,早期的键盘也是没有这两个键的,晕死。这里有个问题,如果,我像在一行的最末端插入一个字符,那么仅仅Shift+4是不够的。讲光标移到行末之后,按a而不是按i进入输入模式,才能够把这个光标移到此行的最后一个字符的后面,在最后一个字符后面插入字符。

【Linux】vi/vim的使用_第2张图片

同时,如果在命令模式要删除当前的东西,按x删除当前光标的字符,连按两下dd删除当前一整行。

要复制东西话,按yy,复制当前一整行,按p就是粘贴。

同时按u可以撤消,ctrl+R则是取消上一次操作,连按u可以撤销前N此的操作,连按Ctrl+R则是撤销-撤销这次撤销-撤销-撤销这次撤销 这样的循环。

在命令模式下,按冒号:进入末行模式,在末行模式输入set nu能够显示行号。

【Linux】vi/vim的使用_第3张图片

在你极度蛋疼,终于将一个极其简单的c语言的helloworld打完之后,在末行模式下,可以输入:wi,:w helloworld.c,:qi为这个helloworld存盘,其中:wi就是保存,:w helloworld.c就是另存为,如果同目录有这个文件会直接覆盖,:qi就保存退出,当然,你也可以:q!不保存退出。

【Linux】vi/vim的使用_第4张图片

之后的话,如下图,Linux一般是自带C++的编译环境的,按照《【Linux】在Ubuntu12.04中写C语言与Helloworld》(点击打开链接)介绍过的方式编译这个文件,之后再运行helloworld,则得出如下的结果:


实际上,我们搞了这么,就是弄出如下的两个文件,一个源代码helloworld.c,一个是最终的程序helloworld:

【Linux】vi/vim的使用_第5张图片

整个vi/vim的使用过程如上图所示,基本功能都介绍完了,同时上一张vi/vim的使用全表,大家也可以从下看到一张70年代的键盘图,就这么多键,vi/vim由此应运而生。

【Linux】vi/vim的使用_第6张图片

其实,一般情况下,不是到Linux/Unix没有图形界面的情况,个人认为这个没有代码提示的、命令行的文本编辑器,比你用记事本来写代码还蛋疼。当然,vi/vim是不能黑的,你必须说他是最好的代码编辑器,因为很多Linux在写驱动、内核的大神都是在用这个上古神器。同时在没有图形界面的Linux/Unix服务器,你也只能习惯它,而不能黑。反正呢,我自己写Linux-C都用Ubuntu的gedit了。

你可能感兴趣的:(Linux)