Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to see the last few keystrokes in vim?

Tags:

vim

Sometimes I hit the wrong keys on my laptop's small keyboard, and odd navigation or editing occurs (sometimes a feature that's new to me).

Although I can undo the editing (u) or navigation (control-o), I don't know what I did wrong, so it's difficult to avoid it in future. It's also frustrating to not know what just happened. So, I would like to be able to see my last few keystrokes.

A bit like :set showcmd, but to show the literal keystrokes, and (ideally) a short history of them.

I've only found commandline and navigation history in help/google.


To clarify: I'm not looking for commandline history, but keystroke history. e.g. did I press ) accidentally and go to the next sentence? Did I press dd and delete a line? I guess it's similar to a keystroke logger.

Commandline history (:history) only shows commands entered at the : prompt.

like image 549
13ren Avatar asked May 18 '11 18:05

13ren


3 Answers

A bit old, but I've just found this on reddit:

You can start vim with the -w flag to write all keystrokes in a file. See :h -w

vim -w filename
like image 146
Yep_It's_Me Avatar answered Nov 05 '22 17:11

Yep_It's_Me


To my knowledge, the closest you can get is the q command, which records your keystrokes into a register of your choice. Obviously, that has to be set up a priori as it's intended for complex repeats, although you could probably hack something to start recording on every file open. There's the matter of memory usage and that annoying "recording" prompt though.

Probably the most straightforward way would be to install keylogging software. I don't have any personal experience with these, but the security implications are probably mild if you get it from a trustworthy source or build it yourself, set it to only log to memory not a disk, only have a buffer the size of a sentence or so, or only log for vim windows.

like image 4
Karl Bielefeldt Avatar answered Nov 05 '22 17:11

Karl Bielefeldt


More recently I came across a logging plugin for Vim and it reminded me of this question:

http://wolever.net/~wolever/wiki/vim-logging

It basically records everything you do for later analysis, it was intended for getting statistics about command usage but should work perfectly for finding what those magic commands you accidentally entered were.

like image 2
Charles Keepax Avatar answered Nov 05 '22 18:11

Charles Keepax