我想在VIM 7.4中将<space>
键映射到<leader>
(当前是这里的\
键)。
我还希望能够同时使用<space>
和\
键作为引导键。
如果可能的话,很高兴在我键入/
字符时出现在右下角(而不是像<20>
这样的时髦东西,但是我可以不用它。
/ p>
我试图
nmap <space> <bslash>
这仅适用于简单的<leader>keys
命令,但是<leader><leader>key
命令(如 easymotion 映射)无效。
我也尝试过
let mapleader = " "
nmap <bslash> <space>
但与上述问题类似,<bslash>
键对<leader><leader>key
命令不再起作用。
我已经在这些相关的问题/维基页面上尝试了很多东西:
答案 0 :(得分:1)
我看不到您的.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.