Làm cách nào để cài đặt plugin trong Vim / vi?


96

Làm cách nào để cài đặt plugin trong Vim?

Có vấn đề gì không

  • Cho dù tôi sử dụng vi hay Vim?
  • Cho dù tôi sử dụng gVim?
  • Phiên bản nào của Vim tôi đang sử dụng?
  • HĐH của tôi là gì?

Câu trả lời:


65

Để cài đặt một plugin, chúng ta cần biết nó thuộc dạng nào. Nó có thể là:

Một .vimtập tin duy nhất được cho là được đặt trong .vim/pluginthư mục.

Một tập tin Vimball có thể được cài đặt bằng cách mở nó trong Vim và chạy :source %.

Có thể cài đặt một tập hợp các tệp trong bố cục thư mục tiêu chuẩn bằng cách sao chép chúng vào .vimhoặc sử dụng trình quản lý gói plugin .

Plugin có thể phụ thuộc vào một số tính năng nhất định. Vì thế:

  • Nó có thể quan trọng nếu bạn đang sử dụng Vi hoặc Vim,
  • Có thể có vấn đề nếu bạn sử dụng gVim hay không (gVim thường có nhiều tính năng được bật tại thời điểm biên dịch hơn Vim trên cùng một bản phân phối).
  • Có thể bạn đang dùng phiên bản Vim nào, vì một tính năng có thể đã được thêm vào sau phiên bản Vim của bạn.
  • Bạn có thể sử dụng HĐH nào, đặc biệt nếu plugin gọi các lệnh bên ngoài.

Đối với hầu hết các plugin, mặc dù, nó có thể không quan trọng.


9
Nó chắc chắn có vấn đề nếu bạn đang sử dụng Vi - khái niệm bổ trợ không tồn tại cho Vi. Tất nhiên, gõ vitrên bất kỳ hộp hiện đại nào có thể sẽ chỉ khởi chạy vimvới một số tính năng bị tắt. Tôi nghi ngờ nhiều người có quyền truy cập vào Vi thực tế những ngày này.
tommcdo

37

cắm vim

Tôi thích sử dụng trình quản lý plugin vim-plug .

Vấn đề với việc cài đặt plugin theo cách thủ công là việc gỡ bỏ plugin khá khó khăn ; bạn thường có một vài tệp khác nhau trong các thư mục khác nhau, bạn phải tự tìm chúng & xóa chúng.

Nâng cấp các vấn đề tương tự khó khăn: Điều gì xảy ra nếu autoload/old-name.vimđược đổi tên thành autoload/new-name.vim? Bây giờ bạn có cả phiên bản cũ và mới của plugin.

vim-pluggiải quyết điều này bằng cách lưu trữ từng plugin trong thư mục riêng của nó; nó cũng bao gồm lệnh để dễ dàng cài đặt / gỡ bỏ một plugin, vì vậy bạn không phải loay hoay với các plugin giải nén và những thứ tương tự.

Một lợi thế chính của vim-plug so với Pathogen là vim-plug cho phép bạn cài đặt và gỡ bỏ các plugin dễ dàng hơn. Tất cả những gì Pathogen làm là cho phép mỗi plugin nằm trong một thư mục chứa riêng.

vim-plug dựa vào git ; đối với MS Windows, bạn muốn msysgit .

Bạn có thể xác định bổ trợ trong vimrc của mình như vậy:

call plug#begin('~/.vim/plugged')

" For MS Windows, this is probably better:
"call plug#begin('~/vimfiles/plugged')

Plug 'embear/vim-localvimrc'
Plug 'kchmck/vim-coffee-script'
" ... etc

call plug#end()

Sau đó khởi động lại Vim và sau đó cài đặt plugin với:

:PlugInstall

Điều này sẽ đưa các plugin vào ~/.vim/pluggedhoặc $HOME\vimfiles\pluggedcho MS Windows.

Bạn có thể thêm đoạn mã này từ Câu hỏi thường gặp vào tệp vimrc của mình trước plug#begin()cuộc gọi:

if empty(glob('~/.vim/autoload/plug.vim'))
  silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs
    \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
  autocmd VimEnter * PlugInstall
endif

Lưu ý bạn cần curlcho việc này để làm việc. Điều này hầu như luôn có sẵn trên Linux và OSX, nhưng không có trên MS Windows; vì vậy thủ thuật này sẽ không hoạt động ở đó ...

Để xóa plugin, hãy xóa nó khỏi tệp vimrc và chạy:

:PlugClean

Lưu ý rằng vim-plug không hỗ trợ cài đặt tập lệnh từ trang web tập lệnh Vim, nhưng các tập lệnh đó được nhân đôi trên GitHub , vì vậy không cần phải làm như vậy.

Ngoài ra còn có một số lợi thế bổ sung cho việc này như cập nhật plugin dễ dàng hơn và tải theo yêu cầu để có hiệu suất tốt hơn. Bạn cũng có thể dễ dàng sao chép vimrc của mình sang máy tính khác, chạy :PlugInstallvà có tất cả các plugin.

Lưu ý có nhiều trình quản lý plugin hơn; Tôi tình cờ sử dụng vim-plug. Xem thêm: Sự khác biệt giữa các trình quản lý gói vim là gì?


1
một trong những lợi thế quan trọng nhất của vim-plug so với các plugin khác là cài đặt / cập nhật song song các plugin
r3bo0t

"các tập lệnh này được nhân đôi trên GitHub, vì vậy không cần phải làm như vậy." Thật không may, cạp đã ngừng hoạt động từ lâu. github.com/vim-scraper/vim-scraper/issues/ từ
Bluu

@Bluu Vâng, tôi đã liên lạc với người bảo trì năm ngoái; có một số bit kỹ thuật cần cập nhật và không ai thực sự đẩy mạnh việc cập nhật: - / Mặc dù vậy, nó vẫn hơi hữu ích, vì nhiều tập lệnh không cập nhật thường xuyên (đặc biệt là các tập lệnh không có trên GitHub).
Martin Tournoij

25

Tác nhân gây bệnh

Pathogen là một trình quản lý đường dẫn thời gian chạy, tải các plugin trong Vim. Nó làm cho việc cài đặt plugin trở nên đơn giản; Đây là cách nó hoạt động:

lưu ý: Nếu bạn đang sử dụng Windows, hãy thay thế ~/.vimbằng $HOME\vimfiles.

  1. Sao chép pathogen.vimvào ~/.vim/autoload/pathogen.vim.

  2. Tạo ~/.vim/bundlethư mục, nếu nó chưa tồn tại.

  3. Thêm dòng sau vào đầu của bạn .vimrc:

    execute pathogen#infect()
    
  4. Bạn đã hoàn tất! Khi bạn muốn thêm một plugin, chỉ cần sao chép toàn bộ thư mục của plugin vào đó ~/.vim/bundlehoặc git cloneở đó. Ví dụ:

    cd ~/.vim/bundle
    git clone https://github.com/tpope/vim-surround
    
  5. * Hãy cẩn thận: Nếu plugin của bạn ở dạng .vimtệp, nó sẽ không hoạt động với Pathogen. Sao chép nó vào ~/.vim/pluginthay thế (bạn có thể phải tạo thư mục này nếu nó không tồn tại).


5
Lưu ý: mầm bệnh không phải là trình quản lý plugin.
romainl 8/2/2015

hoặc git submodule add(thay vì git clone) nếu cấu hình vim của bạn đã là một phần của dự án git của riêng bạn.
Martin York

@romainl nó là cái gì vậy?
RodrikTheReader

3
Đó là một người quản lý runtimepath. Như trong nó quản lý các runtimepathtùy chọn và đó là tất cả. Nó không đối phó với việc cập nhật, thêm, truy xuất, loại bỏ các plugin.
romainl

1
Đồng thời xem Gist xuất sắc của @romainl về việc sử dụng Pathogen .
icc97

23

Vim 8+ / Neovim

Phiên bản 8 giới thiệu một cơ chế gói mới thay thế phần lớn nhu cầu cho các trình quản lý plugin hiện có (mầm bệnh, vim-plug, vundle, v.v.) tại thời điểm viết (2017).

Từ tài liệu :

Gói Vim là một thư mục chứa một hoặc nhiều plugin

Một thư mục gói chứa hai thư mục con:

  • start/ - chứa các plugin sẽ được tải tự động
  • opt/ - chứa các plugin được tải theo yêu cầu với :packadd

Có vẻ hơi phức tạp, nhưng trong thực tế, tất cả những gì bạn phải làm là thêm plugin của mình vào đây :

                 ↓ package name
~/ .vim / pack / bundle / start / some-plugin
          ↑ packages dir          ↑ plugin dir

Trên Windows : sử dụng ~\vimfiles\pack\thay vì~/.vim/pack/

Theo quy ước, chúng tôi đã sử dụng tên gói "gói" làm thư mục sẽ chứa tất cả các plugin của chúng tôi. Bạn có thể sử dụng bất kỳ tên nào bạn muốn và thậm chí bạn có thể đặt các plugin của mình vào các thư mục gói riêng nếu bạn thực sự muốn.

Ví dụ: Cài đặt Sensible.vim

mkdir -p ~/.vim/pack/bundle/start
cd ~/.vim/pack/bundle/start
git clone https://github.com/tpope/vim-sensible.git

Trên Windows : sử dụng ~\vimfiles\pack\thay vì~/.vim/pack/

Lần tới khi bạn khởi động Vim, plugin sẽ tự động tải.


3
Nếu một trong số đó .vimnằm dưới sự kiểm soát của phiên bản, có thể tốt hơn để cài đặt các plugin có mô hình con của git; xem shapeshed.com/vim-packages/#adding-a-package .
Arch Stanton

Nếu có câu trả lời dựa trên thời gian, đây sẽ là câu trả lời được chấp nhận hiện tại cho đến ngày hôm nay.
Amin NAIRI

12

Chúng ta đừng quên Vundle vĩ đại và hùng mạnh !

Vundle là một trình quản lý plugin hoàn chỉnh, với chức năng cho:

  • Tìm kiếm plugin (sử dụng :PluginSearch)
  • Cài đặt plugin (sử dụng :PluginInstall)
  • Cập nhật plugin (sử dụng :PluginUpdate)
  • Quản lý đường dẫn tải plugin trong .vimrc (chỉ cần nhận xét các mục nhập plugin bạn không muốn tải)
  • Loại bỏ các plugin bạn không còn muốn (sử dụng :PluginClean)

Như bạn có thể thấy, nó rất giống với trình quản lý vim-plug được đề cập bởi Carpetsmoker. Tôi không biết cái nào xuất hiện trước, nhưng API của chúng trông rất giống tôi, cũng như quá trình thiết lập .


Điều thú vị về Vundle tương tự như vim-plug, bạn có thể lưu trữ tất cả các plugin của mình .vimrc, vì vậy khi cài đặt trên máy chủ mới, tất cả những gì bạn cần là cài đặt Vundle + .vimrcđể cài đặt mọi thứ. Ngoài ra, bạn có thể nhận xét các plugin của mình và 'dọn dẹp' chúng, nhưng có thể nhận xét lại chúng sau nhiều tháng hoặc nhiều năm sau khi bạn quên tên của chúng từ lâu.
icc97

Thêm vào đó tôi thích Vundle vì nó tương đối thân thiện với người mới bắt đầu. Nó cung cấp khá nhiều cách duy nhất để làm mọi thứ và hoạt động theo cách tương tự như Sublime Text.
icc97

1

Nhiều khả năng, plugin của bạn sẽ là một tệp .vim.

Nếu đây là trường hợp, tôi đã tìm kiếm sự giúp đỡ và thử nghiệm và tìm ra những điều sau đây. Từ trong vim (chế độ lệnh), gõ:

:set runtimepath

Điều này sẽ cho bạn thấy một loạt các thư mục. Một số thư mục này sẽ có pluginthư mục con. Đặt bất kỳ tệp .vim nào vào một trong các pluginthư mục con này sẽ khiến nó tự động được tải khi bạn bắt đầu vim từ bất cứ đâu.

Đối với tôi, trên Ubuntu linux, tôi thấy rằng nó /usr/share/vim/vim74/pluginhoạt động tốt, để cài đặt cho tất cả người dùng. Bạn có thể cần quyền root để sao chép một tập tin vào đây (tiền tố của bạn cphoặc mvlệnh với sudo).


3
IMHO đây không phải là thực hành tốt nhất. Lưu ý rằng bạn có vim74, có nghĩa là phiên bản cụ thể, vì vậy việc nâng cấp lên Vim 8.0, sẽ làm mất plugin đó. Cách chứng minh nâng cấp khác sẽ được sử dụng /etc/vim/cho điều đó (tạo nó nếu không có và thêm đường dẫn đó vào runtimepathnếu không có sẵn /etc/vimrc)
grodzik

3
Để thêm vào bình luận @grodzik: Most likely, your plugin will be a single .vim fileTôi không đồng ý. Phần lớn các plugin đi kèm với một .txttệp chứa tài liệu và bạn cần tạo các thẻ để có được một tài liệu chức năng. Ngoài ra rất nhiều plugin đi kèm với một autoloadthư mục. Tôi nghĩ rằng sử dụng trình quản lý plugin là một giải pháp tốt hơn so với quản lý runtimepath của bạn một cách thủ công
statox

-1 /usr/share/vim/vimXXlà thời gian chạy chứng khoán và không phải là nơi dành cho cấu hình / plugin trang web. Thay vào đó, cấu hình / plugin trang web nên được đặt ở bất kỳ $VIMđiểm nào trên hệ thống đó (xem :h vimfiles). Thông thường, đây là /usr/share/vimtrường hợp của Ubuntu và giữ các liên kết tượng trưng /etc/vim. Nói chung, /usr/local/là vị trí thực tế cho cấu hình trang web bên ngoài trình quản lý gói . Lưu ý rằng Neovim sử dụng $XDG_(CONFIG|DATA)_DIRSvà các sitethư mục, cung cấp các giá trị mặc định bên ngoài tốt hơn cho các cấu hình trang web.
ZeroKnight 30/11/18

1

Vire tận dụng định dạng gói mới nhất để cài đặt plugin và hỗ trợ Vim và Neovim. Bạn không cần phải biết mọi thứ đi đâu. Chỉ cần cung cấp một vimrc và Vire sẽ chăm sóc phần còn lại.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.