Как использовать inoremap с несколькими символами?
Я новичок в настройке ViM. Я почти закончил, чтобы автозаполнение работало так, как мне хотелось бы. Вот линия интереса:
inoremap <expr> i (pumvisible() ? '' : 'i<C-n>') . '<Down>'
Обратите внимание, что он захватывает I, а затем все еще печатает его (а затем отправляет <C-n>
). Я хотел бы, чтобы это работало как регулярное выражение. Как я могу заставить это работать с любым символом слова? Я бы предпочел не иметь несколько копий этого для каждого персонажа.
1 ответ
Решение
В отображениях нет подстановочных знаков; вам нужно создать все эти отображения с помощью цикла:
for i in split('abcdefg...', '\zs')
execute printf("inoremap <expr> %s (pumvisible() ? '' : '%s<C-n>') . '<Down>'", i, i)
endfor
Обратите внимание, что есть плагины, которые достигают автозаполнения при вводе (что вы, кажется, пытаетесь здесь); Я использую AutoComplPop - автоматически открывает всплывающее меню для завершения