2012-05-10 13 views
7

Cuando edito el código en Vim, a menudo uso mayúsculas y minúsculas cuando escribo cosas en MAYÚSCULAS. Sin embargo, a menudo me olvido de desactivar el bloqueo de mayúsculas cuando termino con la parte en mayúscula. Esto causa un dolor sin fin (ya que, es decir, j se mueve hacia abajo, pero J se une a la línea actual con la línea siguiente).Cómo detectar el bloqueo de mayúsculas en una función de Vimrc

Normalmente, quiero desactivar el bloqueo de mayúsculas cuando salgo del modo de inserción. ¿Cómo puedo agregar algo a mi .vimrc para que apague las mayúsculas al salir del modo de inserción? Alternativamente, ¿cómo podría agregar algo a mi .vimrc para que me avise (línea de estado, pitido, etc.) si tengo el bloqueo de mayúsculas al salir del modo de inserción?

Gracias!

+0

Puede usar 'autocmd InsertLeave' para realizar una acción al salir del modo de inserción, pero no creo que haya una manera de activar/desactivar mayúsculas desde vim ya que es una tecla modificadora (es posible que pueda hacerlo en una forma específica de OS, sin embargo). – Benj

+3

¿Por qué no tomas el hábito de escribir normalmente y * luego * cambias la caja de tu texto? – romainl

+0

[Este] (http://superuser.com/questions/399903/how-do-i-represent-the-capslock-key-for-vim-key-mappings) ayudará. –

Respuesta

4

Al igual que todas las demás aplicaciones, Vim/GVIM se ubica encima de las abstracciones del administrador de terminal/ventana y, por lo tanto, no tiene acceso directo a las funciones básicas del teclado sin formato. Por lo tanto, obtener información de Bloq Mayús implicaría hackers desordenados y específicos de la plataforma.

En su lugar, le aconsejo que use las funciones de Vim para "emular" Bloq Mayús dentro de Vim, ya que esto no tiene los problemas que ha mencionado. Eche un vistazo al artículo Insert-mode only Caps Lock, que explica esto en detalle.

+0

¡Gracias! Ese artículo sugiere usar una alternativa keymapping (ctrl + ^) para invocar la emulación de bloqueo de mayúsculas. ¿Hay alguna forma de hacerlo utilizando la clave de bloqueo de mayúsculas (sin reasignarla a otra clave en el nivel del sistema operativo, lo que presumiblemente impediría que funcione en otras aplicaciones)? –

+0

@Sam: en Windows, puede reasignar selectivamente la tecla Bloq Mayús solo cuando Vim está activo a través de un guión de AutoHotkey. Pero muchos usuarios de Vim acérrimos argumentarán que esta clave es demasiado valiosa para el uso original, y en lugar de eso, deben asignarse a Ctrl o Esc (hago lo último). Hay otro artículo en el Wiki de consejos de Vim sobre cómo hacer eso. –

+0

Eso tiene sentido - He hecho cosas como esta usando AHK en el pasado. Algo similar en Linux que tú ¿saber de? –

Cuestiones relacionadas