tutorial pegar linea insertar editar descargar copiar commands comandos vim key-bindings

pegar - Detecta si una llave está ligada a algo en vim



vim linux (6)

No es una respuesta completa, pero es posible que desee verificar :help map-which-keys para obtener una lista de claves que vim le recomienda usar en sus mapas personalizados.

Esa sección de ayuda tiene una recomendación sobre cómo saber si una clave específica está asignada a una acción.

Me gustaría saber si hay una forma de averiguar si una clave hace algo en vim. Sé que puedo usar :map para ver las asignaciones definidas por el usuario, pero ¿hay algo para las cosas integradas?

Por ejemplo, siempre tuve CTRL - W para cerrar la pestaña, porque pensé que no se usaba. Después de medio año, descubrí que hay algunas secuencias que lo usan, como CTRL - W CTRL - S para dividir la ventana, y era una pesadilla volver a entrenarme.


Para verificar la asignación predeterminada:

:help index

Para otras asignaciones que realizan usuarios o complementos:

:map :map!

Desde http://vim.wikia.com/wiki/Mapping_keys_in_Vim_-Tutorial(Part_1) :

El primer comando muestra los mapas que funcionan en modo normal, visual y de selección y operador pendiente. El segundo comando muestra los mapas que funcionan en modo de inserción y línea de comando.

Normalmente, la salida de los comandos anteriores abarcará varias páginas. Puede usar el siguiente conjunto de comandos para redirigir el resultado al archivo vim_maps.txt:

:redir! > vim_maps.txt :map :map! :redir END


Puedes usar mapcheck .: -

Por ejemplo, quería mapear <CR> ,i a gg=G para sangrar un archivo. Para verificar si ya hay una asignación para <CR> , i

if mapcheck("/<CR>", "I") == "" |echo "no mapping"

... pero esto no detectará si el mapeo es parte de una secuencia.


Revisé :help index e hice una lista de algunas de las claves nmap no utilizadas:

  • Q (cambiar al modo "Ex")
  • Z excepto ZZ, ZQ
  • /
  • gb, gc, gl, gx, gy, gz
  • zp, zq, zu, zy
  • cd, cm, co, cp, cq, cr, cs, cu, cx, cy
  • dc, dm, do, dp, dq, dr, ds, du, dx, dy
  • gA, gB, gC, gG, gK, gL, gM, gO, gS, gX, gY, gZ
  • zB, zI, zJ, zK, zP, zQ, zP, zS, zT, zU, zV, zY, zZ
  • ] a,] b,] e,] g,] h,] j,] k,] l,] n,] o,] q,] r,] t,] u,] v,] w,] x ,] y
  • [a, [b, [e, [g, [h, [j, [k, [l, [n, [o, [q, [r, [t, [u, [v, [w, [x , [y
  • CTRL-G, CTRL-K
  • CTRL- / a - z (reservado para extensiones)
  • CTRL- / A - Z (no utilizado)

Por favor actualiza / comenta.


Si revisa la respuesta sugerida por Randy Morris, encontrará que

:help index

le dará la lista que desea.


Use ": ¡mapa!" y ": map" para las teclas de configuración manual y ": help ''char (-combination)''" para averiguar qué teclas ya están mapeadas en vim out-of-the-box (/ fuera de las opciones de compilación específicas). (Un poco fuera de tema, pero aún respetable (creo): utilice ": nombres de script" para ver qué archivos se han obtenido en qué orden).

Saludos cordiales.