Thay vì gọi execute pathogen#infect()để tải tất cả các plugin, hãy gọi pathogen#interposecho 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 autocmds cho mỗi filetype / plugin.
Nếu điều này không tồn tại, có :set syntax whateverchuyể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, commandvà mapdefinitons. 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 filetypevà không :set syntax , như syntaxsẽ 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, formatexprvv).