Visual studio code 如何创建仅重新插入可视代码中选定行的键绑定
我在MacOS上使用Visual Studio代码1.14,并尝试创建自己的键绑定,只重新缩进我突出显示的代码行 我在keybindings.json中有以下内容: 我根据选择了when:子句的命令 问题是:当我使用自定义键盘快捷键时,它会重新缩进整个页面,而不是只缩进我选择的文本 这可能很小,但这可能会导致格式噩梦,比如在编写ReactJS应用程序时,VSC用于检测如何缩进行的正则表达式模式在查看.jsx文件中混合使用的javascript和html时会感到困惑。在这种情况下,我只想重新缩进/自动缩进我选择的文本,而不是整个页面 如何使keybinding与我正在寻找的行为一起工作?when子句只能在命令处于活动状态时更改,而不能更改其行为。问题是命令的实现对整个文件而不是当前选择进行操作 我认为目前还不支持对选择进行重新定位,但它似乎已经在路线图上了。例如,在我的重点中提到: 目前我们不支持范围内的Reindent的原因是我们在嵌入式语言文件中存在一些边界问题。其中一些只是TextMate的语法问题,但我确信这能解决所有问题。一旦这个问题得到解决,我认为很容易支持范围/选择的重新登入。然后在粘贴/移动线条等时重新插入Visual studio code 如何创建仅重新插入可视代码中选定行的键绑定,visual-studio-code,key-bindings,Visual Studio Code,Key Bindings,我在MacOS上使用Visual Studio代码1.14,并尝试创建自己的键绑定,只重新缩进我突出显示的代码行 我在keybindings.json中有以下内容: 我根据选择了when:子句的命令 问题是:当我使用自定义键盘快捷键时,它会重新缩进整个页面,而不是只缩进我选择的文本 这可能很小,但这可能会导致格式噩梦,比如在编写ReactJS应用程序时,VSC用于检测如何缩进行的正则表达式模式在查看.jsx文件中混合使用的javascript和html时会感到困惑。在这种情况下,我只想重新缩进/
感谢@Gama11为我指出这一点 实现我尝试的解决方案是使用命令editor.action.formatSelection而不是editor.action.redindentlines
如Gama11所示,当前不支持范围内的reindent,但是格式选择是一个非常类似的命令,它使用不同的逻辑在特定范围内完成缩进。阅读关于该问题的评论非常有见地。你提到的那个问题提到了另一个命令,它完全实现了我的意图!谢谢你给我指明了正确的方向。
[
{
"key": "alt+cmd+[", "command": "editor.action.reindentlines",
"when": "editorHasSelection && editorTextFocus"
}
]