Я хотел бы узнать, какие наиболее распространенные шаблоны я использую во время кодирования. Так что я ищу способ записать все мои вводы с клавиатуры, пока я в VIM, желательно с временными метками. Затем я мог бы проанализировать самые последние использованные шаблоны / движения, сколько времени занимает действие, и выяснить, что нужно оптимизировать.
Есть ли идиоматический способ сделать это в Vim? Должен ли я написать плагин для этого? Каковы будут последствия для производительности при выполнении чего-то подобного?
Спасибо
-w
флаг, когда вы начинаете vim. Вы можете записывать каждое нажатие клавиши с ним.vim -w file.log
), и предоставляет скрипт на haskell для разбора файла на отдельные команды, которые затем можно проанализировать. Нет отметок времени, хотя.vim -w <(./test-io.py > log)
(vim -w <(tee raw-log | ./test-io.py > log)
если вы также хотите получить необработанный вывод) ( только * nix ). Это должно записать все ваши входные данные с метками времени, один байт на строку, вlog
. Я заметил, что vim не выводит команды одну за другой, а сбрасывает их.Ответы:
Vim позволяет регистрировать весь ввод, когда
-w
опция командной строки передается с файлом:Теперь, когда у нас есть доступ к вводу, мы можем перенаправить его туда, куда хотим. Например, следующим способом ( только для систем * nix ):
Где
timestamper.py
следующий короткий скрипт на python:Сценарий можно заменить любой другой программой, которая принимает данные, если вы хотите сделать что-то более сложное.
ПРИМЕЧАНИЕ: после небольшого тестирования я обнаружил, что vim, похоже, сохраняет буфер входных данных, которые он сбрасывает в некоторой точке и при выходе. Это делает временные метки довольно ненадежными.
источник
:terminal
проблемы, связанные с вводом, так что это должно быть полезной функцией. Я не знаком с API удаленного плагина, который у них есть, но у него также может быть какой-то способ получить информацию в реальном времени.