使用vnoremap映射函数

时间:2019-04-13 21:40:38

标签: vim vim-plugin neovim

我正在尝试在Neovim中设置一个函数,该函数可以操纵可视文本块并将其绑定到键。我已经从function-range-example documentation中复制了这个:

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 个答案:

答案 0 :(得分:2)

您的映射没有多大意义。它设置了一个永远不会使用的运算符。

E481之所以被抛出是因为从:set执行vmap会导致:'<,'>set...,但是:set命令没有范围。

改为使用此:

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