在 VS Code 中删除一行后向上移动光标

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

在 IntelliJ IDEA 和其他 JetBrains IDE 中,有一个我非常喜欢的设置:当你删除空行时,其光标会自动移动到上面一行,如下所示:

如何在 VS Code 中分配此设置?

visual-studio-code jetbrains-ide
4个回答
14
投票

您可以使用

editor.action.deleteLines
删除当前行,方法是按 Ctrl + Shift + K

但是,删除该行后,光标将不会向上移动,如 IntelliJ 中所示。我现在没有看到此功能的内置选项,但您可以创建自己的宏来使用 macros 扩展来执行此操作。配置只需几分钟。

  1. 安装宏扩展。
  2. 将以下内容添加到您的

    settings.json
    文件中以创建一个名为
    deleteLinesUp
    的宏,该宏将删除该行,然后向上移动光标。

    "macros": {
        "deleteLinesUp": [
            "editor.action.deleteLines",
            "cursorUp"
        ]
    },
    
  3. 打开您的

    keybindings.json
    文件并添加以下内容以覆盖 Ctrl + Shift + K,以便它调用
    deleteLinesUp
    而不是
    deleteLines

    {
        "key": "ctrl+shift+k",
        "command": "macros.deleteLinesUp"
    }
    

现在它将按照您的意愿运行。此外,您可以将此宏绑定到您想要的任何组合键。


11
投票

您想要安装HungryDelete扩展。

它改变了退格键的行为。当您在只有空格的行中按退格键时,它会擦除整行并将光标向上移动,这与问题中演示的 JetBrains 编辑器的行为相同。


0
投票

如果没有扩展,VS Code 不支持此功能。这是问题票的主题空行末尾的退格键不会删除整行并转到上面行的末尾#42785。我建议您对该问题票竖起大拇指以表示支持。您还可以订阅它以获取有关讨论和进展的通知。请避免在那里发表嘈杂的评论,比如只包含“+1”/“bump”的评论。

如果有一个上下文键包含当前行中光标之前的文本,甚至包含当前行的全部内容,您可以编写一个键绑定来使用各种编辑器命令(例如

cursorUpSelect
->
cursorEndSelect
->
deleteLeft
,或
deleteAllLeft
+
deleteLeft
)在
runCommands
中,并带有使用 匹配运算符 的 when 子句。但可惜没有。

正如已经提到的,有一个扩展似乎可以做到这一点:

jasonlhy.hungry-delete
(我与此扩展没有任何关系)


-1
投票

转到文件 -> 首选项 -> 键盘快捷键

搜索“删除所有左侧”和“删除所有右侧”

并添加您的按键,我更喜欢使用 Ctrl+Shift+Backspace 和 Ctrl+Shift+End

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