好用的 77 款 Vim 插件
英文原文:vim plugins that I use
1. Alternate
在 C 或 C++ 項目中,源文件和頭文件常常成對出現(xiàn)。例如,utils.c和utils.h,你經(jīng)常需要同時編輯這兩個文件。使用 Alternate,你可以輸入:A命令,在 .c 和 .h 文件之間快速切換。如果你在 .c 文件中,就會切換到 .h 文件,如果你在 .h 文件中,就會切換到 .c 文件。
2. Bufexplorer
要高效地處理多個文件,你需要使用幾個不同的命令,如:ls(列出緩沖區(qū))、:b(編輯緩沖區(qū))、:bn(下一個緩沖區(qū))和:bp(前一個緩沖區(qū))。然而,通常情況下,在找到正確的文件之前,你的大部分時間都在鍵入:bn、:bn、:bn。
Bufexplorer 使得在 vim 中處理多個文件變得輕而易舉。它添加了\be鍵綁定(\是前導(dǎo)鍵),它會打開一個所有緩沖區(qū)的列表,移動到顯示文件名的行并按回車鍵,你就可以快速切換到另一個緩沖區(qū)。
3. Bufferize
許多 vim 命令繼承自 vi,它們的輸出非常簡陋。它們把輸出打印到屏幕上,不能搜索或復(fù)制。如果你按空格太多次,內(nèi)容就消失了。幾乎不可能搜索這個文本,有時你甚至不知道如何讓 vim 再次顯示它。
Bufferize 解決了這個問題。它接受一個 vim 命令并從其輸出創(chuàng)建一個臨時緩沖區(qū),然后在一個分屏窗口中打開它。例如:Bufferize map將在一個新窗口中顯示所有鍵盤映射,你可以搜索它們。要退出新窗口,只需使用常規(guī)的:q命令。
4. Bufferline
Bufferline 補充了 Bufexplorer(見上文),使它更容易處理多個文件 / 緩沖區(qū)。它在狀態(tài)行中打印所有打開的文件及其緩沖區(qū)編號的列表。你只需要瀏覽一下這個列表,輸入:b 5就可以切換到第 5 個文件 / 緩沖區(qū),或者使用 Bufexporer,點擊\be后面跟/5,然后回車。
5. Bufkill
如果你在一個分割中打開了兩個緩沖區(qū),并且你想要關(guān)閉一個緩沖區(qū),那么你可以使用:bd命令。不幸的是,這個命令也關(guān)閉了分割。通常,你不想關(guān)閉分割,而只想關(guān)閉緩沖區(qū)。在這種情況下,使用 Buffkill 的:BD命令,該命令將關(guān)閉緩沖區(qū),但保留分割。
6. Characterize
Characterize 添加了ga快捷方式,顯示光標(biāo)下 Unicode 字符的名稱、代碼點值和十六進(jìn)制值。
7. Clever-f
此擴展改進(jìn)了用于查找下一個 / 前一個字符的f和F快捷鍵。按下fa會轉(zhuǎn)到下一個a。按下Fa會轉(zhuǎn)到前一個a。沒有這個擴展,你必須再次輸入fa來找到下一個a或者按下分號;。類似地,你必須輸入Fa或,才能再次找到前面的a。如果你是一個 vim 老手,你已經(jīng)在用;和,,你最終會fafafafa或FaFaFaFa。
有了這個擴展,你可以再按一次f,它會搜索下一個字符,你可以再按一次F,它會搜索前一個a,所以,不用fafafafa,你現(xiàn)在可以用fafaff代替FaFaFaFa,你可以FaFFF。此外,當(dāng)你按下f或F時,它將顯示下一個 / 前一個匹配項,你立即就知道光標(biāo)將跳轉(zhuǎn)到哪。
8. Colorscheme-gruvbox
深色系主題。灰色背景,淺綠色文字和功能。
9. Colorscheme-jellybeans
深色系主題。黑色背景,淺綠色文字,淺黃色功能。
10. Colorscheme-seoul256
深色系主題。灰色背景,淡藍(lán)色文字,淡黃色功能。
11. Commentary
最簡單、最快捷的注釋插件之一。按gcc將整個行注釋掉。按gc注釋掉一個可視化選中部分。再次按下相同的快捷鍵取消注釋。
12. Conflicted
這個插件有助于解決 git 合并沖突。假設(shè)你剛從 github 上的項目主分支中取出代碼,遇到了一個合并沖突錯誤。要解決這個問題,可以運行這個插件提供的:Conflicted命令。該命令創(chuàng)建一個三向 diff,并將結(jié)果放在三個垂直分割的窗口中。左邊的分割是上游更改,中間的分割是工作更改,右邊的分割是本地更改。你可以接受上游 diff 或本地 diff 來解決沖突。為快速接受正確的 diff, Conflicted 提供了兩個鍵映射。dgu命令將使用上游 diff,dgl將使用本地 diff。要解決下一個沖突,使用:GitNextConflict命令。如果沒有更多的沖突,vim 將退出,你可以git commit已解決沖突的文件。
13. Ctrlp
這個插件添加了ctrl+p綁定來打開一個模糊文件打開對話框。例如,如果你需要編輯math-config.json文件,你可以鍵入文件名的一些字母,如mat.js、mjson,甚至thfig(“th”是“math”的最后兩個字母,“fig”是“config”的最后三個字母)。Ctrlp 將立即縮小搜索范圍,并提供最佳匹配。它還可以用來打開 mru 文件(最近使用的文件)和緩沖區(qū),你可以使用ctrl+r和ctrl+f快捷鍵在文件 /mru/ 緩沖區(qū)模式之間切換。
14. Ctrlp-funky
Ctrlp-funky 通過添加函數(shù)查找模式擴展了上面的 Ctrlp 插件。你可以運行:CtrlPFunky命令,立即在函數(shù)搜索模式下打開 Ctrlp,或按下ctrl+p打開 Ctrlp,然后按ctrl+r(或ctrl+f)幾次,進(jìn)入函數(shù)搜索模式。例如,如果你有一個void debug_print ()函數(shù),你可以輸入vodepr(單詞 void、debug、print 的前兩個字母),然后回車,vim 將跳轉(zhuǎn)到這個函數(shù)的定義。
15. Ctrlsf
有了這個插件,你可以快速搜索和替換大量的文本。當(dāng)你運行:CtrlSF模式命令時,它將在左側(cè)創(chuàng)建一個包含所有匹配項的結(jié)果窗口。“結(jié)果”窗口中還有一些圍繞匹配項的上下文行,方便你知道你正在查看的是否是正確的匹配項。現(xiàn)在,你可以直接在結(jié)果窗口中進(jìn)行編輯。當(dāng)你保存結(jié)果窗口時,更改也將保存在文件中。你也可以按下回車鍵,在右邊的窗口中打開每個結(jié)果并在那里編輯它。
16. Delimitmate
Delimitmate 會自動關(guān)閉引號和括號。例如,你輸入“會自動得到“”,而且光標(biāo)位于兩個引號之間。
17. Diff-enhanced
這個插件為 vimdiff 添加了一個新的 diff 可視化方法,它試圖最小化差異的數(shù)量。當(dāng)你處于 diff 模式時,輸入:EnhancedDiff patience命令,你就能夠更好地查看 diff。
18. Dirvish
Dirvish 支持慣用的緩沖區(qū)驅(qū)動開發(fā),它作為一個文件瀏覽器補充了 Nerdtree(見下文)。當(dāng)你按下-鍵時,當(dāng)前緩沖區(qū)將變成一個文件瀏覽器。你將看到當(dāng)前工作目錄或當(dāng)前打開的文件目錄中的所有文件。然后可以使用箭頭鍵 hjkl 和搜索操作符/導(dǎo)航這個目錄并查找文件。當(dāng)你按下回車鍵時,Dirvish 將退出,光標(biāo)下的文件將在當(dāng)前窗口中打開,作為一個新的緩沖區(qū)。當(dāng)你有多個分割打開時,這個插件特別強大,因為你可以指定下一個文件在哪個分割中打開。你只需導(dǎo)航到分割,點擊-,找到文件,然后點擊回車,就可以在希望的分割中打開它了。
19. Dsf
Dsf 是刪除周圍函數(shù)的縮寫。通過在函數(shù)調(diào)用中按下dsf,它將刪除周圍的函數(shù)名。例如,如果你有像print_r(get_posts (true))這樣的代碼,并且你的光標(biāo)位于字符所在的位置,那么當(dāng)你按下dsf時,你將獲得輸出get_posts (true)。
20. Easy-align
有了這個擴展,你就可以整齊地將文本對其到列中。它添加了:EasyAlign命令,你可以將其綁定到你想要綁定的任何鍵盤快捷鍵。當(dāng)你執(zhí)行它時,它會要求你輸入列分隔符字符,然后對所選文本進(jìn)行格式化。例如,要對齊代碼使所有=符號都在同一列中,你可以使用V命令直觀地選擇行,然后運行:EasyAlign,接著=,然后回車。
21. Easymotion
Easymotion 讓你可以更快地在文件中導(dǎo)航。它添加了\\ w快捷方式,允許你快速跳轉(zhuǎn)到光標(biāo)之后的任何單詞。它為每個單詞分配一個唯一的字母,當(dāng)你下次按下它時,光標(biāo)會立即跳轉(zhuǎn)到該單詞。它還添加了\\b快捷方式,讓你可以快速地向后導(dǎo)航。類似地,如果你需要跳轉(zhuǎn)到上面或下面的任何一行,你可以使用\\k和\\j快捷鍵。
22. Exchange
使用 Exchange 插件,你可以非常快速地交換兩個單詞。轉(zhuǎn)到第一個單詞并按cxw,然后轉(zhuǎn)到第二個單詞并再次按cxw。你就完成了這兩個詞位置的交換!
實際上,你不僅可以交換兩個詞,還可以交換任何兩個 motion。按下cx后,下一個快捷鍵是 motion(motion 是移動光標(biāo)的鍵盤快捷鍵)。例如,要交換兩個字符,可以執(zhí)行cxl,然后再執(zhí)行cxl(l 是將光標(biāo)向右移動一個位置的動作)。類似地,要交換兩個句子,你可以執(zhí)行cxis,然后對第二個句子也執(zhí)行cxis操作。在這種情況下,motion 是選擇整個句子。
同樣,如果兩個 motion 相同,只要按一下.重復(fù)第一個操作。
23. Expand-region
通常,你希望選擇比剛剛選擇的文本多一點的文本。例如,你使用viw選擇了一個單詞,但隨后發(fā)現(xiàn)需要選擇整個引用字符串。有了這個插件,你可以按+,它會把當(dāng)前的選擇擴展到下一個最大的文本對象。從字符到一個單詞、一個帶引號的字符串、一行、一段到整個文件。
24. Far
Far 使查找和替換多個文件中的文本變得很容易。它添加了:Far pattern1 pattern2命令。當(dāng)你運行這個命令時,它將屏幕分成兩半。在上半部分,它顯示了pattern1匹配的所有文件和行。在下半部分,可以預(yù)覽匹配的上下文。在上面的分割中,你可以使用 hjkl 鍵來導(dǎo)航匹配項。默認(rèn)情況下,所有匹配項都將用pattern2替換,但你也可以使用t鍵取消匹配項的標(biāo)記(并再次使用 t 標(biāo)記它們)。選擇要替換的所有匹配項之后,運行:Fardo命令。這個命令將執(zhí)行實際的替換。
Far 也很適合于查找所有匹配項。你可以使用:F pattern命令,它將查找所有匹配的模式,并把它們顯示在兩個分割中,但是它不會執(zhí)行替換。
25. Fugitive
使用 Fugitive,你可以直接從 vim 使用 git。它添加了:Git命令(或簡寫為:G),該命令運行git status,并在一個分割窗口中顯示結(jié)果。然后,可以使用鍵盤快捷鍵s來暫存(git add)一個文件,使用u來恢復(fù)(git reset)一個文件。暫存文件之后,可以按cc創(chuàng)建提交。我還不知道如何進(jìn)行 git 推送,所以這是我需要學(xué)習(xí)的內(nèi)容。如果我能夠在不離開 vim 的情況下進(jìn)行代碼推送和部署,那將非常方便。
26. Fzf
Fzf 是 Ctrlp(見上文)的一個替代方案。它為快速打開文件和切換緩沖區(qū)添加了幾個命令。這些命令是:Files和:Buffers。如果你以前是按多次 tab 鍵來補全文件名和緩沖區(qū)名,那么現(xiàn)在你只需要鍵入文件名或緩沖區(qū)名的幾個字母。例如,如果你需要打開options.c文件,你可以直接輸入opt.c,甚至是oc,F(xiàn)zf 都會為你提供最佳匹配。
27. Fzf-mru
Fzf-mru 增加了一個可以通過:FZFMru命令訪問的 mru 模式。此模式允許你快速訪問最近編輯的文件。假設(shè)你昨天在從事 scraper 項目相關(guān)的工作。今天,當(dāng)你進(jìn)入 mru 模式時,只需要輸入scra,它就會顯示你昨天處理的 scraper 項目的所有文件。
28. Gitgutter
Gitgutter 增加了兩個有用的東西。第一個列位于 vim 最左邊,它快速顯示當(dāng)前文件的 git diff 信息。你可以快速查看添加和更改了哪些行。第二個是]c和[c映射,讓你可以在更改的行之間跳轉(zhuǎn)。
29. Goyo
我最近切換到 Goyo 模式編程。當(dāng)你輸入:Goyo命令時,這個插件會將內(nèi)容居中,并刪除行號和狀態(tài)行,這樣你就可以專注于無干擾的編碼了。如果還讓 vim 全屏,那就更好了。
30. Grepper
Grepper 改進(jìn)了 vim 中的查找,并增加了對 ripgrep 的支持。你可以輸入:Grepper,然后輸入你的搜索查詢,它將找到所有匹配項并在 quickfix 窗口中加載它們。然后你可以使用 vim 的:cn和:cp命令來導(dǎo)航到下一個 / 前一個匹配項,或者使用 Unimpaired 插件(見下文)的快捷方式]q和[q。
這個插件的作者建議將它與 qfenter.vim 插件一起使用。這是我還要嘗試的東西。
31. Gv
Gv 將 git 提交瀏覽器添加到 vim 中。你可以運行:GV命令,它將顯示整個提交樹。然后,你可以在提交窗口中按下回車或 o 來查看各個差異。要退出 diff 查看器,請按q。如果你只對當(dāng)前文件的 git 日志感興趣,那么可以使用:GV!命令。
32. Illuminate
Illuminate 高亮顯示當(dāng)前可見緩沖區(qū)中光標(biāo)下這個單詞的所有出現(xiàn)。例如,如果光標(biāo)在單詞var上,那么所有其他的var也將高亮顯示。
33. Interestingwords
這個插件允許你同時高亮顯示多個單詞。它添加了快捷方式\k,可以更改光標(biāo)下單詞的背景顏色,以及文件中出現(xiàn)的所有相同單詞。你還可以使用n和N來跳轉(zhuǎn)到下一個 / 上一個高亮顯示的單詞。當(dāng)你處理復(fù)雜的代碼并需要跟蹤多個變量的使用情況時,它非常有用。
34. Linediff
Linediff 讓你可以快速比較兩個文本塊。可視地選擇第一個文本塊并運行:Linediff命令。然后可視地選擇第二個塊并再次運行相同的命令。這個插件將創(chuàng)建一個新的標(biāo)簽頁,將兩個文本塊的差異垂直分割。如果結(jié)果看起來太冗長,運行:EnhancedDiff patience命令(來自上面的 Diff-enhanced 插件)來改進(jìn)差異。
你還可以使用這個插件快速解決 git 合并沖突。如果你打開的文件中存在合并沖突,將光標(biāo)放在合并沖突標(biāo)記<<<<<<和>>>>>之間,并運行:LinediffMerge命令。接下來,插件會自動創(chuàng)建一個垂直分割,分割合并沖突差異,你可以在左邊或右邊的分割中進(jìn)行編輯,并通過運行:LinediffPick命令來自動解決合并。
35. Listtoggle
一旦你對 vim 的熟練達(dá)到了一定的程度,你將開始一直使用 quickfix 窗口(以及位置列表窗口)。查找結(jié)果將在 quickfix 中,linting 錯誤將在 quickfix 中,編譯錯誤將在 quickfix 中,待辦事項列表將在 quickfix 中。一切都會很快解決。你會一直關(guān)閉和打開 quickfix。不幸的是,沒有簡單的方法來切換 quickfix 窗口和位置列表窗口。你必須使用:copen和:cclose命令來打開 / 關(guān)閉 quickfix,以及:lopen和:lclose來打開 / 關(guān)閉位置列表。這打字太多了。
Listtoggle 使它更加簡單,并增加了兩個快捷方式來快速切換它們。\q綁定將切換 quickfix 窗口,而\l綁定將切換位置列表窗口。
36. Locate
通常,你需要查找當(dāng)前文件中的所有出現(xiàn)。你不想來一次全局搜索,你不想搜索和替換,你不想要任何分割,你只想要一個所有結(jié)果的總覽。Locate 通過:Locate命令(或簡寫為:L)提供完全相同的功能。只需鍵入:L pattern,這個插件就會打開一個快速位置列表,其中包含當(dāng)前文件中所有出現(xiàn)該模式的地方。你可以使用快捷方式\l切換位置列表(由 Listtoggle 插件提供,見上文),你還可以通過快捷方式]l(下一個結(jié)果)和[l(前一個結(jié)果)(由 Unimpaired 插件提供,見下文)來瀏覽結(jié)果。
37. Matchtagalways
這個插件突出顯示了光標(biāo)所在位置最內(nèi)層的 HTML 打開和關(guān)閉標(biāo)記。例如,如果光標(biāo)在<div >cursor here</div>,那么這個插件將突出顯示<div>和</div>標(biāo)簽。
38. Matchup
Matchup 添加了快捷方式%,允許你在匹配的括號對之間快速跳轉(zhuǎn)。如果你的光標(biāo)在{字符上,那么按 % 后它將跳到}。如果你再次按 %,它將跳回{。它還添加了快捷方式z%,使你可以向前跳轉(zhuǎn)到下一對圓括號內(nèi)。假設(shè)你有一個函數(shù)print_data ("hi", 7)和你的光標(biāo)在。然后,在按下z%之后,光標(biāo)將出現(xiàn)在函數(shù)參數(shù)中。
39. Nerdcommenter
Nerdcommenter 是另一個代碼注釋插件。借助 Commentary (見上文),你可以使用gc快捷方式快速切換注釋,但是 Nerdcommenter 提供了對注釋的更多控制。例如,你可以使用\cm快捷方式執(zhí)行多行注釋,并使用\cA快捷方式在行尾添加注釋。
40. Nerdtree
Nerdtree 是一個文件管理器。它在 vim 的左側(cè)顯示當(dāng)前項目的完整目錄和文件樹結(jié)構(gòu)。要打開和關(guān)閉 Nerdtree,請運行:NERDTreeToggle命令。方便起見,你可以將它綁定到快捷方式\t。當(dāng)它打開時,你可以使用常規(guī)的 hjkl 鍵進(jìn)行導(dǎo)航。使用鍵O打開項目中的所有目錄,然后使用常規(guī)的/search 操作符搜索文件。要在右側(cè)打開光標(biāo)下的文件,請按下 ok 鍵。要查看隱藏的文件,請使用 I 鍵。與 Dirvish(見上文)相比,它支持文件管理器驅(qū)動的開發(fā)。Nerdtree 總是在右側(cè)打開文件,而不是指定在哪里打開文件。
41. Nerdtree-syntax-highlight
這個插件將語法高亮顯示添加到 Nerdtree 中。現(xiàn)在,文件和目錄有了不同的顏色。
42. Peekaboo
Vim 有許多不同的寄存器。當(dāng)你復(fù)制文本時,它會進(jìn)入"寄存器。當(dāng)你刪除文本時,它會進(jìn)入數(shù)字寄存器。然后還有小寫和大寫等寄存器供你個人使用。
當(dāng)你要使用寄存器時,這個插件會預(yù)覽它們。當(dāng)你按下 " 鍵時,它會在右側(cè)打開一個寄存器備忘單,你可以看到每個寄存器的內(nèi)容并選擇正確的寄存器。你還可以按空格鍵加大寄存器備忘單。
43. Qfgrep
Quickfix 是 vim 最大的特性之一。不幸的是,一旦用結(jié)果填充了 quickfix 列表,它就會被凍結(jié)。你無法進(jìn)一步過濾 quickfix 列表。這種行為不太合理,因為你總是希望細(xì)化結(jié)果。
Qfgrep 允許你這樣做。現(xiàn)在,你可以在 quickfix 窗口中過濾結(jié)果。使用\g快捷方式過濾結(jié)果,\v轉(zhuǎn)換過濾結(jié)果,\r 還原原始條目。它還添加了:QFGrepPat命令,該命令執(zhí)行與\g 相同的操作,:QFGrepPatV則執(zhí)行與\v相同的操作。
44. Qlist
Qlist 添加了:Ilist函數(shù),它是 vim 內(nèi)置的:Ilist函數(shù)的改進(jìn)版本。內(nèi)置的:ilist 函數(shù)來自一個計算機沒有多少內(nèi)存的時代,所以它當(dāng)時不是很有用,因為它會一股腦把所有東西都打印到屏幕上,你無法使用這樣的結(jié)果(見上文的 Bufferize 插件)。改進(jìn)后的:Ilist函數(shù)從結(jié)果中創(chuàng)建一個 quickfix 列表。你現(xiàn)在可以運行:Ilist pattern,這個插件將在當(dāng)前以及包括的項目文件中找出所有用到的單詞模式,并把它們放在 quickfix 窗口中,正是你想要顯示所有結(jié)果的地方。
45. Quickfix-reflector
你不僅希望篩選 quickfix 結(jié)果(上面的 Qfgrep),還希望編輯 quickfix 窗口,就好像它只是另一個緩沖區(qū)一樣。這個插件使得 quickfix 窗口可以修改。現(xiàn)在可以使用dd刪除 quickfix 條目,使用i添加新條目。你還可以直接編輯 quickfix 結(jié)果,當(dāng)你通過:w 保存 quickfix 窗口時,文件也會得到更新。
46. Ranger
這個插件讓你可以跳轉(zhuǎn)到外部 Ranger 文件管理器,在 vim 中打開一個文件。它類似于 Dirvish(見上文),讓你可以輕松地進(jìn)行緩沖區(qū)驅(qū)動的開發(fā)。當(dāng)你在任何窗口中運行:Ranger命令時,它將啟動ranger進(jìn)程。然后,當(dāng)你選擇一個文件時,它將在選擇的文件中作為一個新的緩沖區(qū)打開。
47. Repeat
Repeat 改進(jìn)了.命令。它讓你可以重復(fù)其他插件的命令和動作。例如,如果你使用 Surround 插件(見下文)將文本括在引號中,那么按下.會重復(fù)這個動作。
48. Rooter
由于 vim 不是 IDE,所以它幾乎沒有項目的概念,也不知道項目的根目錄是什么。當(dāng)你嘗試打開一個文件時,vim 會搜索主目錄或其他目錄,而不是項目目錄。
這個插件會自動將 vim 的當(dāng)前工作目錄設(shè)置為項目目錄,使得處理項目變得更加簡單。它通過查找最根部的.git目錄來實現(xiàn)。通常,此類目錄表明了項目的起點。
49. Scratch
Vim 的文檔提到了一種稱為 scratch 緩沖區(qū)的特殊緩沖區(qū)類型。這個插件實現(xiàn)了它。Scratch 緩沖區(qū)是臨時丟棄緩沖區(qū)。當(dāng)你在做一個項目的時候,快速筆記是很有用的。使用:Scratch命令打開它。光標(biāo)將跳轉(zhuǎn)到頂部的 scratch 窗口。當(dāng)你將光標(biāo)移動到另一個窗口時,scratch 窗口將自動關(guān)閉。
50. Signature
當(dāng)使用標(biāo)記時,沒有一種可視化的方式來告訴你在哪里添加了它們。你可能記得一兩個標(biāo)記,但當(dāng)你再加的時候,你就迷失了。這個插件解決了這個問題,它會在最左邊的列中顯示標(biāo)記。你可以用默認(rèn)快捷方式ma、mb、…添加和切換標(biāo)記,用dma、dmb、…刪除單個標(biāo)記,用m-刪除所有標(biāo)記,用]'和['跳到下一個和前一個標(biāo)記,用m/將所有標(biāo)記放到位置列表窗口中。
51. Speeddating
在正常模式下,ctrl+a和ctrl+x可以實現(xiàn)數(shù)值遞增和遞減。這個插件使這些鍵盤快捷鍵也可以實現(xiàn)日期和時鐘時間的增加。例如,如果光標(biāo)位于字符串2000-01-31上時,按ctrl+a將使其變?yōu)?code>2000-02-01,按ctrl+z將使其變?yōu)?code>2000-01-30。
52. Swap
Swap 讓你可以快速地交換單詞或逗號分隔的函數(shù)參數(shù)。例如,如果你有一個函數(shù) print (a, b, c),那么你可以按 g>,它會變成print (b, a, c)。按g<,它會再次變成print (a, b, c)。你還可以通過按gs進(jìn)入可視化交換模式。然后使用 hjkl 鍵來交換參數(shù)。
53. Syntax-css3
CSS3 語法高亮插件。
54. Syntax-dockerfile
Dockerfile 語法高亮插件。
55. Syntax-html5
HTML5 語法高亮插件。
56. Syntax-i3config
i3 窗口管理器配置文件語法高亮插件。
57. Syntax-javascript
JavaScript 語法高亮插件。
58. Syntax-json
JSON 語法高亮插件。
59. Syntax-nginx
Nginx 配置文件語法高亮插件。
60. Syntax-php
PHP 語法高亮插件。
61. Syntax-tmux
tmux 配置文件語法高亮插件。
62. System-copy
Vim 終端沒有用于從系統(tǒng)剪貼板復(fù)制和粘貼的寄存器*或+。這個插件添加了cp快捷方式,通過調(diào)用外部實用程序xsel將所選文本或 motion 復(fù)制到系統(tǒng)剪貼板。它還具有從系統(tǒng)剪貼板粘貼的快捷方式cv。
63. Tabular
Tabular 的功能與 EasyAlign(見上文)相同。它對文本進(jìn)行列對齊。與 EasyAlign 相比,它的一個優(yōu)點是,你可以直接將用于對齊的正則表達(dá)式傳給它。與正則表達(dá)式相匹配的位置將會對齊。例如:Tabular /regex將創(chuàng)建整齊的regex列。
64. Targets
掌握 vim 的一個步驟是學(xué)習(xí)使用文本對象。文本對象允許你操作整個文本結(jié)構(gòu),而不是單個字符。Vim 已經(jīng)附帶了許多文本對象——你可以訪問單詞、句子、段落和代碼塊。這個插件增加了十幾個文本對象。例如,你可以使用di刪除逗號分隔的項,或者你可以使用cin和cil來更改前一個和后一個逗號分隔的項,你可以使用ci+來更改 sum 元素,等等。
65. Textobj-user
從頭編寫自己的文本對象非常困難,因為在調(diào)用文本對象時必須精確復(fù)制 vim 的行為,并了解所有的陷阱和缺陷。這個插件提供了一個快速簡單的接口,讓你可以實現(xiàn)自己的文本對象。“textobj”插件有一個完整的生態(tài)系統(tǒng),使用這個插件可以添加各種有用的文本對象。
66. Textobj-entire
這個插件使用 Textobj-user(見上文)創(chuàng)建一個文本對象 ie 和 ae 來操作整個文件。例如,要選擇整個文件,你可以執(zhí)行 vae,要刪除整個文件,你可以執(zhí)行 vaed 或 dae。
67. Textmanip
這個插件讓你可以直觀地移動選中的文本。例如,你能可視化地選擇一個單詞,然后使用快捷鍵 ctrl+h 和 ctrl+l 將其向左或向右移動。類似地,你可以使用快捷鍵 ctrl+j 和 ctrl+k 向下移動整個行。
68. Thesaurus-query
有了這個插件,你可以訪問 Libreoffice 同義詞典。一旦配置了它,你可以使用:Thesaurus word命令來查找與 word 相關(guān)的所有單詞,你還可以使用:ThesaurusW來查找與光標(biāo)下的單詞相關(guān)的所有單詞。
69. Tmux-complete
當(dāng)你處于流程中時,會同時發(fā)生許多事情,并且會打開許多 tmux 窗口和窗格。一個顯示 git 日志,另一個用于測試,還有一個顯示幫助手冊,等等。通常,你需要從 tmux 窗格獲取信息到 vim。通常,你必須用鼠標(biāo)來復(fù)制它,但這非常低效。有了這個插件,你可以在插入模式下按下 ctrl+x ctrl+u,從任何 tmux 窗口 / 窗格補全單詞。它將提供來自所有 tmux 窗口 / 窗格的所有單詞的列表。
70. Traces
當(dāng)用:s/old/new命令替換文本時,執(zhí)行這個命令后才能看到更改。這個插件讓你可以在輸入時預(yù)覽 old 匹配和用于替換的部分 new,你可以直接看到你是否做對了。
71. Undoquit
通常,你可能因為操作太快關(guān)閉了一個你不想關(guān)閉的窗口。有了這個插件,你現(xiàn)在可以按ctrl+w+u撤消關(guān)閉操作。
72. Unicode
這個插件讓你可以快速搜索和插入 Unicode 字符。例如,如果你想插入一個 Unicode 兔子符號,你可以輸入 rabbit,然后按下 ctrl+x ctrl+z。輸入文字 rabbit 將被“兔子”的表情符號取代。
73. Unimpaired
許多命令都是成對的。例如:bn和:bp跳到下一個 / 前一個緩沖區(qū),:cn和:cp跳到下一個 / 前一個 quickfix 列表項,:ln和:lp跳到下一個 / 前一個位置列表項,等等。此插件為這些命令添加了靈活的快捷方式。你現(xiàn)在可以用]b和[b跳到下一個/前一個緩沖區(qū),用]q和[q跳到下一個 / 前一個 quickfix 條目,用]l和[l跳到下一個 / 前一個位置列表條目,等等。
74. vimade
當(dāng)你使用多個分割窗口時,在短暫的分心之后,很容易忘記你在哪個分割窗口中工作。這個插件會淡化其他所有的分割線,使當(dāng)前聚焦窗口的分割線清晰可見。
75. Visual-split
通常,你需要將注釋、函數(shù)定義或代碼片段在上方折疊,使其始終可見。通常的方法是用ctrl+w+s分割窗口,然后用10ctrl+w+-重新調(diào)整窗口大小。這個插件合并了這兩個動作。現(xiàn)在你可以直觀地選擇該區(qū)域并按下ctrl+w+gss。該插件將分割窗口并調(diào)整大小,使其與所選的行完全匹配。
76. Visual-star-search
有兩個操作符可以搜索光標(biāo)下的單詞。它們是*(向前搜索)和#(向后搜索)。不幸的是,在可視化模式中,它們不會搜索可視化選擇部分,你也不能搜索包含特殊字符的單詞。例如,如果單詞是 h#e#l#l#o,那么這些操作符將選擇并搜索這個單詞中的一個字母,這不是你想要的。
使用此插件,你可以搜索可視化選擇的序列,它可以包含任何特殊字符。使用v命令進(jìn)行選擇,然后按*或#進(jìn)行搜索。
77. Writeable-search
Writeable-search 類似于 CtrlSF(見上文)。它讓你可以快速查找結(jié)果并立即在結(jié)果窗口中編輯它們。當(dāng)你運行:WritableSearch pattern命令時,它將在當(dāng)前目錄中的所有文件中搜索這個 pattern,并打開一個包含結(jié)果的新選項卡。然后,你可以編輯結(jié)果,當(dāng)你在相同的結(jié)果窗口中執(zhí)行:w操作時,它會更改更新文件。如果你已經(jīng)在 quickfix 窗口中有一個要修復(fù)內(nèi)容的列表,那么你可以通過:WritableSearchFromQuickfix命令將它們轉(zhuǎn)移到這個插件中進(jìn)行編輯。
總結(jié)
以上是生活随笔為你收集整理的好用的 77 款 Vim 插件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 苹果xr和x区别哪个好,苹果xr和x哪个
- 下一篇: 澳大利亚实行强制新闻准则 脸书谷歌必须支