2017-05-04 3 views
0

Problème

Un plugin que j'utilise, mes correspondances, ou une combinaison de ces deux sont à l'origine des problèmes sur vim. En particulier, quand je presse une combinaison particulière de touches suivantes se produit:vim: Trouver l'histoire des raccourcis utilisés récemment

  • le 1er numéro dans la ligne actuelle, il diminue
  • il saute à une autre ligne

Le problème est que je don Je ne sais pas qui est la combinaison que je presse. Je ne peux pas le reproduire. Je suis un saving-the-buffers-constantly-freak, donc quand je suis "ralenti" (ne rien écrire sur vim) mes doigts involontaires peuvent entrer/sortir du mode d'édition, , zz, peut-être quelques autres, assez rapidement. Je dois mélanger quelques raccourcis ici qui causent ce problème. Vous pourriez dire «arrêtez de faire ce que vous faites» mais je ne peux pas m'en empêcher. C'est comme un problème. Je ne peux pas contrôler ça. Mais encore, il y a un raccourci quelque part où il fait des choses que je ne veux pas, et je ne peux pas le reproduire ou le trouver dans ma configuration vim.

BTW J'ai défini map <C-a> <Nop> dans mon .vimrc, donc le comportement par défaut de l'auto-incrémentation est désactivé. (Voir une question précédente de mes here)

Question

Comment puis-je voir les raccourcis d'histoire qui ont été utilisés? q: Ne me donne pas une telle information.

+0

que voulez-vous dire: « Je ne peux pas reproduire »? vous pouvez vérifier 'verbose' – Kent

+0

@Kent Je veux dire que je ne peux pas trouver exactement ce que les raccourcis sont en train de faire. – Paschalis

+0

J'ai finalement trouvé la cause de cette situation. réponse [ici] (https://stackoverflow.com/questions/44890662/disable-timeout-on-esc-key) – Paschalis

Répondre

0

Vous pouvez exporter vos applications actives en tapant:

:map 
+0

oui, bien sûr que je peux mais à cause des plugins etc il y en a des tonnes! Existe-t-il un moyen de voir l'historique des «cartes» utilisées? – Paschalis

1

Je ne sais pas comment dans vim pour récupérer l'histoire des touches ayant été enfoncée. Comme alternative, vous pouvez utiliser vos capacités OS pour le faire.

Si vous utilisez un système Linux, vous pouvez enregistrer les événements clés assez facilement; essayer de lancer en arrière-plan ce petit script bash, il va faire le travail (pas bien testé, il peut avoir besoin de quelques corrections); bien sûr, tous les événements seront enregistrés, même ceux qui ne se produit tout en travaillant avec Vim:

#!/bin/bash 

xinput list | 
grep -Po 'id=\K\d+(?=.*slave\s*keyboard)' | 
xargs -P0 -n1 xinput test | 
awk ' 
    BEGIN { while (("xmodmap -pke" | getline) > 0) k[$2]=$4 } 
    /^key press/ { 
     cmd = "date +%H:%M:%S"; cmd | getline date; close(cmd) 
     printf("%s [ %s ]\n", date, k[$NF]) 
    } 
' | 
tee /tmp/keys.log # <-- pressed keys will be logged here