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 $EDITORse 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:servernamevimscript, 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?
fuente

env:EDITOR='env VIM_LIGHT_MODE=1 vim'.vimcomovim -u .vimrc-light.envnada, mi shell-fu todavía es demasiado débil. Considere escribirlo como respuesta, para que pueda aceptarlo.Respuestas:
Hay al menos dos posibilidades:
uso
env:usar
vimcon otro archivo de inicialización, por ejemplo.vimrc-light:fuente
Si bien la respuesta aceptada es ciertamente mejor, me gustaría discutir
EDITOR="bash -c 'VIM_LIGHT_MODE=1 vim'". El problema aquí es queEDITORse invoca con argumentos, y los argumentos pasados abash -cno se reenvían automáticamente avim. Necesitas usar"$@":Sin embargo, el primer argumento después del comando en
bash -ces$0, que no forma parte$@, por lo que debe usar un argumento de marcador de posición:Con estos inconvenientes, no es una buena opción, pero aún así es viable.
fuente
En realidad, su primera idea es posible, también de manera elegante. Puede crear un comando definido por el usuario y luego llamar a vim con la
+sintaxis.Simplemente defina un comando de usuario personalizado en su
.vimrcarchivo de la siguiente manera:Luego, desde la línea de comandos, puede iniciar vim de esta manera:
Usé esto en mi
.vimrcpara tomar notas fácilmente, así:Esto permite llamarlo con esto
vim +Note. Luego haga un alias de shell en surcarchivo de shells , para permitir llamadas aún más fáciles. En mi.bashrcarchivo alias los comandos vim anteriores como este:Solución de muestra
En su caso, podría escribir algo a lo largo de estas líneas en su
.vimrcarchivo:A continuación, pruebe el modo de luz de la forma que desee en función de cada complemento o grupos de complementos, etc., utilizando una
ifinstrucción vim similar a esta en su.vimrcarchivo:Cosas a tener en cuenta
!después del comando vimcommand!significa que este se sobreponen a los comandos definidos de manera similar con el mismo nombre. Esto es preferible.CustomUserCommandNameDEBE tener la primera letra en mayúsculag:que puede usars:o con cualquier alcance que se ajuste a sus necesidades.fuente