Usando vim e cafeína na mesma máquina

12

fundo

Trabalho em um laboratório de pesquisa e uso três sistemas operacionais diferentes diariamente. Nas máquinas Windows e Mac, uso Caffeine para impedir que essas máquinas ativem o protetor de tela enquanto trabalho em uma máquina diferente (o Linux não tem esse problema). É muito chato ter que fazer login novamente quando eu voltar.

Problema

Quando vim ou gvim estão no modo de inserção, o caractere <F15>aparece esporadicamente no documento. Eu rastreei de volta para Caffeine depois de um pouco de pesquisa. O site da Caffeine afirma que o software funciona simulando ocasionalmente um <F15>evento importante da imprensa:

De todas as teclas disponíveis, o F15 é provavelmente o menos invasivo (nunca vi um teclado de PC com essa tecla!) E o menos provável de interferir no seu trabalho.

Portanto, a cafeína é o culpado óbvio. No entanto, ainda prefiro usar meu editor de texto favorito nas três máquinas e não pretendo alterar isso apenas para acomodar o uso de cafeína.

Questão

Existe algo que eu possa colocar no meu vimrcpara fazer com que o vim ignore os <F15>principais eventos de imprensa?


Editar para maior clareza

Não consigo desativar o tempo limite do protetor de tela; é definido pelo departamento de TI para fins de segurança. Portanto, com a solução alternativa para a cafeína, para permanecer em conformidade, tenho que bloquear manualmente minhas máquinas quando me afasto da mesa. Isso não é tão ruim; mas desbloqueá-los a cada poucos minutos é.

Além disso, não escrevi Caffeine, por isso não sei por que o desenvolvedor optou por clicar <F15>uma vez por minuto. Provavelmente eu teria feito isso de maneira diferente, talvez com um leve movimento do mouse ou toque no touchpad, como sugerido pelo @ Random832.

Jonathan Landrum
fonte
4
Por que não apenas desativar os protetores de tela / tempo limite de bloqueio nessas máquinas? Seria uma solução muito mais limpa do que configurar o vim para solucionar o estranho comportamento da cafeína. Ou pelo menos faça a cafeína simular algo como, em <Ctrl>vez de <F15>.
Ruslan
11
@Ruslan O objetivo de usar <F15>é que muito raramente significa alguma coisa e geralmente é ignorado; <Ctrl>, no entanto, é significativo e, quando acionado no momento errado, pode causar comportamento não intencional.
Kyle Strand
@Ruslan, o sistema operacional é configurado pelo departamento de TI para bloquear após um período de inatividade; A execução de cafeína me permite ignorar isso, desde que eu trave minhas máquinas manualmente quando me afastar da minha mesa. Além disso, não tenho o código fonte da cafeína, portanto não posso alterá-lo.
Jonathan Landrum
Por que ele não simula apenas o evento que você obtém ao tocar no touchpad quando o toque não está ativado, mas ainda foca a janela em que você está - mas sobre a janela atual para que não faça nada?
Random832
@ Random832 é uma boa pergunta; Eu não escrevi o programa, então não conheço a lógica por trás da escolha de <F15>outra que não seja publicada no site.
22615 Jonathan Landrum

Respostas:

20

Você pode mapear uma chave para <nop>(abreviação de "nenhuma operação") para torná-la "não fazer nada".

Isso deve fazer com que o Vim ignore a <F15>chave em todos os modos:

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

Isto irá provavelmente resolver o problema, mas eu não testei-o em sua situação específica, como eu não tenho várias máquinas Windows / OSX com cafeína instalado em pé por :-)

Martin Tournoij
fonte
Parece que conseguiu! Obrigado pela ajuda.
22615 Jonathan Landrum
11
Deve-se notar que presumivelmente chaves inoperantes como <f15>são frequentemente usadas no mapeamento de códigos de chave rápidos no terminal Vim . Exemplo de um plugin que faz isso é o rsi.vim .
Peter Rincker