¿Hay alguna forma de ver las teclas asignadas actualmente en Vim?

183

Básicamente, me gustaría ver todos los mapas de teclas realizados en el búfer actual por todos los complementos, vimrc, etc., en el búfer actual. ¿Hay alguna forma de hacer esto?

Paul Wicks
fuente

Respuestas:

238

Puedes hacer eso con el :mapcomando. También hay otras variantes.

  • :nmap para asignaciones de modo normal
  • :vmap para mapeos de modo visual
  • :imap para asignaciones de modo de inserción

La lista anterior no está completa. Escribir :help mapen Vim te dará más información.

mat-
fuente
10
Solo para aclarar, creo :map, como la pregunta original pregunta, solo muestra las asignaciones hechas por complementos, vimrc, etc. Si desea ver las asociaciones de teclas predeterminadas en vim, use:index
Von
28
@Von, tal vez te refieres :help index.
Lqueryvg
2
estos solo le dan las asignaciones definidas por el usuario, no los enlaces integrados (predeterminados)
Tyler Durden
1
¿Es posible escribirlos en un archivo para revisarlos más tarde?
Anton Daneyko
@AntonDaneyko Puede usar github.com/AndrewRadev/bufferize.vim para ese propósito.
Radlan
86
:redir! > vim_keys.txt
:silent verbose map
:redir END

Esto genera los accesos directos, con dónde se definieron, a un archivo de texto.

Ivan
fuente
1
Creo que querías usar el :redircomando, no el :remapcomando.
Aaron Hays
1
¡¡¡Gracias, gracias, gracias!!! Finalmente descubrí que MacVim estaba reasignando mi comando <A-Up>. Se solucionó agregando let macvim_skip_cmd_opt_movement = 1
RichS el
54

Además de las respuestas sobre :mapsin argumentos: no se pierda su forma detallada ( :verbose map) que muestra dónde se definió la (s) asignación (es) (ver :help map-verbose).

Ves
fuente
13

En pocas palabras, simplemente ejecute las :map variantes sin argumentos.

:map
:imap
:vmap
Michael Berkowski
fuente
13

:mapy sus amigos son la clave, :verboseagrega información y:redir permite el refinamiento posterior a la búsqueda.

Son una combinación perfecta para mostrar qué comando está vinculado a qué atajo y viceversa, pero si desea buscar algunas teclas y evitar archivos temporales siempre que necesite buscar asignaciones, eche un vistazo a scriptease y :Verbosecomando.

Es un contenedor :verbosepara mostrar el resultado en una ventana de vista previa.

de esta manera puede buscar lo que quiera dentro de los resultados sin usar archivos temporales

escriba :Verbose mapy use / ?como de costumbre.

albfan
fuente
4

Otra forma es guardar la sesión en un archivo y luego editar este archivo, ya que contiene todas las asignaciones y configuraciones.

:mks[ession] [file] - Escriba un script Vim que restaure la sesión de edición actual.

Fernando Rodriguez
fuente