內容:
1、設置自動縮進(tab鍵為4個字符)
2、設置括號自動縮進(比如輸入"(",會自動輸入(),且光標在括號中間)
詳解:
1、設置自動縮進
辦法:
我的vim這么難用?不能語法高亮,沒有折行,不能打開多個窗口多個buffer,不能……,要實現這些功能,需要配置vimrc文件
1.1、vimrc文件目錄在哪?
輸入vim回車,進入vim命令模式
1.2、命令模式輸入":versin"
1.3、關於vimrc的顯示如下:
1.4、對於vim初學者,如果不知道$HOME或者$VIM具體是哪個目錄,可以在vim中用下面的命令查看
:echo $VIM
:echo $HOME
1.5、切換到管理員權限,修改系統vimrc文件(也就是圖片中的“$VIM”)
1.6、配置縮進:
解釋:
設置制表符寬度
:set tabstop=4
:set softtabstop=4
設置縮進的空格數
:set shiftwidth=4
每行的縮進值與上一行相等
:set autoindent
vimrc文件怎么用?
舉個例子:【我要實現這樣的效果——在我用vim打開文件時,默認地給我顯示行數】
vim在默認的情況下,不會顯示行數,需要在命令模式下輸入【:set number】。這個命令只對當前窗口起作用。
你打開其他的文檔,如果還要顯示行數,得再敲set的命令。
有了配置文件就不用這么麻煩了。打開你的【_vimrc】文件,在文件的最后的一行輸入【set number】,保存。
這樣,你以后打開的所有文件就都會有行號了。
這只是很小的功能,舉個例子罷了。
它還可以定義自己的命令,如刪除空行等,就不用記住那個難記的正則表達式,只要在配置文件里寫一遍,再給它取個名字(如:xyz),以后輸入【:xyz】就能達到刪除空行的效果。(此篇不再贅述)
另,vim還自帶了一個vimrc的示例文件——【vimrc_example.vim】。我的這個文件目錄是這樣的:【$VIM\vim73\】
2、設置括號自動縮進
vi編輯器中的括號不能自動縮進,使用imap將可以實現,大括號縮進設置為
imap {<CR> {<CR>}<ESC>O
意思是:在輸入時將大括號接換行符映射成大括號接回車接大括號接ESC接大寫的O
效果(輸入" { ",然后enter回車):
同理,中括號以及小括號縮進設置
imap [ []<ESC>i //輸入左中括號的時候自動補齊右中括號,並在括號中間輸入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/