Linux下vim配置详解

这两天使用Linux下的Vim,总是不得劲,网上找的Vim配置文件,总是有这样那样的不满意,遂查看了下具体命令的意义,整理如下:

1.大括号匹配问题

原理:是通过映射操作实现,简单的说,就是摁下{,vim执行一系列的操作。而要达到我们满意的效果,需要设置一些对应的操作的标准,也就是对齐配置。那么首先,设置对齐如下

(1)对齐相关配置:

set smartindent
set tabstop=4
set shiftwidth=4
set expandtab
具体意义解释:
 set smartindent: 在行和段开始处使用制表符

 set tabstop=4: 设置tab为4个字符,而不是8个。

set shiftwidth=4:设置自动缩进为4个字符。

set expandtab 设置不使用空格代替制表符


对齐结束,下面进行括号补全的设置,以大括号和小括号为例。

(2)自动补全小括号:

imap ( ()<ESC>i

imap是配置文件用的一个函数,表示映射。这句话的意思是,映射“(”操作为“()<ESC>i”。

也就是说,当你摁下键盘上的“(”时,vim实际执行的是一系列操作:

<1>摁下“(”,摁下“)”。

<2>摁下ESC键

<3>摁下i键

上面<2><3>操作是为了将光标移前一格,自己试一下就知道了。


(3) 自动补全大括号:

有了上面的认识,大括号就比较好理解,具体代码如下:

imap { {}<ESC>i<CR><ESC>V<O

<ESC>后面跟的V < O 各代表什么意义呢?这是在vim命令模式下的一些快捷键命令。

V:按键shift+v,实现操作:选中当前行。这里当执行这一操作的时候,实际上选中的是“}”所在的行。

<: 按键shift+<,实现操作:将当前行向左移动一个tab,此时右括号已经和左括号对齐。

O:按键shift+o,实现操作:在当前行的前一行插入文本,实际执行效果就恰好满足我们的需求。


使用上面的方式进行配置大括号时,实际发现一般缩进正常,但是在已有缩进的行进行缩进时,比如嵌套if语句等,还是有问题,遂修改如下:

imap { {<CR>}<ESC>i<ESC>O


综上,其实vim的配置文件并不复杂,关键是要去理解。

文中用到的一些用<>括起来的符号作为键盘操作,具体可以通过下面的Vim命令来查看:

:help keycodes

在Vim的命令模式下,键入help keycodes如下:



这样,对于上面的<CR>、<ESC>等,就十分清楚了。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章