[英]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.