2012-03-15 46 views
4

在我的.vimrc文件中,我有以下映射:我的vim跳到下一個單詞很慢,我做錯了什麼?

nnoremap \ * 
nnoremap \| # 

的跳轉到下一個詞,並跳轉到最後一個字的命令。

由於某種原因,我的跳轉到下一個單詞的命令很慢,大約在執行命令1秒之前,而跳轉到最後一個單詞的快捷方式沒有問題(沒有明顯的延遲)。我已經嘗試將不同的鍵映射到該命令,並且僅在某些情況下存在此延遲。

有誰知道這種行爲的原因?

+1

是你的mapleader的反斜槓嗎? – 2012-03-15 15:01:58

回答

4

因爲vim正在等待更關鍵你打字\

您可以更改等待時間後(默認1秒)由:

:set timeout timeoutlen=100 ttimeoutlen=100 

(映射上的超時後0.1秒,超時關鍵代碼在0.1秒之後)。

+0

謝謝,不知道這個設置。 – user1266594 2012-03-15 15:11:16

+1

@ user1266594我建議不要使用'\'字符,因爲它被許多插件使用。更改超時將使這些插件使用起來不太舒適。 – 2012-03-15 17:15:26

+0

不錯!我還需要設置timeoutlen = 1000以不干擾我的各種按鍵綁定:jj 等。這些按鍵綁定在timeoutlen = 100時不起作用。 – 2017-02-08 04:50:56

0

如果你打算地圖第一個命令反斜槓我會建議把類似

let mapleader='_' 
let maplocalleader='_' 

到你的vimrc(用您與舒適符號的任意序列下劃線),因爲許多插件創建映射,其{lhs}<Leader>開頭,因此vim正在等待下一個密鑰,以便確定它是否是某些插件映射正確指出的@kev。如果你把上面的代碼放到vimrc中,那些使用*map <Leader>...的插件現在將創建以下劃線開始的映射,而不是用反斜槓啓動它們。如果這沒有幫助,請查看verbose map \並閱讀插件文檔,以確定是否有官方的方式讓他們生成與其他領導者的映射。

0

我有一個類似的問題,但與mapleader無關。事實證明,還有一些其他命令使用我的「跳轉到下一個單詞」鍵作爲前綴(在我的案例中是y)。以下是我所做的:

  1. 問題:nmap命令拉出所有映射的列表。
  2. 標記以「跳轉到下一個單詞」鍵開頭的標記。在我的情況下,這些是yoyO
  3. 在您的.vimrc中取消映射此命令。在我的情況下,這些是unmap younmap yO
  4. 重新載入您的.vimrc:so $MYVIMRC以使更改生效。