2012-12-17 25 views
6

Tôi biết có nhiều bài đăng về câu hỏi này nhưng tôi đã thử không có kết quả để có được phần Vim đơn giản này để hoạt động. Tôi muốn có được các plugin mầm bệnh để làm việc với Vim. Như một vài điểm, tôi đang làm việc trên một hệ thống Windows. Tôi đã tải xuống tác nhân gây bệnh qua github và đã tạo các thư mục .vim và các thư mục con autoloadbundle. .vimrc của tôi là mặc định tạo ra với mkvimrc với:Không thể nhận được Tác nhân gây bệnh hoạt động trong Vim

call pathogen#infect() 
syntax on 
filetype plugin indent on 

thêm vào phía dưới. Phát biểu đăng khác tôi đã thấy:

:set cp? = nocompatible 

Một lĩnh vực Tôi đoán là một phần của vấn đề là sau khi tôi chạy :scriptnames Tôi không nhận được thư mục .vim. Tôi chỉ nhận được các thư mục Vim\.vimrcvim73. Làm cách nào để giải quyết vấn đề này? Tôi đã ở đây một thời gian dài và xin lỗi nếu điều này là hiển nhiên đối với những người khác ở đây.

+0

BTW, cú pháp ': set' của bạn sai. Không có khoảng trống xung quanh '=', và thả '?'; nó là để hiển thị giá trị hiện tại. –

Trả lời

9

Trên Windows, vị trí mặc định của cấu hình người dùng cục bộ là $HOME/vimfiles. Nếu tập tin của bạn trong $HOME/.vim sau đó bạn có cần phải di chuyển chúng đến vimfiles hoặc thêm .vim để runtimepath của bạn trong vimrc của bạn:

set runtimepath+=~/.vim 

Ngoài ra, nếu mầm bệnh nằm trong một thư mục con của bundle bạn sẽ cần phải chạy nó một cách rõ ràng từ đó, theo mặc định, Vim sẽ chỉ xem trong ~/.vim/. Đặt điều này trong .vimrc của bạn trước khi pathogen#infect gọi:

runtime bundle/pathogen/autoload/pathogen.vim 
+1

Đó là chính xác nó, tôi chuyển thư mục .vim vào vimfiles và tất cả dường như đang làm việc. Cảm ơn bạn, điều này đã được lái xe cho tôi hạt. – Liam

+0

Không sao cả. Điều này thường gây nhầm lẫn cho tôi khi di chuyển các tệp giữa các nền tảng khác nhau. Tôi muốn mặc định của Vim là nhất quán! –

0

mở Vim với plugins tàn tật và gõ :set rtp - nhận thấy rằng:

  • nếu bạn đang ở trên Unix, sau đó theo mặc định: người đầu tiên đi ~/.vim và người cuối cùng đi ~/.vim/after;
  • nếu bạn đang sử dụng Windows, theo mặc định: bước đầu tiên là ~/vimfiles và lần cuối cùng đi ~/vimfiles/after.

Đây là loại quy ước Vim. after thư mục được sử dụng để ép buộc mạnh mẽ cài đặt mặc định của Vim hoặc cài đặt plugin, đôi khi rất quan trọng. Đó là lý do tại sao họ là người cuối cùng trong số rtp.

Tác nhân gây bệnh thực sự phân tích cú pháp cấu trúc của biến số rtp hiện tại của bạn và sử dụng biến này để chèn đường dẫn plugin vào đúng số rtp. Ví dụ: hãy xem số điện thoại rtp:

runtimepath= 
~/.vim, 
~\.vim\plugins\NERDCommenter, 
~\.vim\plugins\NERDTree, 
~\.vim\plugins\SameSyntaxMotion, 
~\.vim\plugins\Tabular, 
~\.vim\plugins\UltiSnips, 
~\.vim\plugins\c.vim, 
~\.vim\plugins\clang_complete, 
~\.vim\plugins\CountJump, 
~\.vim\plugins\delimitMate, 
~\.vim\plugins\fswitch, 
~\.vim\plugins\matchit, 
~\.vim\plugins\matlab, 
~\.vim\plugins\neocomplcache, 
~\.vim\plugins\protodef, 
~\.vim\plugins\python-syntax, 
~\.vim\plugins\solarized, 
~\.vim\plugins\syntastic, 
~\.vim\plugins\vim-creole, 
~\.vim\plugins\vim-latex, 
~\.vim\plugins\vim-markdown, 
~\.vim\plugins\vim-python-pep8-indent, 
~/vimfiles, 
D:\Applications\Vim/vimfiles, 
D:\Applications\Vim, 
D:\Applications\Vim/vimfiles/after, 
~/vimfiles/after, 
~\.vim\plugins\Tabular\after, 
~\.vim\plugins\UltiSnips\after, 
~\.vim\plugins\vim-markdown\after, 
~/.vim/after 

Chú ý cách thức đường dẫn được tiêm mầm bệnh. Nó đã phát hiện ra rằng một số bổ sung có thư mục after và đặt chúng ngay trước ~/.vim/after - để từ cuối cùng luôn là của tôi.

Để đạt được mầm bệnh này cần một cặp hoặc ~/.vim~/.vim/after hoặc ~/vimfiles~/vimfiles/after hoặc thậm chí ~/stuff~/stuff/after (không chắc chắn về các trường hợp cuối cùng mặc dù) như neo để tiêm đường plugins' theo thứ tự đúng.

Nếu bất kỳ thư mục nào của cặp này bị thiếu, bạn sẽ có một số kinh nghiệm khó chịu với tác nhân gây bệnh (như tôi đã làm trước đây, cho đến khi tôi phát hiện ra tất cả các công cụ nói trên và lướt qua mã nguồn mầm bệnh) có thể tiêm một cách chính xác.

Bây giờ bạn có thể thấy rằng các câu trả lời được cung cấp bởi Prince Goulash là hoàn toàn sai :

  1. sai lầm đầu tiên là ông đã nối ~/.vim để rtp trong khi ông cần phải có thêm vào phía trước nó;
  2. lỗi thứ hai là anh ta không thêm ~/.vim/after.

Giải pháp đúng như sau. Nếu bạn phải làm việc trên các nền tảng khác nhau bao gồm Windows bạn chứ không phải nên thêm này vào bạn .vimrc (Tôi ghi nhớ điều này tôi cũng - bạn có thể suy ra nó từ rtp ví dụ của tôi):

if has('win32') || has('win64') 
    set runtimepath^=~/.vim 
    set runtimepath+=~/.vim/after 
endif 

đoạn này sẽ đảm bảo tính nhất quán trên nền tảng. Bây giờ bạn có thể sử dụng thư mục giống Unix giống như .vim ngay cả trong Windows và quên đi các lỗi vimfiles - đó là IMO xấu xí và khủng khiếp.

Sau đó bạn gọi:

call pathogen#infect('plugins') " or wherever your plugins reside 
call pathogen#helptags()  " optional, but really cool 

LƯU Ý:'plugins' biểu thị thư mục ~/.vim/plugins, vì vậy nó là tương đối của ~/.vim.

1

Giải pháp cho tôi đã tải xuống lại pathogen.vim vì không thể tải xuống bằng cách nào đó không thực hiện theo chuyển hướng. URL được chỉ định trên tpope của github có các bước sau đây:

mkdir -p ~/.vim/autoload ~/.vim/bundle && \ 
curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim 

Bạn sẽ biết chuyển hướng thất bại trong việc tải về như các nội dung của pathogen.vim sẽ là một trang chuyển hướng 302. Chỉ cần tải xuống từ URL có trong chuyển hướng, ví dụ:

wget -N -O ~/.vim/autoload/pathogen.vim https://raw.githubusercontent.com/tpope/vim-pathogen/master/autoload/pathogen.vim 
Các vấn đề liên quan