在設置括號自動縮進之前首先要設置自動縮進,具體辦法是在~/.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/
