簡體   English   中英

為什么Vim延遲這個重映射的密鑰? 我該如何解決?

[英]Why does Vim delay on this remapped key? And how do I fix it?

我的vimrc中有以下幾行:

noremap gb vnoremap gb

這些的目標非常明確:每當我按下g時,向左移動一個單詞。

我的問題是在vim執行移動之前有大約1/2秒的延遲。 好像vim正在等我輸入一個加法命令。

我知道vim在期待更多信息時會做這種事情。 但是,這是我唯一一個涉及g的重映射的情況,因此不太可能出現這種情況。

其他人似乎也有類似的問題: 在VIM中重新映射'd'鍵時消除了延遲

但還沒有人提供解決方案。

有什么想法嗎?

如果我這樣做並使用vim -u NONE -N啟動vim,我無法復制該行為。 進一步看,這似乎是由netrw插件引起的,它映射了gx鍵以及映射g%的matchit插件。 (您可以使用:verbose :map g來查看,如果存在其他可能導致此問題以及它們被定義的地方(通過使用:verbose ),則可以:verbose

因此,為了防止這種情況,您應該取消映射這些映射,然后g工作無延遲。 但正如progo已經說過的那樣,你失去了所有那些漂亮的內置g<x>命令,因此我不建議將g映射掉

另請注意,最近的vims具有<nowait>修飾符,因此您可以執行noremap <nowait> gb並且不會發生延遲。

但VIM 期待更多的信息。 有一堆普通模式鍵綁定以g開頭,例如( gggdgfgq ,...),當然vim必須等到它知道你開始輸入的內容。

這是一種在不破壞大量其他映射的情況下無法真正解決的情況。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM