首页 > 解决方案 > 使用 vnoremap 映射函数

问题描述

我正在尝试在 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

我错过了什么?

标签: vimvim-pluginneovim

解决方案


您的映射没有多大意义。它设置了一个从未使用过的运算符函数。

E481被抛出,因为:set从 avmap导致到:'<,'>set...,但该:set命令不占用范围。

改用这个:

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

推荐阅读