Protokollierung / Abfangen jedes Tastendrucks in Vim

8

Ich habe gerade angefangen, an einem Tool zu arbeiten, das mir hilft, meine Produktivität mit Vim zu steigern. Ich möchte, dass jeder Tastendruck in einer Datei gespeichert wird und ineffiziente Verwendungsmuster identifiziert werden. Ich möchte, dass es für jeden Tastendruck einen Zeitstempel speichert.

Ich habe versucht, mit den Optionen -w und -W vim jeden Tastendruck an eine Pipe auszugeben. Vim meldet jedoch keine Tastenanschläge online und konnte daher keine zuverlässigen Zeitstempel erhalten.

Ich habe auch versucht, die Eingabe von einem tty abzufangen, sie in eine Pipe zu schreiben und sie als stdin für Vim umzuleiten. Aber dann beendet Vim einfach mit:

%Vor%

Ich habe auch diesen Trick gefunden, um jeden Schlüssel zu erfassen: Ссылка . Ich weiß nichts über vimscript, aber ich habe das Gefühl, dass ich nicht danach suche.

Also denke ich jetzt: Ich muss Input von einem Tty abfangen, verarbeiten und dann auf ein falsches Tty schreiben, das Vim als Input verwenden wird. Würden Sie zustimmen, dass dies der beste Ansatz ist? Wenn ja, irgendwelche Hinweise, wie ich das machen könnte?

    
Wojciech Baranowski 30.05.2013, 08:00
quelle

4 Antworten

2

Nachdem ich ein bisschen mehr gegraben und den 'script' Quellcode gelesen habe, habe ich Folgendes gefunden:

%Vor%

Das Erstellen eines neuen Pseudo-Terminals scheint der Weg dorthin zu sein und ich werde es versuchen.

Edit: Es scheint zu funktionieren. Falls jemand auf ein ähnliches Problem stößt, kann das Projekt unter Ссылка gefunden werden.

    
Wojciech Baranowski 30.05.2013, 20:47
quelle
1

Ein möglicher Ansatz könnte sein, den Vim-Code zu patchen: In der Schleife, in der Tastatureingaben erfasst werden, speichern Sie sie und schreiben Sie sie in Ihre Datei. (oder du könntest sie zum .viminfo hinzufügen)

Ссылка

Es scheint, dass die folgende Funktion wartet, um eine Eingabe vom Benutzer zu erhalten.

%Vor%

So können Sie möglicherweise den Einstiegspunkt für die Tastatureingabe von dort finden.

    
Xavier T. 30.05.2013 13:12
quelle
1

Wenn Sie an Mac OS X arbeiten, können Sie diesen Code verwenden, um Ihre Schlüsseleingaben in% co_de zu protokollieren %.

Dieser Code lehnt sich stark an den alten Befehl unix vim an, der lautet Open Source .

Die Verwendung würde so aussehen (nach dem Herunterladen der Quelle):

%Vor%

Sie könnten auch script eingeben, aber es enthält wahrscheinlich viele Steuerzeichen, die die Ausgabe schwer lesbar machen.

Bitte benutzt diesen Code auch nicht für ruchlose Zwecke. Es ist irgendwie gefährlich.

    
Tyler 02.07.2015 22:08
quelle
0

Da dies nicht direkt mit Vim zusammenhängt (und gleichermaßen angewendet werden könnte, um die Verwendung anderer tastaturgesteuerter Anwendungen zu verbessern), würde ich nicht versuchen, dies in Vim zu implementieren (was, wie Sie bereits herausgefunden haben, ist) nahezu unmöglich), sondern die Tasten über Betriebssystemmittel abfangen, z durch einen benutzerdefinierten Tastaturtreiber oder Keylogger. Es gibt wahrscheinlich mehrere Implementierungen, um Sie zu starten.

    
Ingo Karkat 30.05.2013 10:31
quelle

Tags und Links