VSCode中Neovim注释映射失效问题求助
问题:VSCode-Neovim带数字前缀的注释映射失效且跳转行数
当前配置代码:
map z, <Cmd>call VSCodeNotifyRange('editor.action.commentLine', getline('.'), getline('.') + v:count1, 1)<CR>
按vscode-neovim扩展的VSCodeNotifyRange用法配置,期望输入数字前缀(如5z,)时注释当前行及后续4行,但实际执行时无任何行被注释,反而跳转到数字对应的绝对行数(如输入5z,会跳转到第5行),求语法修正方案。
解决方法
问题核心是参数类型错误:getline('.')返回的是当前行的文本内容,但VSCodeNotifyRange需要的是行号数值,应该用line('.')获取当前行号。同时,行号计算需要调整,避免范围超出。
修正后的配置:
nnoremap z, <Cmd>call VSCodeNotifyRange('editor.action.commentLine', line('.'), line('.') + v:count1 - 1, 1)<CR>
关键调整点:
- 替换
getline('.')为line('.'),传入正确的行号参数 - 结束行号改为
line('.') + v:count1 - 1:比如输入5z,时,v:count1=5,当前行+5-1刚好覆盖当前行及后续4行(共5行),符合预期范围 - 使用
nnoremap替代map:避免递归映射风险,是更安全的非递归映射方式
内容的提问来源于stack exchange,提问作者Axlefublr
相关产品推荐
相关产品推荐

