簡體   English   中英

地圖 <space> 至 <leader> 在VIM中

[英]Map <space> to <leader> in VIM

我想在VIM 7.4中將<space>鍵映射到<leader> (當前是這里的\\鍵)。

我還希望能夠同時使用<space>\\鍵作為領導者。

如果可能的話,我會在鍵入時看到/字符出現在右下角(而不是像<20>這樣的時髦內容),但是我可以不用它。

我試圖

nmap <space> <bslash>

這適用於簡單的<leader>keys命令,但是<leader><leader>key命令(如easymotion映射)不起作用。

我也嘗試過

let mapleader = " "
nmap <bslash> <space>

但是類似於上述問題,對於<leader><leader>key命令, <bslash>鍵不再起作用。

我已經在這些相關的問題/維基頁面上嘗試了很多東西:

我看不到您的.vimrc ,所以我不能保證這是問題,但是我敢打賭,問題來自使用nnoremap 以下對我有用:

let mapleader =" "
nmap <leader>i iHello World<esc>
nmap <bslash> <space>

我可以使用<space>i<bslash>i ,它們都運行iHello World<esc>映射。 但是這個:

let mapleader =" "
nnoremap <leader>i iHello World<esc>
nnoremap <bslash> <space>

不起作用。 <space>i運行該映射,但<bslash>i不運行,這正是所期望的,因為nnoremap用於避免嵌套/遞歸映射。 因此,一種可行的解決方案是在各處使用nmap 我絕對不建議這樣做,因為您可能最終會陷入地圖循環。 此解決方案應該更好地工作:

let mapleader =" "
nnoremap <leader>i iHello World<esc>
nmap <expr> <bslash> mapleader

請注意,如果更改mapleader設置,則該設置將中斷,因為:h mapleader表示:

Note that the value of "mapleader" is used at the moment the mapping is
defined.  Changing "mapleader" after that has no effect for already defined
mappings.

暫無
暫無

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

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