Sé que ejecutar :map
comandos sin argumentos debería darme una lista de asignaciones definidas por el usuario, pero, por ejemplo, cuando presiono Ctrl-W Ctrl-I ocurre algo, sin embargo, no tengo idea de qué función acaba de suceder como asignaciones incorporadas no aparece en los :map
comandos.
¿Cómo puedo saber qué hace una llave?
key-bindings
Wombat loco
fuente
fuente
:help CTRL-W_CTRL-I
o:help CTRL-W_i
Respuestas:
No puedes
Aquí está el código fuente C para lo que
<C-w><C-i>
hace:normal.c
:window.c
:No estoy completamente seguro de dónde
type
se recoge la variable, no tenía ganas de buscar eso, pero el punto es que no hay una facilidad real para decir "esta clave está asignada a esta funcionalidad". Básicamente, es solo unstruct
mapeochar
de una función, ¡y la implementación de la segunda pulsación de tecla (<C-i>
) es simplemente fealdad ad-hoc!Esto es diferente de Emacs, donde (supongo) que todo está en Lisp, y sus asignaciones personalizadas no son diferentes de las asignaciones predeterminadas de Emacs. Pero en Vim usted tiene mapeos "mágicos" proporcionados por el código C que mapean contra funciones C que nunca están expuestas en Vim. Siempre digo que Vim tiene la mejor idea, pero Emacs tiene la mejor implementación ;-)
Entonces, la única forma es buscarlo en los archivos de ayuda. Es por eso que cerré esto como un duplicado de Cómo navego a los temas en la documentación de Vim, ya que esa es la única respuesta práctica que alguien puede dar. De hecho, se podría argumentar que se podría dar una explicación más profunda de la pregunta (como acabo de hacer), y si hubiera argumentado que , en lugar de dar la respuesta (ahora eliminada), probablemente habría dicho "usted" de nuevo, perdón por el error "y lo volví a abrir ;-)
En cualquier caso, para ilustrar brevemente las convenciones con algunos ejemplos:
:help w
- mapeo en modo normal paraw
(mayúsculas y minúsculas);:help g8
- mapeo en modo normal parag8
;:help v_o
- mapeo de modo visual parao
; otros modos sonc
para línea de comandos yi
para inserción;:help CTRL-W
- mapeo en modo normal para<C-w>
;:help i_CTRL-W
- mapeo de modo de inserción para<C-w>
;:help CTRL-W_CTRL-I
- mapeo en modo normal para<C-w><C-i>
;:help i_CTRL-G_<Down>
- Insertar mapeo de modo para<C-g><Down>
.fuente
commandline completion
en vim help usando CTRL-D (lo llamo "buscar en ayuda"). Escriba:h CTRL-W
a continuación, pulse <Ctrl-D>, y obtendrá una lista de todos los comandos que contienen la cadena "CTRL-W", por ejemplo,CTRL-W, CTRL-W_^, CTRL-W-<Down>, ...
. Escriba:h g8<CTRL-D>
y verág8
y8g8
como temas de ayuda disponibles. Sin esto, debe escribir el tema de ayuda exactamente y encontrar la cadena exacta que funciona es difícil.Está en los archivos de ayuda de vim en
:help index
Si desea saber qué teclas no están asignadas de forma predeterminada, consulte
:help map-which-keys
Nota: lo anterior son enlaces clicables al último manual de referencia de vim
fuente
Creo que puede obtener las asignaciones a través de los siguientes comandos
¡Espero eso ayude!
fuente