在我的.vimrc文件中,我有以下映射:我的vim跳到下一個單詞很慢,我做錯了什麼?
nnoremap \ *
nnoremap \| #
的跳轉到下一個詞,並跳轉到最後一個字的命令。
由於某種原因,我的跳轉到下一個單詞的命令很慢,大約在執行命令1秒之前,而跳轉到最後一個單詞的快捷方式沒有問題(沒有明顯的延遲)。我已經嘗試將不同的鍵映射到該命令,並且僅在某些情況下存在此延遲。
有誰知道這種行爲的原因?
在我的.vimrc文件中,我有以下映射:我的vim跳到下一個單詞很慢,我做錯了什麼?
nnoremap \ *
nnoremap \| #
的跳轉到下一個詞,並跳轉到最後一個字的命令。
由於某種原因,我的跳轉到下一個單詞的命令很慢,大約在執行命令1秒之前,而跳轉到最後一個單詞的快捷方式沒有問題(沒有明顯的延遲)。我已經嘗試將不同的鍵映射到該命令,並且僅在某些情況下存在此延遲。
有誰知道這種行爲的原因?
因爲vim
正在等待更關鍵你打字\
您可以更改等待時間後(默認1
秒)由:
:set timeout timeoutlen=100 ttimeoutlen=100
(映射上的超時後0.1
秒,超時關鍵代碼在0.1
秒之後)。
謝謝,不知道這個設置。 – user1266594 2012-03-15 15:11:16
@ user1266594我建議不要使用'\'字符,因爲它被許多插件使用。更改超時將使這些插件使用起來不太舒適。 – 2012-03-15 17:15:26
不錯!我還需要設置timeoutlen = 1000以不干擾我的各種按鍵綁定:jj
如果你打算地圖第一個命令反斜槓我會建議把類似
let mapleader='_'
let maplocalleader='_'
到你的vimrc(用您與舒適符號的任意序列下劃線),因爲許多插件創建映射,其{lhs}
以<Leader>
開頭,因此vim正在等待下一個密鑰,以便確定它是否是某些插件映射正確指出的@kev。如果你把上面的代碼放到vimrc中,那些使用*map <Leader>...
的插件現在將創建以下劃線開始的映射,而不是用反斜槓啓動它們。如果這沒有幫助,請查看verbose map \
並閱讀插件文檔,以確定是否有官方的方式讓他們生成與其他領導者的映射。
我有一個類似的問題,但與mapleader無關。事實證明,還有一些其他命令使用我的「跳轉到下一個單詞」鍵作爲前綴(在我的案例中是y
)。以下是我所做的:
:nmap
命令拉出所有映射的列表。yo
和yO
。.vimrc
中取消映射此命令。在我的情況下,這些是unmap yo
和unmap yO
。.vimrc
與:so $MYVIMRC
以使更改生效。
是你的mapleader的反斜槓嗎? – 2012-03-15 15:01:58