GNU/Linux >> Tutoriales Linux >  >> Linux

¿Es posible crear y usar menús en Vim (basado en terminal)?

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:

Relacionado:¿Encontrar la segunda ocurrencia de cadena desde el final del archivo?

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>

Linux
  1. Cómo crear y usar subdominios

  2. Cómo crear un alias y usar el comando Alias ​​en Linux

  3. Cómo instalar y usar el administrador de complementos Vim-plug en Linux

  4. Cómo usar una Mac para crear una memoria USB Linux Live y arrancarla

  5. ¿Es posible crear un script para guardar y restaurar permisos?

Cómo usar y aprovechar al máximo el comando fuser en Linux

Cómo usar marcadores y realizar una selección de texto en Vim

Cómo crear una imagen de máquina de Amazon (AMI) y usarla en AWS

Cómo crear y usar un archivo de intercambio en Linux

Esquemas de color en Vim:cómo cambiarlos y usarlos

Bash Scripting Part6 - Crear y usar funciones de Bash