【发布时间】:2020-03-18 23:06:01
【问题描述】:
有没有办法选择下一个最字符串的单词[s]边界。如果需要,我会同意延期。当然,这需要依赖于语言语法。
例如:
co▮nst a = "a is a const";
假设光标在 const 中的 'o' 之后,但这并不重要,是否有键盘快捷键或启用、导航(和选择)下一个不带分隔符的字符串内容的方法; a is a const 在这个例子中。
这些是我唯一能找到的,但是 vscode 对某些设置有一些奇怪的命名约定。我还尝试搜索“导航”。
编辑
在使用 SelectBy 时,我决定为常见的 Web 开发字符串分隔符选择以下内容:
"SelectString": {
"forward": "(?<!\\\\)(['\"`])",
"forwardNext": "(?<!\\\\){{1}})",
"forwardInclude": false,
"forwardNextInclude": false,
}
{
"command": "selectby.regex",
"when": "editorTextFocus && !editorHasSelection"
}
考虑转义字符,但是,免责声明,如果您的光标当前位于字符串中并且您激活它,它将找到一个嵌套字符串,当然前提是它在那里。
此外,我决定将!editorHasSelection 添加到 when 子句,否则它将考虑当前选择的结束分隔符,即新的开始。但这也是他们自己的事情。
【问题讨论】:
-
您可以使用marketplace.visualstudio.com/items?itemName=rioj7.select-by基于正则表达式移动光标,只需搜索可以启动字符串、单引号、双引号和三重变体的不同方式(Python)
-
感谢@rioV8 尝试了它,但它的行为并不符合我的预期,至少我无法做到。它根据正则表达式选择光标位置之前或之后的所有内容。我期待它“跳转”到字符串的开头(a)并选择它的内容直到结束分隔符。我想从技术上讲,您可以先
move然后选择它,但这需要连续按下 2 个键来执行 1 个操作,希望避免这种情况。谢谢,虽然我会继续寻找更多的扩展 -
我会看看我是否可以修改扩展以包含这种类型的选择,我没有抓住 select 部分