使用 vnoremap 映射函数
Mapping a function with vnoremap
我正在尝试在 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
我错过了什么?
你的映射没有多大意义。它设置了一个从未使用过的运算符函数。
E481
被抛出是因为从 vmap
执行 :set
会导致 :'<,'>set...
,但 :set
命令不采用范围。
改用这个:
vnoremap <silent> S :call Cont()<cr>
我正在尝试在 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
我错过了什么?
你的映射没有多大意义。它设置了一个从未使用过的运算符函数。
E481
被抛出是因为从 vmap
执行 :set
会导致 :'<,'>set...
,但 :set
命令不采用范围。
改用这个:
vnoremap <silent> S :call Cont()<cr>