繁体   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