VSCode: 如何让 Ctrl+k 杀死终端中的行尾?

VSCode: how to make Ctrl+k kill till the end of line in the terminal?

在Visual Studio代码中,Ctrl-k快捷键绑定到clearing the terminal

我在 Windows 中 并希望它像传统的 Emacs 键绑定一样工作,也就是说,让它终止行尾。

我已尝试在用户设置中禁用此配置的默认键绑定,但没有成功:

"commandsToSkipShell": [
        "workbench.action.terminal.clear"
      ]

如何让终端服从我20年训练的肌肉记忆?

刚发现!你需要在配置前加上一个减号。编辑 %APPDATA%\Code\User\settings.json 并输入此密钥:

"terminal.integrated.commandsToSkipShell": [
    "-workbench.action.terminal.clear"
  ]

配置选项似乎已重命名,因此我编辑了现在适合我的选项(2018 年 11 月)。

对于那些在 2019 年 11 月查找此内容的人,只需将以下内容复制并粘贴到您的 keybindings.json 文件中:

{
    "key": "ctrl+k",
    "command": "-workbench.action.terminal.clear",
    "when": "terminalFocus"
},

运行成同样的问题。将此代码段添加到 keybindings.json 有效:

{
  "key": "ctrl+k",
  "command": "deleteAllRight",
  "when": "terminalFocus"
}

如果您对 Unix 有多年的记忆 shell 并且想要防止 VSCode 捕获您的键盘快捷键,请关闭 allowChords。在较新的 VSCode 版本中,您只需打开 File -> Preferences -> User (tab),搜索 allowChords 并取消选中它。

或者您可以编辑您的 %APPDATA%\Code\User\settings.json 文件并将其放入:

   "terminal.integrated.allowChords": false

现在很多终端快捷方式都可以使用:

  • Ctrl+K 杀到行尾,
  • Ctrl-Y 从上面粘贴被杀死的行
  • Ctrl+R 在您的历史记录中搜索您的命令,
  • 然后 Ctrl+A 转到行首

我在此线程中有另一个答案,但我认为这是一个更好的解决方案。这是 documentation.

如果您只想修复 Ctrl-K 行为,请参阅其他答案。