Я не вижу ваши .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.