Linux中vim的使用

维护linux服务器的时候,大部分时间都在安装服务器端的各种软件,依赖库,部署代码,导入mysql数据、备份mysql数据等等。无论做什么,都需要修改配置文件,而linux是命令行操作,几乎所有修改配置的操作都是去修改一个文本文件。这时候,linux上的最强大编辑器,vim就发挥它的作用了。

vim是使用linux必会的一个编辑器,你最好先学会它,而且越熟练越好。
我用SecureCRT连接到linux终端后,我对SecureCRT进行各种设置,比如UTF-8编码,使用Linux仿真,字体使用Fixedsys 10pt,颜色方案我用黑色背景灰色前景色(可能要自定义)。然后启动vim打开一个文本文件,这个文本文件正好是vim自身运行需要的一个配置文件.vimrc(注意:“.”开头的都是隐藏文件),没有这个配置文件,vim相当不完美。截图如下:
Linux中vim的使用
看,在windows中选择Fixedsys字体,10pt,显示vim是中规中矩,颜色又如此赏心悦目。
这个配置文件请在《我使用的vimrc》中查看,可以复制粘贴成自己的.vimrc哦。
 使用vim的方式是:

vim [文件的路径]

文件的路径可以为相对路径或绝对路径,而且放在中括弧里说明可以不填写文件。
  1. 如果不写文件路径,就代表新建一个文件,并且还没保存(相当于windows中的打开了word那一步)。这时候如果想要保存,需要输入命令:w 文件路径。
  2. 如果写文件路径,并且文件路径存在相当于windows中打开了一个已经编辑过的word文档。
  3. 如果写文件路径,并且文件路径无效相当于windows中点右键新建一个word文档并命名,然后打开了它。但是这里不同的是,如果你不作保存,就相当于没有信件这个word文档了。
所以,vim打开文件有3种情况,新建未命名文件,打开已存在文件,新建已命名文件。
打开以后,我们肯定要在里面输入文字。但刚打开的时候,vim并不处于可编辑的模式。那么我们先了解一些vim的4种模式:
正常模式 (Normal-mode) 
插入模式 (Insert-mode)
命令模式 (Command-mode)
可视模式 (Visual-mode)
正常模式是等待操作的。插入模式可以编辑了,命令模式则是对vim进行各种命令操作。可视模式相当于鼠标操作,可以进行选择。这几种模式请跳转到《【vim】模式与模式切换》进行学习。
模式搞清楚以后,我们来看看vim常用的快捷键,我先列举我常用的(不太常用的我用灰色表示):
1、进入编辑模式的快捷键总是最近常用的

i 光标位置进入插入模式。

I 光标跳到行头进入插入模式。(相当于Home键,再i)

a 光标位置后一格进入插入模式。

A 光标跳到行尾进入插入模式。(相当于End键,再i)。

o 光标所处行往下新建一行进入插入模式。(相当于End键,再i,再回车)。

O 光标所处行往上新建一行进入插入模式。(相当于Home键,再i,再回车,再按向上键)。

2、复制粘贴很方便

正常模式下:

yy 复制当前行

p 粘贴剪贴板内容到当前位置,如果用yy复制的,则从下一行开始插入内容(试试就知道了)。

N yy 复制N行,N是一个数字,你用数字键输入多少都行。

按v进入可视模式后,用上下左右键等进行选择,然后按y,可以复制内容,按x可以剪切内容。这时候复制的内容,一定要新建一行再粘贴!

dd 剪切当前行

N dd 剪切当前行往下的N行

任何模式下:

鼠标选则任何位置,按ctr+shift+c可以复制,ctr+shift+v可以粘贴,这里注意,在linux中,在vim中才需要加shift键,其它地方,跟windows一样,ctr+c,ctr+v,ctr+x,ctr+z,ctr+y都可以用。

在SecureCRT中,鼠标选择就是复制了,点右键可以粘贴(注意,这个不是vim的功能!!!)

3、移动光标方法:

上下左右分别是:kjhl,用一用就知道,这个按键是很合理的。

gg 光标跑到第一行的行首,即整个文件最开头位置。

G 光标跑到最后一行的行首。

ctr+d 往后翻半屏。

ctr+u 往前翻半屏。

ctr+f 往下翻一屏

ctr+b 往上翻一屏(光标可能跑不到行首,所以我总是用ctr+d/u来翻页)。

30% 让光标翻到30%的位置。

:30 输入“:”会让编辑器进入命令模式,输入“:30”则会让光标定位到第30行行首。

zt 让当前行放到屏幕顶端(方便查看代码)

zb 让当前行放到屏幕底部(方便查看代码)

4、命令行的一些操作:

:set paste 进入不格式化的粘贴模式,否则你粘贴代码遇到注释会有问题,而且缩进会被打乱

:set nopaste 粘贴会格式化。当然如果这样粘贴后代码乱了,但没有造成正常代码也被注释的话,可以用v进入可视模式,选中代码区域,按等号“=”将代码格式化好。

:%s/str1/str2/g 替换每一行的 str1为 str2
:10,20s/str1/str2/g 替换从行10到行20之间的 str1为 str2
:10,$s/str1/str2/g 替换从行10到最后一行之间的 str1为 str2
:s/str1/str2/g 替换当前行的 str1为 str2

.  重复执行命令 

5、注意:

ctr+z 会造成vim暂停,回到命令行模式,这时候只要输入fg回车,就返回到vim了。

6、代码缩进:

v进入可视模式后,选中代码,输入“>”可以将所选代码所在行往右缩进一个Tab的距离(插入的是tab还是4个空格根据vimrc设置而定)。输入“<”则相反,让代码往前缩进最多一个Tab的距离,也就是说,如果代码离行首只差4个一下的空白时,就会缩进到头了。

v进入可视化模式后,输入“=”可以格式化代码,相当好用!

相关推荐