2011-05-18 16 views
23

有時我在我的筆記本電腦的小鍵盤上擊錯了鍵,並且發生奇怪的導航或編輯(有時候這是我的新功能)。如何查看vim中的最後幾個鍵擊?

儘管我可以撤消編輯(u)或導航(control-o),但我不知道我做錯了什麼,所以很難避免它。不知道發生了什麼也是令人沮喪的。所以,我希望能夠看到我最近的幾次擊鍵。

有點像:set showcmd,但顯示文字按鍵,和(理想情況下)他們的短期歷史。

我只在help/google中找到了命令行和導航歷史記錄。


澄清:我不是在尋找的命令行歷史,但按鍵歷史。例如我是否意外地按)並轉到下一句話?我按了dd並刪除了一行嗎?我猜這跟擊鍵記錄器很相似。

命令行歷史記錄(:history)僅顯示在:提示符處輸入的命令。

回答

1

:history將顯示您的命令歷史記錄 - 這應該可以幫助您發現我們在vim中發現的新功能,並找到錯位的按鍵。

+1

謝謝,但我說我已經找到命令行的歷史問題提到 - 就是我正在尋找的是按鍵的歷史。爲了澄清,我不小心按下了')'並轉到下一句話?我按了「dd」並刪除了一行?命令行歷史不會顯示這些;它只顯示在':'提示符處輸入的命令。 – 13ren 2011-05-18 19:16:45

4

據我所知,最接近你可以得到的是q命令,它將您的擊鍵記錄到您選擇的寄存器中。顯然,必須事先設置它,因爲它旨在用於複雜的重複,儘管您可能會破解某些內容以便在每個打開的文件上開始記錄。有內存使用問題,煩人的「記錄」提示。

可能最直接的方法是安裝鍵盤記錄軟件。我沒有任何關於這些的個人經驗,但是如果您從可信來源獲取它或者自己構建它,將其設置爲只記錄到內存而不是磁盤,則只有緩衝區大小爲句子左右,或只記錄vim窗口。

+2

不錯的主意!您可以使用':reg'檢查用'q'存儲的宏。例如,如果你開始'qx',然後鍵入'kkjjdd/hello^M:w^M'(和'q'結束),然後':reg x'將打印出來(^ M'回車;一切都被記錄下來,包括'/'搜索和':'命令)。 – 13ren 2011-05-18 21:52:04

+0

我一直在使用'q',它運行良好;但使用':reg'輸出不會換行,所以最近的擊鍵往往會在屏幕的右側丟失(通常很長,因爲它記錄了所有內容 - 例如,如果輸入幾行文本,所有這些擊鍵被包括在內)。但是,它確實告訴我,我有時會擊中'n'而不是'b',將我扔到文件中而不是退後。我仍然希望vim能夠做到我想要的。我會再離開它一天。 – 13ren 2011-05-21 20:30:17

+1

@ 13ren,你也可以使用'[reg letter] p'將註冊表的值粘貼到文本窗口中 – 2011-05-21 20:37:25

1

Gundo - 可能不值得一看,雖然也許不完全是你看起來會略有幫助。

它讓你可視化Vim撤消樹,這意味着你將能夠看到發生的最後編輯。例如,如果您不小心刪除了一行,或者某些此類內容會顯示在樹中,但它不會顯示被按下的實際按鍵,並且不會顯示諸如光標移動之類的內容。

+0

Thanks。Gundo是一個了不起的項目,基於vim的令人驚歎的(但不可用的)撤消樹 - 我是沒有意識到任何類型的工具(除了Git和其他版本控制系統,它們都是基於這個概念,並且規模較大)。但是,正如你所指出的,這並不能回答我的問題,因爲它不顯示按鍵,爲了恢復錯誤的編輯,常規的撤銷工作正常 - 當一個簡單的解決方案已經完美解決時,不需要使用更復雜的解決方案。但是,我認爲你只是以此爲藉口來宣傳Gundo。 ..我真的不能真的讓你失望。:-) – 13ren 2011-05-19 15:52:24

2

最近我碰到一個記錄插件來爲Vim的,它讓我想起了這樣一個問題:

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

它基本上記錄您爲以後的分析所做的一切,它的目的是爲獲取有關命令的用法統計但應該完美地發現你偶然輸入的那些魔法命令。

0

有點老了,但我剛剛發現這個對reddit

可以啓動VIM -w標誌寫在一個文件中的所有按鍵。見:h -w

vim -w filename