vim - 使用 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
我错过了什么?
解决方案
您的映射没有多大意义。它设置了一个从未使用过的运算符函数。
E481
被抛出,因为:set
从 avmap
导致到:'<,'>set...
,但该:set
命令不占用范围。
改用这个:
vnoremap <silent> S :call Cont()<cr>
推荐阅读
- string - 使用批处理将包含字符串的文件的标题导入文本文档
- css - 在移动设备上使用 CSS 强制文本换行
- spring - 如何使用 RestTemplate 进行 PUT
- eclipse - 使用预定义模板自定义 Eclipse 代码格式
- asp.net - 在 Teamcity 上构建失败
- java - apache-arrow 中是否可以使用 Java API 在单独的线程中创建部分向量?
- python - 如何获取熊猫数据框中的前一列值?
- linux - 如何在 64 位 Linux 上运行 Rebol 脚本
- sql - 如何将行转换为 SQL 查询中具有特定内容的列?
- replication - QEMU KVM 磁盘 IO/SQL 复制问题,在两个相同的克隆 VM 之一上