有哪些好用到爆的vim插件?


分享一個自己寫的vim插件 popup.vim: 自定義底部彈出菜單的vim插件

看圖(上傳的gif圖似乎不能動,打開鏈接看吧):
https://raw.githubusercontent.com/luzhlon/gif/master/popup.gif

這個插件實現了一個簡單的互動式菜單的功能。

比如自己配置一下可以使用 alt+f 鍵彈出文件菜單,然後按 n 鍵新建文件或者按 x 鍵退出vim編輯器。

菜單對應的命令是鍵盤映射序列,比如新建文件菜單的命令是":ene!&",退出vim的命令是":conf qa&"。

可以根據需要添加自己所需要的菜單。


作為一個沒怎麼折騰過插件的 vim 用戶,以下是我在用的、有 "life changing" 感覺的幾款插件:

快速編輯:

  • surround: tpope/vim-surround
  • repeat: tpope/vim-repeat
  • matchit.zip: script #39
  • matchparen: script #2059
  • EasyMotion: Lokaltog/vim-easymotion

特定應用:

  • LaTeX, LaTeX-Suite_aka_Vim-LaTeX: http://vim-latex.sf.net
  • HTML, Emmet: mattn/emmet-vim (原 zencoding)
  • HTML, MatchTag: gregsexton/MatchTag
  • [ctags, 多種語言支持], echofunc: mbbill/echofunc
  • C-lang, code_complete: mbbill/code_complete
  • 多種語言支持, Syntastic: scrooloose/syntastic

以及,錦上添花類別:

  • git 管理的任何項目,vim-gitgutter: airblade/vim-gitgutter
  • ctags, easytags: xolox/vim-easytags
  • Rainbow_Parentheses_Improved: luochen1990/rainbow
  • 各種補全插件和代碼片段插件
  • vimim(不過舊版目前有不少問題)
  • (and 最後插播廣告)vimcaps: suxpert/vimcaps,歡迎幫助改進 :)

由於使用目的的原因,很多方向的插件不熟悉,歡迎補充更多更好的插件給大家用。


nerdtree,用來瀏覽文檔樹

vim-autoformat,比如c++,會自動調用諸如astyle, clang-format來對代碼進行美化

vim-colorschemes,收集了一大坨配色

vim-commentary,方便對代碼進行注釋

vim-easy-aligh, 比如你有一坨「var varName=varVal;"的語句,它可以把等號進行對齊

vim-wakatime,記錄你每天花了多久編程,分別使用那種語言編程,分別在哪寫(git)project里編過程,會把數據同步到WakaTime 路 Quantify your coding,還會每天(或每周)給你發郵件,這個要收費,免費版只保留7天的數據。

vim-activity-log, 每次你create,open,write一個文檔的時候,會往某個日誌里打一條時間戳,方便你自己分析你每天寫代碼的行為,比如上面那個wakatime,免費版功能受限,收費版每月要9美元,並且會把你的數據傳到網上,如果你對它不放心,可以用這個插件,然後去分析它的Log文件,比如我寫了個Alaya-in-Matrix/record-vim-time · GitHub,用來練習haskell的parsec的使用

YouCompleteMe,基於clang對c++進行補全,以及c++錯誤提示

zealvim,zeal是linux上類似dash的離線文檔軟體,這個插件可以對游標上的關鍵詞使用zeal查詢其文檔

conqueTerm(https://code.google.com/p/conque/), 在 vim 裡面運行 bash 終端,其實也就是省下依次程序切換操作,不過可以 split 好幾下運行不同的程序,並且 bash 裡面的輸出可以用 vim 的複製粘貼命令來 copy,相當於自動帶 vim 鍵綁定的 terminal了,不過當處理中文時可能會有問題,我遇到過git status在系統是中文時輸出很亂的情況。後來把系統改成了英文,下面是一個截圖,分別運行一個 vim, ,一個 terminal,一個 mysql,一個 haskell 的 REPL 環境 ghci,並直接把運行結果複製到用 vim 打開的文本文件里,:


vimim

如果你需要輸入中文的話,相信總是用得著的。

當然這個插件的文檔可能不是那麼好懂,你可能需要一定的折騰才能用好。


You Complete Me


如果你是要寫c,c++,或者linux下的csharp,python,那選擇YouCompleteMe吧,絕對沒錯!精確的語法錯誤提示,精確匹配提示,不像ctags一樣,要讓用戶靠猜。

另外,如果你的版本管理軟體是git的話,fugitive簡單易用,vim內提示文件修改。


貼一下自己在用的插件,都是精挑細選過的。

正在使用的插件管理器是 plug.vim。這是一個功能強勁、好用到爆的管理器,最大特點是並行安裝,可以去看下主頁 gif 動圖,非常帥氣。只要你網路還算可以,它能在 10 秒鐘內完成以上 20 個插件的全新安裝,伺服器上估計更快。這樣你只需帶著 vimrc 配置,到別的機器上 30 秒鐘內就能開始工作了。

我看了下樓上推薦的插件,感覺有不少雷同的。確實插件都差不多,重點在於配置好順手的、不衝突的快捷鍵。達到完美協作的目的,當時這塊我踩了不少坑。

還是說下樓上沒有推薦過的插件吧:

YankRing.vim 多剪貼板可視化。已經向不少人推薦過了。

vim-align 最強大的對齊插件。支持各種對齊,甚至有 AlignCtrl 命令來控制對齊選項。

goyo+limelight 乾淨模式和背景虛化。兩者配合使用,效果非常好。vim 也可以很文藝,嗯。

添加一張黑屋子模式截圖:


彩虹括弧 - Rainbow Parentheses Improved:


"life changing"系列:CtrlP、EasyMotion、undotree,其實還有一個EasyGrep,但是最近用下面的map代替了,個人用不上太多的功能

vnoremap & ge "gy:vimgrep /&g/ % |copen&
nnoremap ge :vimgrep // % |copen&&&&&&&&&&

那蛋疼的10個&……

還有一個設置,也是life changing:

" 輸入法自動切換中英文(不適用於外掛輸入法)
set noimcmdline
set iminsert=2
set imsearch=2


關注Tim Pope就行了... Github:tpope


裝這麼多插件就不知道提下vundle

(假裝還要寫其他插件)

歪下樓 自從把nnoremap &w :w& 再也不會按成:W了 leader設成,逗號

還有inoremap jk &


逢人推薦 tpope/vim-sensible,再也不折騰 vimrc 了。送新手佳品。


Emacs的evil-mode,讓你用VIM的鍵位體驗Emacs。

:)


spf13 vim


寫文檔必備, 左側展示文章結構,右側展示文件樹:

詳細請查看:https://spacevim.org 或 SpaceVim/SpaceVim


對於vim的插件我個人認為主要看你的需求,如果你有需求,再按照你的需求去找,基本都能找到,再好用的插件,如果你沒有這個需求,對你也是沒有意義的。

我可以推薦一下我的一些經驗。首先,說出我的個人的需求,我平時主要用vim瀏覽,編寫c/c++的程序,所以編程需要用到的一些東西必然不可缺少,我以前都是在visual studio的環境下開發,所以基本上很多的需求都是按照visual studio的需求來的。像nerdtree, taglist, ctrlp 這些非常流行的插件不在描述。一下為我給出的幾個個人覺得比較好用的插件。

第一:字體的高亮顯示,這個需要配合插件和主題來修改。推薦的主題是molokai, 當然也是做過個性化的修改的。配合的一個插件是 』octol/vim-cpp-enhanced-highlight『

第二:自動補全,這個不必多說,目前最為流行的是youcompleteme,當然這個也是我遇到的最為複雜的vim插件,需要編譯,而且最近我在安裝的過程中會遇到問題,於是我重新閱讀了一邊github上的詳細安裝的過程,一步步下來,運行正常。

第三:配合youcompletme的另外一個插件是對你平時經常用到的一些常規輸入的補全,』SirVer/ultisnips" "honza/vim-snippets"

比如說輸入一個』cl『,就會自動的給出整個類的定義,包括構造函數,析構函數,以及類名的同步。輸入一個』todo『就是給出所有的與todo相關的信息,輸入』copy『就會給出文件開頭一大串的版權保護的說明。免去很多不必要的輸入。

第四:我推薦一個syntax check的插件,』scrooloose/syntastic『

這個插件自動幫你進行語法檢測,可以減少warning,對於追求程序完善的程序員,他可以幫你減少很多不必要的麻煩。

第四:快速移動,』easymotion/vim-easymotion』

不僅支持行內,行與行間,更支持整個文件中的搜索。


先佔個坑~等回到學校在系統回答一下

------------------ 分隔線 ----------------------------------

ctags,現在vim都默認安裝了

quickfix,保存一個位置列表,然後提供一系列命令,實現在這個位置列表中跳轉。配合makefile使用,方便debug。

nerdtree:窗口形式文件瀏覽。

taglist:tag瀏覽

vundle:插件管理

youcpmpleteme:C++智能補全插件

minibufexplorer:顯示已打開的文件,方便在打開的文件中跳轉。

statusline:狀態欄

vim的插件很多也很強大。個人認為夠自己用就行了,不用過於深究。


vundle


leaderF

查找文件非常方便


只挑一個的話,ctrlp!


推薦閱讀:

vim有哪些插件管理程序?都有些什麼特點?
如何使 Vim 下開發 Python 調試更方便?
各位的編輯器一般用什麼主題?
用 Vim 寫 Python 的最佳實踐是什麼?
替換兩個 Tags 之間字元串的 VIM 命令怎麼寫?(或者, g 的輸出如何作為 s 的輸入?)

TAG:iOS開發 | Vim | vimrc | Vim插件 |