Bagaimana cara saya menginstal plugin di Vim / vi?


96

Bagaimana cara saya menginstal plugin di Vim?

Apakah itu penting:

  • Apakah saya menggunakan vi atau Vim?
  • Apakah saya menggunakan gVim?
  • Vim versi apa yang saya gunakan?
  • Apa OS saya?

Jawaban:


65

Untuk menginstal plugin, kita perlu tahu apa bentuknya. Ini bisa berupa:

Satu .vimfile seharusnya ditempatkan di .vim/plugindirektori.

File Vimball dapat diinstal dengan membukanya di Vim dan menjalankannya :source %.

Satu set file dalam tata letak direktori standar dapat diinstal baik dengan menyalinnya ke .vim, atau menggunakan manajer paket plugin .

Plugin mungkin tergantung pada fitur-fitur tertentu. Karena itu:

  • Mungkin penting jika Anda menggunakan Vi atau Vim,
  • Mungkin masalah jika Anda menggunakan gVim atau tidak (gVim biasanya memiliki lebih banyak fitur yang diaktifkan pada waktu kompilasi daripada Vim pada distribusi yang sama).
  • Mungkin penting versi Vim yang Anda gunakan, karena fitur mungkin telah ditambahkan setelah versi Vim Anda.
  • Mungkin penting OS yang Anda gunakan, terutama jika plugin memanggil perintah eksternal.

Namun, untuk sebagian besar plugin, itu mungkin tidak masalah.


9
Itu pasti penting jika Anda menggunakan Vi - konsep plugin tidak ada untuk Vi. Tentu saja, mengetik vipada kotak modern mungkin hanya akan diluncurkan vimdengan beberapa fitur dimatikan. Saya ragu banyak orang memiliki akses ke Vi aktual hari ini.
tommcdo

37

vim-plug

Saya suka menggunakan pengelola plugin vim-plug .

Masalah dengan menginstal plugin secara manual adalah agak sulit untuk menghapus plugin; Anda sering memiliki beberapa file berbeda di direktori yang berbeda, Anda harus menemukannya secara manual & menghapusnya.

Memperbaiki masalah juga sama sulitnya: Bagaimana jika autoload/old-name.vimdiganti namanya menjadi autoload/new-name.vim? Anda sekarang memiliki kedua versi lama dan baru dari plugin.

vim-plugmenyelesaikan ini dengan menyimpan setiap plugin di direktori itu sendiri; itu juga termasuk perintah untuk dengan mudah menginstal / menghapus plugin, jadi Anda tidak perlu muck dengan plugin unzipping dan sejenisnya.

Keuntungan utama vim-plug daripada Pathogen adalah vim-plug memungkinkan Anda untuk menginstal dan menghapus plugins dengan lebih mudah. Yang dilakukan Patogen adalah mengijinkan setiap plugin berada di direktori yang terkandung terpisah.

vim-plug bergantung pada git ; untuk MS Windows, Anda menginginkan msysgit .

Anda dapat mendefinisikan plugin di vimrc Anda seperti:

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()

Kemudian mulai ulang Vim, lalu instal plugin dengan:

:PlugInstall

Ini akan menempatkan plugin di ~/.vim/pluggedatau $HOME\vimfiles\pluggeduntuk MS Windows.

Anda dapat menambahkan potongan ini dari FAQ ke file vimrc Anda sebelum plug#begin()panggilan:

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

Perhatikan bahwa Anda perlu curlini berfungsi. Ini hampir selalu tersedia di Linux dan OSX, tetapi tidak pada MS Windows; jadi trik ini tidak akan berfungsi di sana ...

Untuk menghapus plugin, hapus dari file vimrc dan jalankan:

:PlugClean

Perhatikan bahwa vim-plug tidak mendukung pemasangan skrip dari situs skrip Vim, tetapi skrip-skrip tersebut dicerminkan pada GitHub , jadi tidak perlu melakukannya.

Ada juga beberapa keuntungan tambahan untuk ini seperti pembaruan plugin yang lebih mudah, dan pemuatan sesuai permintaan untuk kinerja yang lebih baik. Anda juga dapat dengan mudah menyalin vimrc ke komputer lain, menjalankan :PlugInstall, dan memiliki semua plugin Anda.

Perhatikan ada lebih banyak pengelola plugin; Saya kebetulan menggunakan vim-plug. Lihat juga: Apa perbedaan antara manajer paket vim?


1
salah satu keunggulan terpenting yang dimiliki vim-plug daripada yang lain adalah pemasangan paralel /
pembaruan

"Skrip-skrip itu dicerminkan pada GitHub, jadi tidak perlu melakukannya." Sayangnya scraper itu berhenti bekerja sejak lama. github.com/vim-scraper/vim-scraper/issues/…
Bluu

@Bluu Ya, saya menghubungi pengelola tahun lalu; ada beberapa bit teknis yang perlu diperbarui, dan tidak ada yang benar-benar melangkah untuk melakukan pembaruan mengatakan: - / Ini masih agak berguna, karena banyak skrip tidak diperbarui sering (terutama yang tidak ada di GitHub).
Martin Tournoij

25

Patogen

Pathogen adalah manajer path runtime, yang memuat plugin dalam Vim. Itu membuat instalasi plugin sederhana; Begini cara kerjanya:

Catatan: Jika Anda menggunakan Windows, ganti ~/.vimdengan $HOME\vimfiles.

  1. Salin pathogen.vimke ~/.vim/autoload/pathogen.vim.

  2. Buat ~/.vim/bundledirektori, jika belum ada.

  3. Tambahkan baris berikut ke awal Anda .vimrc:

    execute pathogen#infect()
    
  4. Kamu sudah selesai! Saat Anda ingin menambahkan plugin, cukup salin seluruh direktori plugin ~/.vim/bundle, atau git cloneada di sana. Sebagai contoh:

    cd ~/.vim/bundle
    git clone https://github.com/tpope/vim-surround
    
  5. * Peringatan: Jika plugin Anda datang dalam bentuk .vimfile, itu tidak akan berfungsi dengan Pathogen. Salin ke ~/.vim/plugingantinya (Anda mungkin harus membuat direktori ini jika tidak ada).


5
Catatan: pathogen bukan pengelola plugin.
romainl

atau git submodule add(bukan git clone) jika konfigurasi vim Anda sudah menjadi bagian dari proyek git Anda sendiri.
Martin York

@romainl lalu apa?
RodrikTheReader

3
Ini adalah manajer runtimepath. Seperti di dalamnya mengelola runtimepathopsi dan itu saja. Itu tidak berurusan dengan memperbarui, menambah, mengambil, menghapus plugin sama sekali.
romainl

1
Juga lihat @romainl Gist yang sangat baik tentang penggunaan Pathogen .
icc97

23

Vim 8+ / Neovim

Versi 8 memperkenalkan mekanisme paket baru yang sebagian besar menggantikan kebutuhan manajer plugin yang ada (pathogen, vim-plug, vundle, dll.) Pada saat penulisan (2017).

Dari dokumentasi :

Paket Vim adalah direktori yang berisi satu atau lebih plugin

Direktori paket berisi dua sub-direktori:

  • start/ - berisi plugin yang akan dimuat secara otomatis
  • opt/ - berisi plugin yang dimuat sesuai permintaan dengan :packadd

Ini mungkin terlihat agak rumit, tetapi dalam praktik yang harus Anda lakukan adalah menambahkan plugin Anda di sini :

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

Di Windows : gunakan ~\vimfiles\pack\sebagai ganti~/.vim/pack/

Secara konvensional, kami telah menggunakan nama paket "bundle" sebagai direktori yang akan berisi semua plugin kami. Anda dapat menggunakan nama apa pun yang Anda inginkan, dan Anda bahkan dapat meletakkan plugin Anda di direktori paket terpisah jika Anda benar-benar menginginkannya.

Contoh: Menginstal sensible.vim

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

Di Windows : gunakan ~\vimfiles\pack\sebagai ganti~/.vim/pack/

Lain kali Anda memulai Vim, plugin akan memuat secara otomatis.


3
Jika ada yang di .vimbawah kontrol versi, mungkin lebih baik menginstal plugin dengan submodules git; lihat shapeshed.com/vim-packages/#adding-a-package .
Arch Stanton

Jika ada jawaban berdasarkan waktu, ini akan menjadi jawaban yang diterima saat ini hingga hari ini.
Amin NAIRI

12

Jangan sampai kita melupakan Vundle yang hebat & perkasa !

Vundle adalah pengelola plugin lengkap, dengan fungsi untuk:

  • Mencari plugin (menggunakan :PluginSearch)
  • Menginstal plugin (menggunakan :PluginInstall)
  • Memperbarui plugin (menggunakan :PluginUpdate)
  • Mengelola jalur muat plugin di .vimrc (cukup beri komentar entri plugin yang tidak ingin Anda muat)
  • Menghapus plugin yang tidak lagi Anda inginkan (menggunakan :PluginClean)

Seperti yang Anda lihat, ini sangat mirip dengan manajer vim-plug yang disebutkan oleh Carpetsmoker. Saya tidak tahu yang mana yang lebih dulu, tetapi API mereka terlihat sangat mirip dengan saya, seperti halnya proses setup .


Yang menyenangkan tentang Vundle mirip dengan vim-plug Anda dapat menyimpan semua plugin Anda .vimrc, jadi ketika menginstal pada server baru yang Anda butuhkan hanyalah instalasi Vundle + Anda .vimrcuntuk menginstal semuanya. Plus Anda dapat mengomentari plugin Anda dan 'membersihkannya', tetapi dapat berkomentar kembali dalam beberapa bulan atau tahun kemudian ketika Anda sudah lama lupa nama mereka.
icc97

Ditambah lagi, saya suka Vundle karena relatif ramah pemula. Ini memberi cukup banyak hanya satu cara melakukan sesuatu dan bekerja dengan cara yang mirip dengan Teks Sublime.
icc97

1

Kemungkinan besar, plugin Anda akan menjadi file .vim tunggal.

Jika ini masalahnya, saya mencari bantuan dan bereksperimen dan menemukan yang berikut. Dari dalam vim (mode perintah), ketik:

:set runtimepath

Ini akan menunjukkan kepada Anda serangkaian direktori. Beberapa direktori ini akan memiliki pluginsubdirektori. Menempatkan file .vim di salah satu pluginsubdirektori ini akan membuatnya dimuat secara otomatis saat Anda memulai vim dari mana saja.

Bagi saya, di Ubuntu linux, saya menemukan itu /usr/share/vim/vim74/pluginberfungsi dengan baik, untuk menginstal untuk semua pengguna. Anda mungkin perlu izin root untuk menyalin file ke sini (awali cpatau mvperintah Anda dengan sudo).


3
IMHO ini bukan praktik terbaik. Perhatikan bahwa yang Anda miliki vim74, artinya versi spesifik, jadi memutakhirkan ke Vim 8.0, akan kehilangan plugin itu. Cara yang lebih baik untuk meningkatkan versi akan digunakan /etc/vim/untuk itu (buat jika tidak ada, dan tambahkan jalur itu ke runtimepathjika tidak tersedia di /etc/vimrc)
grodzik

3
Untuk menambah komentar @grodzik: Most likely, your plugin will be a single .vim fileSaya tidak setuju. Sebagian besar plugin dilengkapi dengan .txtfile yang berisi dokumen dan Anda perlu membuat tag untuk mendapatkan dokumen fungsional. Juga banyak plugin dilengkapi dengan autoloaddirektori. Saya pikir menggunakan manajer plugin adalah solusi yang lebih baik daripada mengelola runtimepath Anda secara manual
statox

-1 /usr/share/vim/vimXXadalah runtime stok dan bukan tempat untuk konfigurasi / plugin situs. Sebagai gantinya, konfigurasi situs / plugin harus ditempatkan di mana pun $VIMtitik pada sistem itu (lihat :h vimfiles). Biasanya, inilah /usr/share/vim, yang merupakan kasus untuk Ubuntu dan menyimpan symlink /etc/vim. Secara umum, /usr/local/adalah tempat de-facto untuk konfigurasi situs di luar manajer paket . Perhatikan bahwa Neovim menggunakan $XDG_(CONFIG|DATA)_DIRSdan sitedirektori, memberikan standar out-of-the-box yang lebih baik untuk konfigurasi situs.
ZeroKnight

1

Vire memanfaatkan format paket terbaru untuk menginstal plugin dan mendukung Vim dan Neovim. Anda tidak perlu tahu ke mana harus pergi. Cukup berikan vimrc dan Vire akan mengurus sisanya.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.