vim-snippets使用

使用的目的

使用 snippets 類按鍵的目的主要由以下兩點(diǎn):

  • 減少按鍵次數(shù)
  • 減輕記憶負(fù)擔(dān)

使用的效果如下:

2018-03-25_18-10-09.gif

在開發(fā) Django 的過程中,有一些需要重復(fù)輸入的結(jié)構(gòu)谒出,例如定義數(shù)據(jù)模型是需要設(shè)置字段類型参萄。需要定義 Char 類型的字段需要反復(fù)輸入 = models.CharField(max_length=30) 這樣的結(jié)構(gòu)妆偏。于是就定義了 charf 作為縮寫需忿。每次需要定義的時(shí)候谍夭,就輸入 charf 然后擴(kuò)展為所需的結(jié)構(gòu)紊撕。如此就可以節(jié)省大量的輸入以及對(duì)默認(rèn)設(shè)置的記憶負(fù)擔(dān)罢荡。

大家在在編程的過程中不可避免的需要敲大量的重復(fù)的代碼結(jié)構(gòu)。而作為程序員对扶,很重要的一個(gè)意識(shí)区赵,就是要堅(jiān)持實(shí)踐 DRY 原則。使用 snippets 類的插件浪南,可以通過自定義代碼片段的方式來提高效率笼才。

安裝步驟

安裝使用Vundle
Plugin 'honza/vim-snippets'
Plugin 'github.com/SirVer/ultisnips'

vim中 :BundleInstall 命令即可完成安裝。
相關(guān)的資料可以查看官網(wǎng)https://github.com/honza/vim-snippets

如何擴(kuò)展默認(rèn)的 Snippets

vim-snippets 默認(rèn)支持很多中語言的代碼片段络凿。默認(rèn)的代碼片段文件放在~/.vim/bundle/vim-snippets/UltiSnips 目錄下骡送。如果沒有使用Vundle的話昂羡,目錄會(huì)在 ~/.vim/plugin/vim-snippets/UltiSnips 下。根據(jù)支持的文件類型不同摔踱,文件的名稱不同虐先。例如 Python 的配置文件對(duì)應(yīng)的是 Python.snippets 。vim 打開后綴為 py 的文件就是加載 python.snippets 文件中的代碼片段派敷。在這個(gè)我文件中也可以增加我們的代碼片段蛹批。但是這樣做的話,不方便我們自定義代碼片段的保存和同步篮愉。換機(jī)器或是卸載插件的時(shí)候腐芍,自定義的的插件就會(huì)丟失。

更好的方法是單獨(dú)新建一個(gè)目錄潜支,專門保存自定義的代碼片段甸赃。具體的操作方法是:

  1. 創(chuàng)建一個(gè)文件夾 .vim/mysnippets/
  2. .vimrc 文件中指定代碼片段搜索文件夾。let g:UltiSnipsSnippetDirectories=["UltiSnips","mysnippets"]
  3. mysnippets 文件夾中創(chuàng)建自己的代碼片段文件冗酿。

完成了以上三步埠对,只需要將 mysnippets 文件夾備份好,就可以很好的備份和管理自定義的代碼片段了裁替。

特別注意

UltiSinps 與 YouCompleteMe Tab 鍵沖突問題

如果使用了 YouCompleteMe 插件的話项玛,就會(huì)因?yàn)?Tab 鍵被 YMC 插件占用而導(dǎo)致代碼片段展開的快捷鍵失效。因?yàn)槿跖校琔ltiSinps 也定義了使用 Tab 來完成代碼展開的功能襟沮。嘗試了找到的各種方法,大部分方法建議取消 YMC 對(duì) Tab 鍵的占用昌腰。但是开伏,我還是想讓 YCM 繼續(xù)是用 Tab 鍵。(畢竟自動(dòng)補(bǔ)全的使用場(chǎng)景遭商,比代碼片段的要多固灵。)所以,一直沒有配置成功劫流。最終找到了一個(gè)可以解決這個(gè)問題的方式巫玻。引入一個(gè)新的插件 supertab 就能夠讓 YCM 和 UltiSinps 和平相處,共同發(fā)揮作用了祠汇。

具體的使用方法:

將插件添加到 .vimrc 文件中仍秤。Bundle 'ervandew/supertab' 然后使用 :BundleInstall 命令進(jìn)行安裝。
安裝完成之后可很,增加以下配置內(nèi)容到 .vimrc文件中

" make YCM compatible with UltiSnips (using supertab)
let g:ycm_key_list_select_completion = ['<C-n>', '<Down>']
let g:ycm_key_list_previous_completion = ['<C-p>', '<Up>']
let g:SuperTabDefaultCompletionType = '<C-n>'
 
" better key bindings for UltiSnipsExpandTrigger
let g:UltiSnipsExpandTrigger="<c-e>"
let g:UltiSnipsJumpForwardTrigger="<c-j>"
let g:UltiSnipsJumpBackwardTrigger="<c-k>"

這里要特別注意诗力,在 supertab 插件官方給出的配置中 UltiSnipsExpandTrigger 推薦的配置是 "<cr>" 即回車鍵。但是如果采用了這個(gè)配置我抠,就是導(dǎo)致編輯模式下苇本,回車不能夠換行了导坟。所以,這里把配置替換成了<c-e>圈澈。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末惫周,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子康栈,更是在濱河造成了極大的恐慌递递,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,640評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件啥么,死亡現(xiàn)場(chǎng)離奇詭異登舞,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)悬荣,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,254評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門菠秒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人氯迂,你說我怎么就攤上這事践叠。” “怎么了嚼蚀?”我有些...
    開封第一講書人閱讀 165,011評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵禁灼,是天一觀的道長。 經(jīng)常有香客問我轿曙,道長弄捕,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,755評(píng)論 1 294
  • 正文 為了忘掉前任导帝,我火速辦了婚禮守谓,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘您单。我一直安慰自己斋荞,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,774評(píng)論 6 392
  • 文/花漫 我一把揭開白布睹限。 她就那樣靜靜地躺著譬猫,像睡著了一般讯檐。 火紅的嫁衣襯著肌膚如雪羡疗。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,610評(píng)論 1 305
  • 那天别洪,我揣著相機(jī)與錄音叨恨,去河邊找鬼。 笑死挖垛,一個(gè)胖子當(dāng)著我的面吹牛痒钝,可吹牛的內(nèi)容都是我干的秉颗。 我是一名探鬼主播,決...
    沈念sama閱讀 40,352評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼送矩,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼蚕甥!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起栋荸,我...
    開封第一講書人閱讀 39,257評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤菇怀,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后晌块,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體爱沟,經(jīng)...
    沈念sama閱讀 45,717評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,894評(píng)論 3 336
  • 正文 我和宋清朗相戀三年匆背,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了呼伸。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,021評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡钝尸,死狀恐怖括享,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情珍促,我是刑警寧澤奶浦,帶...
    沈念sama閱讀 35,735評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站踢星,受9級(jí)特大地震影響澳叉,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜沐悦,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,354評(píng)論 3 330
  • 文/蒙蒙 一成洗、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧藏否,春花似錦瓶殃、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,936評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至淆储,卻和暖如春冠场,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背本砰。 一陣腳步聲響...
    開封第一講書人閱讀 33,054評(píng)論 1 270
  • 我被黑心中介騙來泰國打工碴裙, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,224評(píng)論 3 371
  • 正文 我出身青樓舔株,卻偏偏與公主長得像莺琳,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子载慈,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,974評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • macvim配置 最終效果如下: 系統(tǒng)環(huán)境 macos10.12.4 homebrew1.2.1 python3....
    Like_eb56閱讀 69,414評(píng)論 5 65
  • 一惭等、前言 環(huán)境: ubuntu16.04 vim7.4 python3.5 最終效果預(yù)覽 如果想充分地利用好本文,...
    MiracleJQ閱讀 4,498評(píng)論 0 11
  • Ubuntu的發(fā)音 Ubuntu凭豪,源于非洲祖魯人和科薩人的語言,發(fā)作 oo-boon-too 的音晒杈。了解發(fā)音是有意...
    螢火蟲de夢(mèng)閱讀 99,274評(píng)論 9 467
  • 年后回家鄉(xiāng)了嫂伞,工作也換了一份新的。在省會(huì)城市待了一個(gè)月就被公司派往縣城駐扎拯钻。新工作地點(diǎn)的宿舍條件不咋地帖努,...
    阿肥想阿胖閱讀 213評(píng)論 0 0
  • 每天隨手拍,留住瞬間的美好~加倍美好粪般!我們來啦拼余! 本周主持——水若本周主題——【清涼一夏】 1、蛐蛐 2亩歹、水若——...
    水若_小水囈夢(mèng)閱讀 180評(píng)論 0 0