Чи можу я бачити історію натискань клавіш у звичайному режимі?


32

Я знаю, що Vim зберігає історію колишніх команд, пошуків, стрибків місць, змін та, можливо, інших.

За допомогою showcmdнабору Vim також показує, які ключі ви ввели до цього часу для звичайної команди режиму, поки ця команда не буде виконана.

Іноді, коли в нормальному режимі я ввожу помилку і відбуваються дії. Я можу скасувати ці дії, але іноді хочеться знати, як відбувалися зміни під час моєї помилки. Іноді редагування виглядає круто, і мені хочеться знати, як це повторити в майбутньому.

Отже, чи є спосіб перегляду історії натискань клавіш у звичайному режимі, бажано розмежованих, коли відбулося фактичне редагування чи дія (наприклад, рух чи зміна режиму)?


4
Можливо, пов’язано: drbunsen.org/vim-croquet
wchargin

Відповіді:


20

Перейшовши за посиланням від @WChargin трохи далі, я виявив таке:

Ви можете почати vim за допомогою параметра -wабо або -Wнаступним чином:

vim -w keys.txt my_file

Усі введені символи записуються у файл {scriptout}, поки не вийдете з Vim.

-wдодасть до вказаного файлу, якщо він існує; -Wперезаписать його

Це не зовсім отримує те, що ти хочеш, але це правильний напрямок.

Оновлення: Схоже , що на насправді ВІМ буферами всі натискання клавіш , поки ви не закриєте Vim, але є одна лінія патч тут , що буде записувати натиснення клавіш відразу.


Спасибі! Я використовую це як вихідну точку для вказівки у вихідний код. Схоже, -w зберігає кожне натискання клавіш, не тільки команди звичайного режиму, але ви правильні: це правильний напрямок!
Джон О'М.

@xthrd, як ці keys.txtфайли форматовані / структуровані? Коли я використовую -w, додавання завжди відбувається в довго-довго-довгому рядку; і, там відображаються дивні символи: під UTF-8, коли я відкриваю файл у новому буфері, я отримаю €齛. Це сам по собі хороший маркер, але було б чудово, якби журнали можна було б проаналізувати необов’язково.
llinfeng

@llinfeng Це взагалі не відформатоване. Це буквально лише файл, що містить натискання клавіш у тому порядку, в якому вони були зроблені. (Хоча зауважте, що якщо деякі натискання клавіш <cr>, то файл буде містити рядкові рядки.) Це пов’язано з тим, що головна мета - створення файлів, які можна відтворити за допомогою -sпараметра. Але чому б не спробувати це на собі!
Багатий

@Rich Дякую за уточнення. Я використовував цей механізм відстеження ключів для налагодження проблеми, яка почала мій пошук. [Мій урок такий: ніколи не W
картайте

-4

Там, q:де показана історія команд.

Я також вважаю корисним, що ви можете натиснути на частково виконану команду, щоб переглядати сірники. Наприклад, /abc натискання вгору прокрутить вашу історію пошукових запитів, починаючи з "abc"


5
q: показує колишню історію команд і є корисною, але це не журнал нормальних команд, наприклад "ad2tn (видалити в регістр a до другого n)
Джон О'М.

Не забувайте, що в середині редагування команди ви можете відкрити поточний рядок у редакторі історії та використовувати vi для редагування рядка, натиснувшиCtrl+f
Sukima
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.