Minha configuração Vim inclui plugins que tentam lidar com projeto atual, etiquetas construção, etc . Isso é bastante útil para minha programação diária no Vim, mas é irritante quando eu uso o Vim para algumas edições rápidas, como:
- editar uma mensagem de confirmação do git;
- edite um comando shell quando digito Ctrl+xCtrl+ezsh ou bash;
- etc.
Também não gosto dos --noplugins
dois, pois ainda quero tirar proveito de alguns plug-ins no modo de edição rápida, como surround, easy-motion e muitos outros.
Então, eu quero ter algum "modo leve" (ou "modo rápido"), no qual alguns dos plugins serão ignorados, mas não todos.
Minha primeira ideia foi ter algum argumento especial da linha de comando, que eu analisaria no vimscript, mas uma pesquisa rápida mostra que atualmente é impossível no vimscript (a propósito, muito triste).
Minha segunda idéia é definir alguma variável de ambiente ao executar o vim, assim:
$ VIM_LIGHT_MODE=1 vim
Isso funciona no git:
$ git config --global core.editor 'VIM_LIGHT_MODE=1 vim'
Mas se eu fizer EDITOR='VIM_LIGHT_MODE=1 vim'
e digitar Ctrl+xCtrl+eo shell, ele não funcionará:
edit-command-line:13: command not found: VIM_LIGHT_MODE=1
Então eu tentei isso:, EDITOR="bash -c 'VIM_LIGHT_MODE=1 vim'"
mas também falha:
vim': -c: line 1: syntax error: unexpected end of file
(Para ser honesto, este parece particularmente estranho, parece que eu entendi mal como exatamente $EDITOR
é usado e ficarei feliz se alguém explicar o que está acontecendo aqui)
Todos os outros experimentos falharam também.
O único truque que consigo pensar é definir alguns servername
, como:
$ vim --servername VIM_LIGHTWEIGHT_MODE
E depois faça o check- v:servername
in do vimscript, mas este é um truque total : não é para isso que serve o servername.
Então, existe uma maneira mais limpa de alcançar o que eu quero?
vim
como vim -u .vimrc-light
.
env
tudo, meu shell-fu ainda está muito fraco. Considere escrever como resposta, para que eu possa aceitá-lo.
env
:EDITOR='env VIM_LIGHT_MODE=1 vim'
.