在 VS Code Vim 中正确标记 R 语言

问题描述 投票:0回答:1

在 VSCode Vim 插件中,有各种正常模式命令取决于光标下的单词/标记的边界(例如

*
w
e
等)。这些不适用于 R 语言,R 语言使用点 (
.
) 作为普通标记字符,而不是像大多数语言那样作为运算符。

这意味着,例如,如果您在光标下搜索 (

*
) 类似
my.data
的变量,vim 插件将搜索
my
data
,但不会搜索
my.data
,因为它应该.

奇怪的是,安装了 R 插件(具有正确的语法定义)后,内置的 VSCode 功能(如 重命名符号命令)可以按预期工作(例如,当光标悬停时点击

F2
my.data
将取代整个变量,而不仅仅是
my
data
)。

有没有办法让 VSCode Vim 通过用户配置遵守 R 语法,或者这需要更新 R 或 VSCode vim 插件吗?

visual-studio-code vim-plugin vscodevim
1个回答
0
投票

VS Code Vim 扩展是应该以遵守其

vim.iskeyword
设置,这实际上只是 Vim 扩展的
editor.wordSeparators
设置的更高优先级别名。如果不设置
vim.iskeyword
,则会回退到
editor.wordSeparators
,如果两者都没有设置,则默认使用
/\\()"\':,.;<>~!@#$%^&*|+=[]{}`?-
。此行为的源代码位于 https://github.com/VSCodeVim/Vim/blob/master/src/configuration/configuration.ts。有趣的是,
vim.iskeyword
没有注册为可覆盖语言的设置,但做这样的事情应该工作:

"[r]": {
  "editor.wordSeparators": "", // <- put whatever you want in here that doesn't include ".".
},

我已经测试过它可以在视觉模式下选择内部单词(viw)。正向单词搜索会发生奇怪的事情(*,但我认为这可能只是一个错误,在这种情况下,我建议您提出错误票)。如果你想追踪这个的源代码,你可以通过以下方式:

© www.soinside.com 2019 - 2024. All rights reserved.