Utilisation de vim et de caféine sur la même machine

12

Contexte

Je travaille dans un laboratoire de recherche et utilise quotidiennement trois OS différents. Sur les machines Windows et Mac, j'utilise de la caféine pour empêcher ces machines d'activer l'économiseur d'écran pendant que je travaille sur une autre machine (Linux n'a pas ce problème). C'est très ennuyeux de devoir me reconnecter lorsque je reviens.

Problème

Lorsque vim ou gvim sont en mode insertion, le caractère <F15>apparaît sporadiquement dans le document. Je l'ai retrouvé à la caféine après un peu de recherche. Le site Web de Caffeine indique que le logiciel fonctionne en simulant occasionnellement un <F15>événement de presse clé:

De toutes les touches disponibles, F15 est probablement la moins intrusive (je n'ai jamais vu de clavier PC avec cette touche!) Et la moins susceptible d'interférer avec votre travail.

La caféine est donc le coupable évident. Cependant, je préfère toujours utiliser mon éditeur de texte préféré sur les trois machines, et je n'ai pas l'intention de changer cela uniquement pour s'adapter à l'utilisation de la caféine.

Question

Y a-t-il quelque chose que je peux mettre vimrcpour que vim ignore <F15>les événements de presse clés?


Modifier pour plus de clarté

Je ne peux pas désactiver le délai d'expiration de l'économiseur d'écran; il est défini par le service informatique à des fins de sécurité. Donc, avec la solution de contournement de la caféine, afin de rester conforme, je dois verrouiller manuellement mes machines lorsque je m'éloigne de mon bureau. Ce n'est pas si mauvais; mais les déverrouiller toutes les quelques minutes l'est.

De plus, je n'ai pas écrit de caféine, donc je ne sais pas pourquoi le développeur a choisi de cliquer <F15>une fois par minute. Je l'aurais probablement fait différemment, peut-être avec un léger mouvement de souris ou une touche tactile, comme l'a suggéré @ Random832.

Jonathan Landrum
la source
4
Pourquoi ne pas simplement désactiver les économiseurs d'écran / timeout-to-lock sur ces machines? Ce serait une solution beaucoup plus propre que de configurer vim pour contourner l'étrange comportement de la caféine. Ou du moins, faites en sorte que la caféine simule quelque chose comme <Ctrl>au lieu de <F15>.
Ruslan
1
@Ruslan Le point d'utilisation <F15>est qu'il signifie très rarement quelque chose et est généralement ignoré; <Ctrl>, cependant, est significatif et, lorsqu'il est déclenché au mauvais moment, peut provoquer un comportement inattendu.
Kyle Strand
@Ruslan l'OS est configuré par le service informatique pour se verrouiller après une période d'inactivité; l'exécution de la caféine me permet de contourner cela, tant que je verrouille manuellement mes machines lorsque je m'éloigne de mon bureau. De plus, je n'ai pas le code source de la caféine, donc je ne peux pas le modifier.
Jonathan Landrum
Pourquoi ne simule-t-il pas simplement cet événement que vous obtenez lorsque vous appuyez sur le pavé tactile lorsque le tapotement n'est pas activé, mais il concentre toujours la fenêtre sur laquelle vous êtes - mais sur la fenêtre actuelle afin qu'il ne fasse rien?
Random832
@ Random832 c'est une bonne question; Je n'ai pas écrit le programme, donc je ne connais pas la logique derrière le choix <F15>autre que ce qui est affiché sur le site.
Jonathan Landrum

Réponses:

20

Vous pouvez mapper une clé <nop>(abréviation de "aucune opération") pour qu'elle "ne fasse rien".

Cela devrait inciter Vim à ignorer la <F15>clé dans tous les modes:

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

Cela résoudra probablement votre problème, mais je ne l'ai pas testé dans votre situation spécifique, car je n'ai pas plusieurs machines Windows / OSX avec de la caféine installées en attente :-)

Martin Tournoij
la source
On dirait que c'est ça! Merci de votre aide.
Jonathan Landrum
1
Il convient de noter que les clés vraisemblablement mortes, comme <f15>souvent, sont utilisées lors de la cartographie des codes clés rapides dans le terminal Vim . Exemple d'un plugin qui fait une telle chose est rsi.vim .
Peter Rincker