有哪些好用到爆的vim插件?
分享一個自己寫的vim插件 popup.vim: 自定義底部彈出菜單的vim插件
看圖(上傳的gif圖似乎不能動,打開鏈接看吧):
https://raw.githubusercontent.com/luzhlon/gif/master/popup.gif
這個插件實現了一個簡單的互動式菜單的功能。
比如自己配置一下可以使用 alt+f 鍵彈出文件菜單,然後按 n 鍵新建文件或者按 x 鍵退出vim編輯器。
菜單對應的命令是鍵盤映射序列,比如新建文件菜單的命令是":ene!&
可以根據需要添加自己所需要的菜單。
作為一個沒怎麼折騰過插件的 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 &
nnoremap ge :vimgrep // % |copen&
那蛋疼的10個&
還有一個設置,也是life changing:
" 輸入法自動切換中英文(不適用於外掛輸入法)
set noimcmdline
set iminsert=2
set imsearch=2
關注Tim Pope就行了... Github:tpope
裝這麼多插件就不知道提下vundle
(假裝還要寫其他插件)歪下樓 自從把nnoremap &逢人推薦 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 的輸入?)