當我檢查我的.vim
目錄時,我發現安裝了vim-plug
的所有插件都位於.vim/plugged
目錄中。在這種情況下,vim如何加載這些插件?如果我有一個通常安裝的插件,那麼哪一個插件會有更高的可裝載性?vim插件如何管理我的vim插件?
1
A
回答
1
的plug#begin(...)
函數設置插件「家」的路徑(vim-plug
是一個插件太),
if a:0 > 0
let s:plug_home_org = a:1
let home = s:path(fnamemodify(expand(a:1), ':p'))
...
和功能plug#end()
經過定義(通過plug#()
)插件的列表,並讓他們在詞典:
for name in g:plugs_order
...
if has_key(plug, 'on')
let s:triggers[name] = { 'map': [], 'cmd': [] }
for cmd in s:to_a(plug.on)
if cmd =~? '^<Plug>.\+'
if empty(mapcheck(cmd)) && empty(mapcheck(cmd, 'i'))
call s:assoc(lod.map, cmd, name)
然後最後通過調用(最終)操縱runtimepath
和source
S中的插件的每一個s:lod()
:
for [cmd, names] in items(lod.cmd)
execute printf(
\ 'command! -nargs=* -range -bang %s call s:lod_cmd(%s, "<bang>", <line1>, <line2>, <q-args>, %s)',
\ cmd, string(cmd), string(names))
endfor
你可以找出其中的插件從vim-plug
的代碼加載順序。
0
加載插件只不過是採購腳本文件。腳本文件可以在任何地方。
通常一個插件有一個標誌(g:變量例如)來檢測腳本是否已經加載。所以它不會被加載兩次。但是,如果你的插件沒有這個機制,它可能會被加載兩次。
相關問題
- 1. 如何管理vim插件
- 2. Vim的包(插件)管理
- 3. magento Vim插件
- 4. Autoupdate VIM插件?
- 5. vim Tagbar插件
- 6. Vim bugzilla插件?
- 7. 如何安裝Vim插件
- 8. VIm的Rails插件
- 9. vim的javacomplete插件
- 10. Vim片段插件
- 11. VIM對準插件
- 12. vim-r-plugin vim-py-plugin的Python插件
- 13. VIM禁用插件映射插件
- 14. Vim的Valloric/YouCompleteMe插件
- 15. 翻譯者的vim插件
- 16. bash的vim插件編輯
- 17. Vim-R插件的Tmux?
- 18. lh插件的Vim錯誤?
- 19. 如何刪除vim中的插件?
- 20. 用Vundle管理自己的Vim插件的分支
- 21. 如何從插件中獲取vim插件的目錄?
- 22. 如何爲vim安裝vmath插件
- 23. 如何啓用在vim SUPERTAB插件
- 24. 如何使用插件運行vim?
- 25. 如何爲vim安裝rails插件?
- 26. 如何爲Vim安裝Gist插件?
- 27. 如何重新索引CtrlP Vim插件?
- 28. 如何在cygwin下安裝vim插件?
- 29. 安裝fuzzyfinder VIM插件
- 30. 插件打破vim映射?
注意:Stackoverflow也有「vi和vim」的測試版網站。一探究竟! – Jens
優先級由「rtp」選項決定。查看這個變量來知道事物是以何種順序加載的(見BTW':h'rtp'')。那麼,你的下一個問題可能是「它是如何填滿的?」。好。這要歸功於'rtp',您的插件管理器註冊生活在不同文件夾中的插件。 –
插件管理者的全部觀點是不是將你從這些概念中解放出來? – romainl