如何在 VS Code 中向终端发送“向上箭头”

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

在 VS Code 中,如果我想编写一个键盘快捷键来将

command
发送到终端,我可以在
~/.config/Code/User/keybindings.json
中使用以下内容:

    {
        "key": "alt+p",
        "command": "workbench.action.terminal.sendSequence",
        "args": {
            "text": "command\u000D"
        }
    },

在这种情况下,

\u000D
会向终端发送一个回车符,这实际上只是运行
git push
命令。

现在,我想创建一个键盘快捷键,按“向上”键,然后按 Enter,以重新运行上一个命令。我该怎么做?

目前,我找到了一个临时解决方法:

    {
        "key": "shift+alt+1",
        "command": "workbench.action.terminal.sendSequence",
        "args": {
            "text": "\u0021\u0021\u000D"
        }
    },

查看维基百科的Unicode字符列表

\u0021
!
的unicode,因此此命令将
!!
发送到终端,在
bash
中扩展为最近运行的命令,然后发送回车运行命令。但是,我想找到一个跨平台解决方案,因为据我所知,
!!
在 Windows 上的工作方式不同。

另一种解决方法是复制以前的终端命令并将其粘贴回终端,但这有一个缺点,即擦除剪贴板上以前的所有内容:


    {
        "key": "shift+alt+1",
        "command": "runCommands",
        "args": {
            "commands": [
                "workbench.action.terminal.copyLastCommand",
                "workbench.action.terminal.paste",
                {
                    "command": "workbench.action.terminal.sendSequence",
                    "args": {
                        "text": "\u000D"
                    }
                }
            ]
        }
    },
visual-studio-code unicode terminal keyboard keyboard-shortcuts
1个回答
0
投票

我找到了解决方案这里,就是使用:

    {
        "key": "shift+alt+1",
        "command": "workbench.action.terminal.sendSequence",
        "args": {
            "text": "\u001b[A\u000d"
        }
    },

这里,

\u001b
是unicode转义序列,
[A
xterm
中的向上箭头。这在 Ubuntu 上有效,但我还没有在 Windows 中测试过。

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