Pregunta:
Mi configuración de Vim incluye complementos que intentan manejar el proyecto actual, crear etiquetas, 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 de git;
- edito un comando de shell cuando escribo Ctrl + x Ctrl + e en zsh o bash;
- etc.
Tampoco me gustan los --noplugins
, ya que todavía quiero aprovechar algunos complementos en el modo de edición rápida, como envolvente, movimiento fácil y muchos otros.
Entonces, quiero tener algún "modo ligero" (o "modo rápido"), en el que se omitirán algunos de los complementos, pero no todos.
Mi primera idea fue tener algún argumento especial en la línea de comandos, que analizaría en vimscript, pero la búsqueda rápida 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, así:
$ VIM_LIGHT_MODE=1 vim
Esto funciona en git:
$ git config --global core.editor 'VIM_LIGHT_MODE=1 vim'
Pero si hago EDITOR='VIM_LIGHT_MODE=1 vim'
, y EDITOR='VIM_LIGHT_MODE=1 vim'
Ctrl + x Ctrl + e en el shell, no funciona:
edit-command-line:13: command not found: VIM_LIGHT_MODE=1
Luego 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 honesto, este se ve particularmente extraño, parece que no entiendo exactamente cómo se usa $EDITOR
, y me alegrará si alguien explica lo que está sucediendo aquí)
Todos los demás experimentos también fallaron.
El único truco que se me ocurre es establecer un nombre de servername
, como:
$ vim --servername VIM_LIGHTWEIGHT_MODE
Y luego verifique v:servername
en vimscript, pero esto es un truco total : esto no es para lo que es servername, en absoluto.
Entonces, ¿hay una forma más limpia de lograr lo que quiero?
Respuesta:
Hay al menos dos posibilidades:
-
use
env
:EDITOR='/usr/bin/env VIM_LIGHT_MODE=1 vim'
-
use
vim
con otro archivo de inicialización, digamos.vimrc-light
:EDITOR='/usr/bin/vim -u ~/.vimrc-light'