Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio code 如何创建仅重新插入可视代码中选定行的键绑定_Visual Studio Code_Key Bindings - Fatal编程技术网

Visual studio code 如何创建仅重新插入可视代码中选定行的键绑定

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时会感到困惑。在这种情况下,我只想重新缩进/

我在MacOS上使用Visual Studio代码1.14,并尝试创建自己的键绑定,只重新缩进我突出显示的代码行

我在keybindings.json中有以下内容:

我根据选择了when:子句的命令

问题是:当我使用自定义键盘快捷键时,它会重新缩进整个页面,而不是只缩进我选择的文本

这可能很小,但这可能会导致格式噩梦,比如在编写ReactJS应用程序时,VSC用于检测如何缩进行的正则表达式模式在查看.jsx文件中混合使用的javascript和html时会感到困惑。在这种情况下,我只想重新缩进/自动缩进我选择的文本,而不是整个页面

如何使keybinding与我正在寻找的行为一起工作?

when子句只能在命令处于活动状态时更改,而不能更改其行为。问题是命令的实现对整个文件而不是当前选择进行操作

我认为目前还不支持对选择进行重新定位,但它似乎已经在路线图上了。例如,在我的重点中提到:

目前我们不支持范围内的Reindent的原因是我们在嵌入式语言文件中存在一些边界问题。其中一些只是TextMate的语法问题,但我确信这能解决所有问题。一旦这个问题得到解决,我认为很容易支持范围/选择的重新登入。然后在粘贴/移动线条等时重新插入


感谢@Gama11为我指出这一点

实现我尝试的解决方案是使用命令editor.action.formatSelection而不是editor.action.redindentlines


如Gama11所示,当前不支持范围内的reindent,但是格式选择是一个非常类似的命令,它使用不同的逻辑在特定范围内完成缩进。

阅读关于该问题的评论非常有见地。你提到的那个问题提到了另一个命令,它完全实现了我的意图!谢谢你给我指明了正确的方向。
[
    {
        "key": "alt+cmd+[", "command": "editor.action.reindentlines",
        "when": "editorHasSelection && editorTextFocus"
    }
]