Usando vim y cafeína en la misma máquina

12

Antecedentes

Trabajo en un laboratorio de investigación y uso tres sistemas operativos diferentes a diario. En las máquinas Windows y Mac, uso Caffeine para evitar que esas máquinas activen el protector de pantalla mientras trabajo en una máquina diferente (Linux no tiene este problema). Es muy molesto tener que volver a iniciar sesión cuando vuelvo.

Problema

Cuando vim o gvim están en modo de inserción, el carácter <F15>aparece esporádicamente en el documento. Lo rastreé hasta la cafeína después de un poco de investigación. El sitio web de Caffeine afirma que el software funciona simulando ocasionalmente un <F15>evento de pulsación de tecla:

De todas las pulsaciones de teclas disponibles, F15 es probablemente la menos intrusiva (¡nunca he visto un teclado de PC con esa tecla!), Y es menos probable que interfiera con su trabajo.

Entonces, la cafeína es el culpable obvio. Sin embargo, todavía prefiero usar mi editor de texto favorito en las tres máquinas, y no tengo la intención de cambiar eso solo para acomodar el uso de cafeína.

Pregunta

¿Hay algo que pueda poner en mi vimrcpara hacer que vim ignore <F15>los eventos de pulsación de teclas?


Editar para mayor claridad

No puedo desactivar el tiempo de espera del protector de pantalla; lo establece el departamento de TI con fines de seguridad. Entonces, con la solución de cafeína, para mantener el cumplimiento, tengo que bloquear manualmente mis máquinas cuando me alejo de mi escritorio. Eso no es tan malo; pero desbloquearlos cada pocos minutos es.

Además, no escribí Caffeine, así que no sé por qué el desarrollador eligió hacer clic <F15>una vez por minuto. Probablemente lo habría hecho de manera diferente, tal vez con un ligero movimiento del mouse o toque del panel táctil, como sugirió @ Random832.

Jonathan Landrum
fuente
44
¿Por qué no simplemente deshabilitar salvapantallas / tiempo de espera para bloquear en esas máquinas? Sería una solución mucho más limpia que configurar vim para evitar el extraño comportamiento de Caffeine. O al menos hacer que la cafeína simule algo así en <Ctrl>lugar de <F15>.
Ruslan
1
@Ruslan El punto de uso <F15>es que muy raramente significa algo y generalmente se ignora; <Ctrl>, sin embargo, es significativo, y cuando se activa en el momento equivocado podría causar un comportamiento no deseado.
Kyle Strand
@Ruslan, el departamento de TI configura el sistema operativo para que se bloquee después de un período de inactividad; Ejecutar cafeína me permite evitar eso, siempre que bloquee manualmente mis máquinas cuando me alejo de mi escritorio. Además, no tengo el código fuente de cafeína, así que no puedo alterarlo.
Jonathan Landrum
¿Por qué no solo simula el evento que obtienes cuando tocas el panel táctil cuando no estás habilitado, pero aún enfoca la ventana que has terminado, pero sobre la ventana actual para que no haga nada?
Random832
@ Random832 esa es una buena pregunta; No escribí el programa, por lo que no conozco la lógica detrás de la elección que <F15>no sea lo que está publicado en el sitio.
Jonathan Landrum

Respuestas:

20

Puede asignar una tecla a <nop>(abreviatura de "sin operación") para que "no haga nada".

Esto debería hacer que Vim ignore la <F15>clave en todos los modos:

:noremap <F15> <nop> 
:noremap! <F15> <nop>

Esto probablemente solucionará su problema, pero no lo he probado en su situación específica, ya que no tengo varias máquinas Windows / OSX con cafeína instalada en espera :-)

Martin Tournoij
fuente
Parece que lo hizo! Gracias por tu ayuda.
Jonathan Landrum
1
Cabe señalar que las teclas presumiblemente muertas como <f15>se usan a menudo al mapear códigos rápidos en el terminal Vim . Ejemplo de un complemento que hace tal cosa es rsi.vim .
Peter Rincker