Отображение функции с помощью vnoremap - PullRequest
1 голос
/ 14 апреля 2019

Я пытаюсь настроить функцию в Neovim, которая может манипулировать визуальным блоком текста и привязывать его к клавише. Я скопировал это из function-range-example документации :

function! Cont() range
  execute (a:firstline + 1) . "," . a:lastline . 's/^/\t\\ '
endfunction

vnoremap <silent> S :set opfunc=Cont<CR>

Если я вызываю функцию с :'<,'>call Cont(), все работает нормально. Однако, когда я выделяю выделенный текст в режиме визуального блока, я получаю эту ошибку:

E481: No range allowed

Чего мне не хватает?

1 Ответ

2 голосов
/ 15 апреля 2019

Ваше отображение не имеет особого смысла. Устанавливает операторную функцию, которая никогда не используется.

E481 выбрасывается, потому что выполнение :set из vmap приводит к :'<,'>set..., но команда :set не принимает диапазон.

Используйте это вместо:

vnoremap <silent> S :call Cont()<cr>
...