Thay vì gọi execute pathogen#infect()
để tải tất cả các plugin, hãy gọi pathogen#interpose
cho mọi plugin, nghĩa là:
execute pathogen#interpose('bundle/unicode.vim')
execute pathogen#interpose('bundle/AnsiEsc.vim')
API mầm bệnh không được ghi lại bên ngoài nguồn , nhưng nó đủ đơn giản (mặc dù tên hàm không rõ ràng và không mô tả). Bạn cũng có thể sử dụng pathogen#surround()
cho các đường dẫn tuyệt đối.
Bạn có thể tải các plugin một cách có điều kiện với một cơ bản autocmd
:
" Always use this plugin
execute pathogen#interpose('bundle/unicode.vim')
" Only for Python
autocmd FileType python execute pathogen#interpose('bundle/vim-sexp')
Nếu bạn thấy bạn có nhiều trường hợp như vậy, bạn thậm chí có thể chia nó thành các đường dẫn khác nhau:
~/.vim/bundle/always
cho các plugin bạn luôn muốn
~/.vim/bundle/<filetype>
cho các plugin cho một kiểu tệp cụ thể
Và sau đó tải nó như vậy:
" Always use this plugin
execute pathogen#infect('bundle/always/{}')
" Load filetype plugins if they exist
autocmd FileType * if isdirectory('/home/martin/.vim/bundle/' . &ft) | execute pathogen#infect('bundle/' . &ft. '/{}') | endif
Bằng cách này, bạn không phải thêm cả đống autocmd
s cho mỗi filetype / plugin.
Nếu điều này không tồn tại, có :set syntax whatever
chuyển đổi các plugin không? Bởi vì đó sẽ là siêu :)
Khi một plugin được tải, nó được tải. Một "plugin" chỉ đơn giản là một bộ sưu tập function
, command
và map
definitons. Tôi không biết bất kỳ cách đơn giản nào để "dỡ" cái này.
Nó không plugins tải cho một filetype khi và chỉ khi bạn sử dụng :set filetype
; Nói chung, bạn luôn muốn sử dụng :set filetype
và không :set syntax
, như syntax
sẽ chỉ đặt sự làm nổi bật cú pháp, và không phải là thụt đầu dòng và các thiết lập khác (ví dụ iskeyword
, formatexpr
vv).