Mi config Vim incluye plugins que tratan de manejar proyecto actual, etiquetas de generación, etc . Esto es bastante útil para mi programación diaria en Vim, pero es molesto cuando uso Vim para algunas ediciones rápidas, como:
- editar un mensaje de confirmación git;
- edito un comando de shell cuando Ctrl+xCtrl+eescribo zsh o bash;
- etc.
Tampoco me gusta --noplugins
, ya que todavía quiero aprovechar algunos complementos en modo de edición rápida, como surround, movimiento fácil y muchos otros.
Por lo tanto, quiero tener un "modo de luz" (o "modo rápido"), en el que se omitirán algunos de los complementos, pero no todos.
Mi primera idea fue tener un argumento especial de línea de comandos, que analizaría en vimscript, pero buscar rápidamente en Google muestra que actualmente es imposible en vimscript (por cierto, muy triste).
Mi segunda idea es establecer alguna variable de entorno al ejecutar vim, como esta:
$ VIM_LIGHT_MODE=1 vim
Esto funciona en git:
$ git config --global core.editor 'VIM_LIGHT_MODE=1 vim'
Pero si lo hago EDITOR='VIM_LIGHT_MODE=1 vim'
, y escribo Ctrl+xCtrl+een el shell, no funciona:
edit-command-line:13: command not found: VIM_LIGHT_MODE=1
Entonces probé esto: EDITOR="bash -c 'VIM_LIGHT_MODE=1 vim'"
pero también falla:
vim': -c: line 1: syntax error: unexpected end of file
(Para ser sincero, este parece particularmente extraño, parece que no entiendo cómo $EDITOR
se usa exactamente , y me alegrará si alguien explica lo que está sucediendo aquí)
Todos los otros experimentos fallaron también.
El único truco que se me ocurre es configurar algunos servername
, como:
$ vim --servername VIM_LIGHTWEIGHT_MODE
Y luego verifique v:servername
vimscript, pero este es un truco total : no es para eso para lo que sirve el nombre del servidor.
Entonces, ¿hay una forma más limpia de lograr lo que quiero?
vim
como vim -u .vimrc-light
.
env
nada, mi shell-fu todavía es demasiado débil. Considere escribirlo como respuesta, para que pueda aceptarlo.
env
:EDITOR='env VIM_LIGHT_MODE=1 vim'
.