一千萬個為什麽

搜索

當用戶進入/離開命令模式時,如何觸發自動命令

我使用的是非常聰明的插件,可以根據上下文更改行號碼樣式(相對/普通) 。基本上當你進入插入模式時,你有正常的線路號碼,當你離開插入模式時,它切換到相對數字。缺少的功能是在命令行模式下使用正常的行號。

查看它是如何實施的使用Vim的事件系統來觸發更改。我看過,但Vim的文檔似乎只提供插入輸入/離開事件。 (有趣的是: UserGettingBored )。

At first I thought of adding nnoremap : :call MyFunc(): which works on enter but not on exit. Also relying on a map seems flaky.

當用戶進入命令行模式(按)時如何觸發一個功能?當用戶離開這個模式時(按下輸入ctrl cesc ),我該如何觸發一個功能。 ?

最佳答案

您可以使用映射來覆蓋/以首先執行某些操作:

nnoremap : :set number:
nnoremap/:set number/
nnoremap ? :set number?

因為我們使用非遞歸映射,所以最後的將調用原始的內置

To hide the numbers again, you can use command-line mappings to override , , and :

cnoremap   :set nonumber
cnoremap   :set nonumber
cnoremap   :set nonumber

這個技巧也應該適用於你插件的命令。

轉載註明原文: 當用戶進入/離開命令模式時,如何觸發自動命令