Como instalo um plug-in no Vim / vi?

96

Como instalo um plug-in no Vim?

Isso importa:

  • Se eu uso o vi ou o Vim?
  • Se eu uso o gVim?
  • Qual versão do Vim estou usando?
  • Qual é o meu sistema operacional?
elyashiv
fonte

Respostas:

65

Para instalar um plug-in, precisamos saber de que forma ele entra. Pode ser:

Um único .vimarquivo deve ser colocado no .vim/plugindiretório

Um arquivo Vimball pode ser instalado abrindo-o no Vim e executando :source %.

Um conjunto de arquivos no layout de diretório padrão pode ser instalado copiando-os .vimou usando um gerenciador de pacotes de plug - ins .

Os plugins podem depender de certos recursos. Portanto:

  • Pode ser importante se você estiver usando o Vi ou o Vim,
  • Pode ser importante se você estiver usando o gVim ou não (o gVim normalmente possui mais recursos ativados no momento da compilação do que o Vim na mesma distribuição).
  • Pode ser a versão do Vim em que você está, pois um recurso pode ter sido adicionado após a sua versão do Vim.
  • Pode importar em qual SO você está, especialmente se o plug-in chamar comandos externos.

Para a maioria dos plugins, no entanto, isso pode não ser importante.

muru
fonte
9
Definitivamente, importa se você estiver usando o Vi - o conceito de plugins não existe para o Vi. Obviamente, digitar viem qualquer caixa moderna provavelmente será iniciado apenas vimcom alguns recursos desativados. Duvido que muitas pessoas tenham acesso ao Vi atual atualmente.
tommcdo
37

vim-plug

Eu gosto de usar o gerenciador de plugins vim-plug .

O problema com a instalação manual de um plug-in é que é bastante difícil remover um plug-in; você costuma ter vários arquivos diferentes em diretórios diferentes, precisa encontrá-los e removê-los manualmente.

A atualização de problemas também é difícil: e se autoload/old-name.vimfor renomeada autoload/new-name.vim? Agora você tem tanto uma versão antiga e nova de um plugin.

vim-plugresolve isso armazenando cada plug-in em seu próprio diretório; Ele também inclui o comando para instalar / remover facilmente um plug-in, para que você não precise se preocupar com o descompactamento de plug-ins e similares.

Uma vantagem importante do vim-plug sobre o Pathogen é que o vim-plug permite instalar e remover plugins com mais facilidade. Tudo o que o Pathogen faz é permitir que cada plug-in esteja em um diretório separado.

o vim-plug depende do git ; para MS Windows, você deseja msysgit .

Você pode definir plugins no seu vimrc da seguinte forma:

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

Em seguida, reinicie o Vim e instale plugins com:

:PlugInstall

Isso colocará os plugins no ~/.vim/pluggedou $HOME\vimfiles\pluggedpara o MS Windows.

Você pode adicionar este trecho da FAQ ao seu arquivo vimrc antes da plug#begin()chamada:

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

Observe que você precisa curlque isso funcione. Isso quase sempre está disponível no Linux e OSX, mas não no MS Windows; para que esse truque não funcione lá ...

Para remover um plug-in, remova-o do arquivo vimrc e execute:

:PlugClean

Observe que o vim-plug não suporta a instalação de scripts no site de scripts do Vim, mas esses scripts são espelhados no GitHub , portanto não há necessidade de fazê-lo.

Existem também algumas vantagens adicionais, como atualização mais fácil do plug-in e carregamento sob demanda para obter melhor desempenho. Você também pode copiar facilmente o seu vimrc para outro computador, executar :PlugInstalle ter todos os seus plugins.

Observe que existem mais gerenciadores de plugins; Eu uso vim-plug. Consulte também: Qual é a diferença entre os gerenciadores de pacotes vim?

Martin Tournoij
fonte
1
um dos mais importante vantagem vim-plug tem sobre os outros é paralela instalação / updation de plugins
r3bo0t
"esses scripts são espelhados no GitHub, então não há necessidade de fazê-lo." Infelizmente, o raspador parou de funcionar há muito tempo. github.com/vim-scraper/vim-scraper/issues/…
Bluu
@Bluu Sim, entrei em contato com o mantenedor do ano passado; existem alguns bits técnicos que precisam ser atualizados, e ninguém realmente está promovendo a atualização: - / Ainda é um pouco útil, pois muitos scripts não são atualizados com tanta frequência (especialmente aqueles que não estão no GitHub).
Martin Tournoij 14/03
25

Patógeno

O Pathogen é um gerenciador de caminhos em tempo de execução, que carrega plugins no Vim. Simplifica a instalação do plugin; aqui está como funciona:

Nota: Se você estiver usando o Windows, substitua ~/.vimpor $HOME\vimfiles.

  1. Copie pathogen.vimpara ~/.vim/autoload/pathogen.vim.

  2. Crie o ~/.vim/bundlediretório, se ele ainda não existir.

  3. Adicione a seguinte linha ao início do seu .vimrc:

    execute pathogen#infect()
    
  4. Você Terminou! Quando você deseja adicionar um plug-in, basta copiar o diretório inteiro do plug-in para ~/.vim/bundle, ou git clonepara lá. Por exemplo:

    cd ~/.vim/bundle
    git clone https://github.com/tpope/vim-surround
    
  5. * Advertência: Se o seu plugin vem na forma de um .vimarquivo, ele não funcionará com o Pathogen. Copie-o para ~/.vim/plugin(em vez disso, talvez seja necessário criar esse diretório, se ele não existir).

Maçaneta
fonte
5
Nota: pathogen não é um gerenciador de plugins.
Romainl
ou git submodule add(em vez de git clone) se sua configuração do vim já faz parte do seu próprio projeto git.
Martin York
@romainl o que é então?
RodrikTheReader
3
É um gerenciador de caminho de execução. Como ele gerencia a runtimepathopção e é tudo. Não trata de atualizar, adicionar, recuperar, remover plugins.
Romainl
1
Veja também a excelente lista do @romainl sobre o uso do Pathogen .
Icc97
23

Vim 8+ / Neovim

A versão 8 introduz um novo mecanismo de pacotes que substitui amplamente a necessidade de gerenciadores de plugins existentes (pathogen, vim-plug, vundle etc.) no momento da redação (2017).

A partir da documentação :

Um pacote Vim é um diretório que contém um ou mais plugins

Um diretório de pacotes contém dois subdiretórios:

  • start/ - contém plugins que serão carregados automaticamente
  • opt/ - contém plugins carregados sob demanda com :packadd

Pode parecer um pouco complicado, mas na prática tudo o que você precisa fazer é adicionar seu plugin aqui :

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

No Windows : use em ~\vimfiles\pack\vez de~/.vim/pack/

Por convenção, usamos o nome do pacote "bundle" como o diretório que conterá todos os nossos plugins. Você pode usar o nome que quiser e pode colocar seus plugins em diretórios de pacotes separados, se realmente quiser.

Exemplo: Instalando o sensible.vim

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

No Windows : use em ~\vimfiles\pack\vez de~/.vim/pack/

Da próxima vez que você iniciar o Vim, o plug-in será carregado automaticamente.

Michael Kropat
fonte
3
Se alguém .vimestiver sob controle de versão, talvez seja melhor instalar plug-ins com os submódulos do git; consulte shapeshed.com/vim-packages/#adding-a-package .
Arch Stanton
Se houvesse uma resposta com base no tempo, essa seria a resposta atualmente aceita até hoje.
Amin NAIRI
12

Não esqueçamos o grande e poderoso Vundle !

O Vundle é um gerenciador de plugins completo, com funcionalidade para:

  • Procurando plug-ins (usando :PluginSearch)
  • Instalando Plug-ins (Usando :PluginInstall)
  • Atualizando plug-ins (usando :PluginUpdate)
  • Gerenciando o caminho de carregamento do plug-in no .vimrc (basta comentar as entradas do plug-in que você não deseja carregar)
  • Removendo plug-ins que você não deseja mais (usando :PluginClean)

Como você pode ver, é muito parecido com o gerenciador vim-plug mencionado por Carpetsmoker. Não sei qual veio primeiro, mas as APIs são muito parecidas comigo, assim como o processo de instalação .

Cody Poll
fonte
O bom do Vundle é semelhante ao vim-plug, você pode armazenar todos os seus plugins no seu .vimrc, portanto, ao instalar em um novo servidor, tudo o que você precisa é de uma instalação do Vundle + sua .vimrcpara instalar tudo. Além disso, você pode comentar seus plugins e "limpá-los", mas poderá comentá-los meses ou anos depois, quando você esquecer seus nomes.
Icc97
Além disso, eu gosto do Vundle porque é relativamente amigável para iniciantes. Ele fornece apenas uma maneira de fazer as coisas e funciona de maneira semelhante ao Texto Sublime.
Icc97
1

Provavelmente, seu plugin será um único arquivo .vim.

Se for esse o caso, procurei a ajuda e experimentei e descobri o seguinte. No vim (modo de comando), digite:

:set runtimepath

Isso mostrará uma série de diretórios. Alguns desses diretórios terão um pluginsubdiretório. Se você colocar qualquer arquivo .vim em um desses pluginsubdiretórios, ele será carregado automaticamente quando você iniciar o vim de qualquer lugar.

Para mim, no Ubuntu linux, achei que /usr/share/vim/vim74/pluginfuncionava bem, instalar para todos os usuários. Você pode precisar de permissão root para copiar um arquivo aqui (prefixe seu cpou mvcomando com sudo).

Homem das Estrelas
fonte
3
IMHO esta não é a melhor prática. Observe que você possui vim74, o que significa que é específico da versão; portanto, a atualização para o Vim 8.0 perderá esse plug-in. Mais maneira upgrade-prova seria usar /etc/vim/para que (criá-lo se não estiver presente, e acrescentar que caminho para runtimepathse não estiver disponível no /etc/vimrc)
grodzik
3
Para adicionar ao comentário do @grodzik: Most likely, your plugin will be a single .vim fileEu discordo. A grande maioria dos plug-ins vem com um .txtarquivo que contém o documento e você precisa gerar as tags para obter um documento funcional. Muitos plugins também vêm com um autoloaddiretório. Eu acho que usando um gerenciador de plug-in é uma solução melhor do que gerir o seu runtimePath manualmente
statox
-1 /usr/share/vim/vimXXé o tempo de execução das ações e não é o local para configuração / plugins do site. Em vez disso, as configurações / plug-ins do site devem ser colocados em qualquer $VIMlugar do sistema (consulte :h vimfiles). Normalmente, esse é /usr/share/vimo caso do Ubuntu e mantém links simbólicos para /etc/vim. Em geral, /usr/local/é o local de fato para a configuração do site fora do gerenciador de pacotes . Observe que o Neovim usa $XDG_(CONFIG|DATA)_DIRSe sitediretórios, fornecendo melhores padrões prontos para uso nas configurações do site.
ZeroKnight 30/11/2018
1

O Vire utiliza o formato de pacote mais recente para instalar plug-ins e suporta o Vim e o Neovim. Você não precisa saber para onde vai tudo. Basta fornecer um vimrc e o Vire cuidará do resto.

genotrance
fonte