2018-02-17 在vim中讓大括號自動完成并對齊

轉(zhuǎn):

如果你想在vim中當(dāng)輸入一個左大括號的時候,讓vim自動插入插入右大括號,并且回車換行,將光標置于下一行向右縮進4個空格(一個tab),就在.vimrc中配置:

imap { {}iV

上面有個前提就是你設(shè)置了

set smartindent

set tabstop=4

set shiftwidth=4

set expandtab

如果你只想讓你的vim完成標題中說的事情,到此已經(jīng)完成。但是如果你想了解上面的是什么樣的原理,那就繼續(xù)往下看,你會意外的收獲的。

imap是vim配置中的指令,就是做一個映射,語法就是

imap 要映射的東西 被映射成什么東西

按照這種理解,上面的那句就可以理解為:

映射“{”為

{}iV

后面的東西是什么就是vim中依次執(zhí)行這些操作,什么操作呢?我們一一分解;

{} 就是直接插入左右括號

? 就是按鍵盤的ESC鍵,切換到命令行模式

i ?按鍵盤的i鍵,進入插入模式

按回車,此時將右括號換行

? 就是按鍵盤的ESC鍵,切換到命令行模式

V 按住shift+v,就是選中當(dāng)前行就是有括號所在的行

< 按住shift+,將當(dāng)前行向右移動一個tab,此時有括號已經(jīng)和做括號對齊

O 按住shift +o,在當(dāng)前行(右括號)的前一行插入

也許你已經(jīng)了解了怎么回事,其實就是告訴vim如果我們輸入{ ,那就接下來做上面一系列操作。

當(dāng)你明白了這個原理,你就可以自己去創(chuàng)建一些映射來提高你的編程速度,就上面的映射提高了你9倍的速度啊。

另外以個你可能想到的映射就是小括號,目標是什么呢?當(dāng)我們插入左邊的小括號的時候,告訴vim插入右邊的小括號并且移動光標到括號中間并處于插入狀態(tài)。方法就是先去你的vim中試試你怎么做到,然后在你的.vimrc中把你剛才的操作想上面一樣做成一個映射??赡苣愕暮臀业牟灰粯拥?,我用了3步,你用了4步,還有人用了5步,但是都沒有問題,因為最后達到的效果都一樣??纯次业陌桑?/p>

imap ( ()i

上面是關(guān)于自動插入,但是如果你發(fā)現(xiàn)插入錯誤,想刪除插入的操作,需要刪除自動插入的所有的東西,這樣需要好幾個步驟,能不能刪除左邊括號就自動刪除后面自動插入的東西呢?能,但是有點麻煩,關(guān)于這部分,請參看:

http://colder.blog.163.com/blog/static/17394661820124201611732/

完。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 這篇文章是手冊的中文譯版整理而來(英文看著太慢了,感謝前人鋪路Orz...),vim的markdown插件和實時預(yù)...
    Himryang閱讀 7,389評論 0 20
  • Ubuntu的發(fā)音 Ubuntu,源于非洲祖魯人和科薩人的語言,發(fā)作 oo-boon-too 的音。了解發(fā)音是有意...
    螢火蟲de夢閱讀 100,810評論 9 468
  • 命令歷史 以:和/開頭的命令都有歷史紀錄,可以首先鍵入:或/然后按上下箭頭來選擇某個歷史命令。 啟動vim 在命令...
    im螞蟻閱讀 31,072評論 3 48
  • 百日練:一百天看一百本書第207天,加油(? ??_??)?。加油(? ??_??)? 今...
    Auguht閱讀 114評論 0 0
  • 一天晚上,給媽媽打電話。媽媽說她剛從江邊散步回來。 我說:“能經(jīng)常去江邊散步真好?!?媽媽說:“是啊。你不是說過,...
    楊躍閱讀 313評論 0 0

友情鏈接更多精彩內(nèi)容