vi vim 括号自动缩进设置及解释

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vi vim 括号自动缩进设置及解释相关的知识,希望对你有一定的参考价值。

在设置括号自动缩进之前首先要设置自动缩进,具体办法是在~/.vimrc文件中加入如下语句:

set autoindent
set shiftwidth=4
set tabstop=4
set expandtab
set smarttab

vi编辑器中的括号不能自动缩进,搜索了一下,发现使用imap将可以实现,经过实验之后,在缩进设置为上面的情况时,我的大括号缩进设置为:

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

意思是在输入时将大括号接换行符映射成大括号接回车接大括号接ESC接大写的O,想一下,替换成的内容就是你手动换行时可以采用的一种输入方式,同样,按照这种想法,如果想要中括号和小括号自动补全并且光标移到括号中间,可以采用如下的映射方式:

imap [ []<ESC>i
imap ( ()<ESC>i

想一下,[]加回车加i是不是你自己操作的时候可以采用的一种输入方式,按照这种想法,我们还可以这样映射:

imap [ []<LEFT>
imap ( ()<LEFT>

这样看起来是不是更直观,输入一个左括号,相当于输入完整的括号再将光标向左移动一个字符

再就是imap是什麽意思,imap的意思是insert模式下的映射操作,上述设置的映射规则只在输入模式下有作用,在其他模式中没有设置这种映射规则就不会有这种输入时的替换,map有好几种映射模式,想设置某一种模式下映射规则,可以使用该模式下的映射命令,比如命令模式cmap,普通模式nmap,关于map的模式可以参考这篇博客http://haoxiang.org/2011/09/vim-modes-and-mappin/

以上是关于vi vim 括号自动缩进设置及解释的主要内容,如果未能解决你的问题,请参考以下文章

vi/vim粘贴代码自动缩进导致全乱了

vimrc文件配置的全文收录(史上最全,附带中文解释)

如何在CentOS 下改变 ‘Tab’ 键的缩进以及在Vim中自动补全括号

vim里设置tab及自动换行

vim里设置tab及自动换行

Vim设置括号自动补全和快速跳出