Vim-Venu

Vim-Venu

Estoy configurando cajas Linux virtualizadas (como servidores de desarrollo local) para desarrolladores en una empresa que se basa principalmente en Windows, y algunos de los desarrolladores hacen comentarios negativos sobre vim (entre otras cosas). (Les parece que representa a Linux/Unix de alguna manera y demuestra que el entorno es obtusamente difícil de usar). Recuerdo cuando me obligaron a usar vim por primera vez (¡los administradores de sistemas se negaron a instalar emacs!) y la difícil inicial. curva de aprendizaje, así que soy algo comprensivo. Se me ocurrió que, en lugar de presentarles nano(lo que probablemente nunca pasarían), podría ser posible configurar menús tipo nano en vim para facilitar la transición. (Encontré un archivo .vimrc muy apto para principiantes para entregárselo, pero no tiene nada parecido a menús de estilo nano).

El único problema es lo único que he podido encontrar que afirma que es posible configurar menús en vim (no en gvim) que no funcionó, y mis intentos de corregir el problema me dejaron con otro problema más que resolver. Antes de perder mucho tiempo me gustaría saber si realmente es posible, ya que parece haber muy poca información sobre cómo hacerlo.

Respuesta1

Sí, es posible. Puede cargar menu.vim(las definiciones predeterminadas del menú de gvim), o simplemente puede comenzar desde cero y crear las suyas propias y luego acceder a ellas a través de :emenu. Sin embargo, esto no le brinda menús siempre visibles tipo nano; le brinda la posibilidad de navegar por los menús usando la función de completar pestañas en la línea de comandos.

Si el usuario no tiene un vimrc, querrás comenzar deshabilitando la compatibilidad con vi:

:set nocompatible

Habilite la finalización inteligente de la línea de comando en <Tab>(habilite enumerar todas las opciones posibles y navegar por los resultados con <Up>, <Down>, <Left>, <Right>y <Enter>):

:set wildmenu

Haga ciclos de pulsaciones repetidas entre todas las opciones coincidentes:

:set wildmode=full

Cargue los menús predeterminados (esto sucedería automáticamente en gvim, pero no en terminal vim):

:source $VIMRUNTIME/menu.vim

Después de esos cuatro comandos, puede activar manualmente la finalización del menú invocando la finalización de tabulación en el :emenucomando, haciendo:emenu<space><tab>

Puede navegar por los resultados usando la tecla de tabulación, las teclas de flecha y la tecla Intro (expande submenús y selecciona elementos). Luego puedes hacerlo más conveniente yendo un paso más allá y vinculando una asignación para que aparezca el menú emergente sin tener que escribir :emenucada vez:

Haga que Ctrl-Z en un mapeo actúe como presionar <Tab>interactivamente en la línea de comando:

:set wildcharm=<C-Z>

Y cree un enlace que invoque automáticamente :emenula finalización por usted:

:map <F4> :emenu <C-Z>

Respuesta2

Yo mismo tuve el problema de que no puedo recordar todos los comandos y combinaciones de teclas de los complementos que estoy usando. Además, quería tener formas sencillas de ejecutar comandos rápidamente sin tener que configurar nuevas asignaciones de teclas o inventar comandos para acceder a ellas.

Vim-Venu

He escrito un pequeñocomplemento de menú vimque le permite definir menús para cada tipo de archivo que pueda editar con vim. De esta manera, puede definir la opción de menú 'Compilar' para diferentes tipos de archivos e iniciar las instrucciones correctas para compilar el código dependiendo del archivo que esté editando (.py, .c, .c++, ...). O cree un submenú para los comandos del complemento 'Tabla' en un archivo de rebajas.

Compruébalo aquí: https://github.com/Timoses/vim-venu

Como nota al margen: creo que todo el mundo debería elegir su editor de texto favorito. Vim tiene una pequeña barrera (¡que vale la pena aprender!). Si alguien no está dispuesto a aprender, entonces vim no será de mucha utilidad para esa persona.

información relacionada