Estoy configurando cajas de Linux virtualizadas (como servidores de desarrollo locales) 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 dificultad inicial curva de aprendizaje, así que soy algo comprensivo. Se me ocurrió que, en lugar de presentarles nano
(que probablemente nunca superarían) podría ser posible configurar menús similares a nano en vim para facilitar la transición. (Encontré un archivo .vimrc muy fácil de usar para principiantes, pero no tiene menús de estilo nano).
El único problema es lo único que pude encontrar que afirma que es posible configurar menús en vim (no gvim) no funcionó, y mis intentos de corregir el problema me dejaron con otro problema por resolver. Antes de perder mucho tiempo, me gustaría saber si es posible, ya que parece haber muy poca información sobre cómo hacerlo.
Respuesta aceptada:
Sí, es posible. Puede cargar menu.vim
(las definiciones predeterminadas del menú gvim), o simplemente puede comenzar desde cero y crear las suyas propias, luego acceder a ellas a través de :emenu
. Sin embargo, esto no le brinda menús siempre visibles como nano; le brinda la capacidad de navegar por los menús usando la función de completar con tabulación en la línea de comandos.
Si el usuario no tiene un vimrc, querrá comenzar deshabilitando la compatibilidad con vi:
:set nocompatible
Habilite la finalización inteligente de la línea de comandos en <Tab>
(habilite la lista de todas las opciones posibles y navegue por los resultados con <Up>
, <Down>
, <Left>
, <Right>
y <Enter>
):
:set wildmenu
Haga que las pulsaciones repetidas se desplacen entre todas las opciones coincidentes:
:set wildmode=full
Cargue los menús predeterminados (esto ocurriría automáticamente en gvim, pero no en la 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 la pestaña en el :emenu
comando, haciendo :emenu<space><tab>
Puede navegar por los resultados usando la tecla de tabulación y las teclas de flecha, y la tecla Intro (expande los submenús y selecciona elementos). Luego puede hacer que sea más conveniente yendo un paso más allá y vinculando una asignación para que aparezca el menú sin tener que escribir :emenu
cada 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 haga un enlace que invoque automáticamente :emenu
completado para usted:
:map <F4> :emenu <C-Z>