Bir eklentiyi Vim / vi'ye nasıl yüklerim?


96

Vim'de bir eklentiyi nasıl kurarım?

Önemli mi:

  • Vi veya Vim kullanmalı mıyım?
  • GVim kullanıp kullanmayacağım?
  • Hangi Vim sürümünü kullanıyorum?
  • İşletim sistemim nedir?

Yanıtlar:


65

Bir eklenti yüklemek için hangi formda geldiğini bilmemiz gerekir.

Tek bir .vimdosyanın .vim/plugindizine yerleştirilmesi gerekiyordu .

Bir Vimball dosyası Vim'de açılarak ve çalıştırılarak yüklenebilir:source % .

Standart dizin düzenindeki bir dizi dosya kopyalanarak .vimveya bir eklenti paketi yöneticisi kullanılarak yüklenebilir .

Eklentiler bazı özelliklere bağlı olabilir. Bu nedenle:

  • Vi veya Vim kullanıyor olmanızın bir önemi olabilir,
  • GVim kullanıyor olmanız veya kullanmamanız önemli olabilir (gVim, derleme sırasında genellikle aynı dağıtımdaki Vim'den daha fazla özelliğe sahiptir).
  • Vim sürümünden sonra bir özellik eklenmiş olabileceğinden, hangi Vim sürümünde bulunduğunuz önemli olabilir.
  • Özellikle eklenti harici komutlarda çağırıyorsa, hangi işletim sistemi üzerinde çalıştığınızın önemi olabilir.

Çoğu eklenti için olsa da, önemli olmayabilir.


9
Vi kullanıyorsanız kesinlikle önemlidir - Eklenti kavramı Vi için mevcut değildir. Elbette vi, herhangi bir modern kutuya yazmak muhtemelen vimbazı özellikler kapalıyken başlayacaktır . Bugünlerde birçok insanın gerçek Vi'ye erişimi olduğundan şüpheliyim .
tommcdo

37

vim-fiş

Vim-plug eklenti yöneticisini kullanmayı seviyorum .

Bir eklentiyi el ile kurmanın sorunu, bir eklentiyi kaldırmanın oldukça zor olmasıdır ; farklı dizinlerde sık sık birkaç farklı dosyanız var, bunları manuel olarak bulmanız ve kaldırmanız gerekiyor.

Yükseltme sorunları da benzer şekilde zordur: Ya autoload/old-name.vimyeniden adlandırılırsa autoload/new-name.vim? Artık bir eklentinin hem eski hem de yeni bir sürümüne sahipsiniz .

vim-plugher eklentiyi kendi dizininde saklayarak bunu çözer; Ayrıca bir eklentiyi kolayca yüklemek / kaldırmak için komutlar içerir, böylece eklentileri ve benzerlerini açmakla uğraşmanıza gerek kalmaz.

Patojen üzerindeki vim-plug'ın en önemli avantajı vim- plug'ın eklentileri daha kolay kurmanıza ve çıkarmanıza izin vermesidir. Pathogen'in yaptığı tek şey, her eklentinin ayrı bir dizinde bulunmasına izin vermek.

vim-fiş dayanır Git ; MS Windows için msysgit istiyorum .

Vimrc'nizdeki eklentileri şöyle tanımlayabilirsiniz:

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

Sonra Vim'i yeniden başlatın ve ardından eklentileri şu şekilde yükleyin:

:PlugInstall

Bu eklentileri MS Windows içine ~/.vim/pluggedya da içine koyacaktır $HOME\vimfiles\plugged.

Bu snippet'i SSS'den plug#begin()aramadan önce vimrc dosyanıza ekleyebilirsiniz :

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

curlBunun çalışması için ihtiyacınız olduğunu unutmayın . Bu, Linux ve OSX'te neredeyse her zaman kullanılabilir, ancak MS Windows'ta yoktur; Yani bu numara orada işe yaramazsa ...

Bir eklentiyi kaldırmak için, onu vimrc dosyasından kaldırın ve çalıştırın:

:PlugClean

Vim-plug'ın Vim script web sitesinden script yüklemesini desteklemediğini, ancak bu scriptlerin GitHub'a yansıtıldığını , dolayısıyla yapmanız gerekmediğini unutmayın.

Eklentinin daha kolay güncellenmesi ve daha iyi performans için talep üzerine yükleme gibi bazı ek avantajlar da vardır. Ayrıca vimrc'nizi başka bir bilgisayara kolayca kopyalayabilir, çalıştırabilir :PlugInstallve tüm eklentilerinizi kullanabilirsiniz.

Not daha fazla eklenti yöneticileri vardır; Kullanıyorum vim-plug. Ayrıca bakınız: Paket paket yöneticileri arasındaki fark nedir?


1
En önemli avantajı vim-fişin biri eklentileri diğerlerine bitti paralel yükleme / updation vardır
r3bo0t

“bu komutlar GitHub'da yansıtılıyor, bu yüzden buna gerek yok.” Ne yazık ki kazıyıcı uzun zaman önce çalışmayı bıraktı. github.com/vim-scraper/vim-scraper/issues/…
Bluu

@Bluu Evet, geçen yılın o koruyucusuyla bağlantı kurdum; güncelleştirilmesi gereken bazı teknik bitler var ve hiç kimse gerçekten güncelleme dedi: - / Çok sayıda komut dosyası bu kadar sık ​​güncellenmediği için (özellikle GitHub'da olmayanlar), yine de biraz faydalı.
Martin Tournoij

25

patojen

Patojen, Vim içinde eklentileri yükleyen bir çalışma zamanı yolu yöneticisidir. Eklenti kurulumunu kolaylaştırır; İşte nasıl çalışıyor:

not: Windows kullanıyorsanız, yerine ~/.vimile $HOME\vimfiles.

  1. Kopya pathogen.vimiçin ~/.vim/autoload/pathogen.vim.

  2. ~/.vim/bundleHenüz mevcut değilse , dizini oluşturun .

  3. Aşağıdaki satırı, bilgisayarınızın başına ekleyin .vimrc:

    execute pathogen#infect()
    
  4. Sen bittin! Eğer bir eklenti eklemek istediğinizde, basitçe tüm eklentinin dizin kopyalamak ~/.vim/bundleveya git cloneorada. Örneğin:

    cd ~/.vim/bundle
    git clone https://github.com/tpope/vim-surround
    
  5. * Uyarı: Eklentiniz bir .vimdosya biçiminde gelirse, Pathogen ile çalışmaz. Bunun ~/.vim/pluginyerine kopyalayın (yoksa, bu dizini oluşturmanız gerekebilir).


5
Not: patojen bir eklenti yöneticisi değildir .
romainl

veya git submodule add(yerine git clone) vim yapılandırmanız zaten kendi git projenizin bir parçasıysa.
Martin York

@romainl o zaman nedir?
RodrikTheReader

3
Bu bir runtimepath yöneticisi. İçinde olduğu gibi runtimepathseçeneği yönetir ve hepsi bu. Eklentileri güncelleme, ekleme, alma, kaldırma ile ilgili değildir.
romainl

1
Ayrıca bkz: @romainl 'in Pathogen kullanma konusundaki mükemmel özeti .
icc97

23

Vim 8+ / Neovim

Versiyon 8 , yazma anında (2017) mevcut eklenti yöneticilerine (patojen, vim-plug, vundle, vs.) olan ihtiyacı büyük ölçüde değiştiren yeni bir paket mekanizması sunar .

Gönderen belgeler :

Vim paketi , bir veya daha fazla eklenti içeren bir dizindir

Bir paket dizini iki alt dizin içerir:

  • start/ - otomatik olarak yüklenecek eklentileri içerir
  • opt/ - isteğe bağlı olarak yüklenen eklentileri içerir :packadd

Biraz karmaşık görünebilir, ancak pratikte yapmanız gereken tek şey eklentinizi buraya eklemek :

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

Windows'ta : ~\vimfiles\pack\yerine kullanın~/.vim/pack/

Kurallara göre, "paket" paket adını tüm eklentilerimizi içerecek dizin olarak kullandık. İstediğiniz herhangi bir adı kullanabilir ve gerçekten isterseniz eklentileri ayrı paket dizinlerine bile yerleştirebilirsiniz.

Örnek: sensible.vim'in kurulumu

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

Windows'ta : ~\vimfiles\pack\yerine kullanın~/.vim/pack/

Vim'i bir sonraki başlatışınızda, eklenti otomatik olarak yüklenecek.


3
Biri .vimsürüm kontrolü altındaysa, git'in alt modülleriyle eklentileri kurmak daha iyi olabilir; shapeshed.com/vim-packages/#adding-a-package adresini ziyaret edin .
Arch Stanton

Zamana dayalı bir cevap olsaydı, bugün itibariyle kabul edilmiş olan cevap bu olurdu.
Amin NAIRI

12

Büyük ve güçlü Vundle'ı unutmayalım !

Vundle, aşağıdaki özelliklere sahip eksiksiz bir eklenti yöneticisidir:

  • Eklentileri aramak (kullanarak :PluginSearch)
  • Eklentileri yükleme (kullanarak :PluginInstall)
  • Eklentileri güncelleme (kullanarak :PluginUpdate)
  • Eklenti yükleme yolunu .vimrc'de yönetmek (sadece yüklemek istemediğiniz eklenti girişlerini yorumlayın)
  • Artık istemediğiniz eklentileri kaldırma (kullanma :PluginClean)

Gördüğünüz gibi Carpetsmoker tarafından belirtilen vim-plug yöneticisi gibi. Hangisinin önce geldiğini bilmiyorum, ancak API'leri kurulum sürecinde olduğu gibi bana çok benziyor .


Vundle hakkındaki güzel şey, tüm eklentilerinizi depolayabileceğiniz vim-plug'a benzer .vimrc, böylece yeni bir sunucuya yüklerken ihtiyacınız olan tek şey Vundle yüklemesi + .vimrcher şeyi yüklemek. Ayrıca, eklentilerinizi yorumlayabilir ve 'temizleyebilirsiniz', ancak isimlerini uzun zaman önce unuttuğunuz aylar veya yıllar sonra geri yorumlayabilirsiniz.
icc97

Artı Vundle'ı seviyorum çünkü nispeten yeni başlayanlar için uygun. Bir şeyleri yapmanın sadece bir yolunu verir ve Sublime Text'e benzer şekilde çalışır.
icc97

1

Büyük olasılıkla, eklentiniz tek bir .vim dosyası olacaktır.

Bu durumda yardımı aradım ve aşağıdakileri denedim ve anladım. Vim içinden (komut modu) şunu yazın:

:set runtimepath

Bu size bir dizi dizini gösterecektir. Bu dizinlerin bazıları bir pluginalt dizine sahip olacaktır . Herhangi bir .vim dosyasını bu pluginalt dizinlerden birine koymak, herhangi bir yerden vim başlattığınızda otomatik olarak yüklenmesini sağlar.

Benim için, Ubuntu Linux'ta, /usr/share/vim/vim74/plugintüm kullanıcılar için kurulum yapmak için iyi çalıştığını gördüm . Bir dosyayı buraya kopyalamak için kök iznine ihtiyacınız olabilir (sizin cpveya mvkomutunuzun önekini kullanın sudo).


3
IMHO bu en iyi uygulama değil. Eğer sahip olduğunu unutmayın vim74o eklenti gevşek, bu yüzden Vim 8.0 yükseltme, bu sürüme özgü olduğu anlamına gelir. Daha yükseltme geçirmez yolu kullanmak olacaktır /etc/vim/bunun için (mevcut değilse oluşturun ve bu yolu eklemek runtimepathde eğer mevcut değildir /etc/vimrc)
grodzik

3
@Grodzik Yoruma eklemek için: Most likely, your plugin will be a single .vim filekatılmıyorum. Eklentilerin büyük bir çoğunluğu .txtdokümanı içeren bir dosyayla birlikte gelir ve işlevsel bir doküman almak için etiketleri oluşturmanız gerekir. Ayrıca bir sürü eklenti ile birlikte bir autoloaddizin geliyor . Ben bir eklenti yöneticisi kullanarak manuel runtimepath yönetmek daha iyi bir çözüm olduğunu düşünüyorum
statox

-1 /usr/share/vim/vimXX, stok çalışma zamanı ve site yapılandırması / eklentileri için uygun bir yer değil. Bunun yerine, site yapılandırmaları / eklentileri $VIMbu sistemdeki noktalara (bkz. :h vimfiles) Yerleştirilmelidir . Genellikle, bu /usr/share/vimUbuntu için geçerlidir ve sembolik bağları tutar /etc/vim. Genel olarak, paket yöneticisi dışındaki/usr/local/ site yapılandırması için fiili bir yer vardır . Neovim'nin site yapılandırmaları için kullanıma hazır varsayılanlar sağladığını ve dizinleri kullandığını unutmayın . $XDG_(CONFIG|DATA)_DIRSsite
ZeroKnight

1

Vire eklentileri kurmak için en son paket formatını kullanıyor ve Vim ve Neovim'i destekliyor. Bir şey nereye gittiğini bilmek gerekmez. Sadece bir vimrc sağlayın ve Vire gerisini halleder.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.