【问题标题】:Escaping the '[' bracket in a JSON string without there being another ']'在没有另一个 ']' 的情况下转义 JSON 字符串中的 '[' 括号
【发布时间】:2019-11-19 11:09:45
【问题描述】:

我正在尝试使用 multi_command 工具将自定义快捷方式映射到将粘贴以下字符串(清除控制台)的 VS 代码:

"command": "multiCommand.clearConsole",
    "sequence": [
        {
            "command": "type",
            "args": {
              "text": "print("\\033\[2J)
            }
          }
    ]

我使用了双反斜杠来转义第一个反斜杠,但我需要一种转义“[”左括号的方法。

有人知道这是否可能吗?还是更简单的方法?我只想清除托管在外部设备上的控制台(通过 PyCOM 控制台进行交互)并通过 python 命令行进行交互。

干杯!

【问题讨论】:

    标签: json visual-studio-code vscode-settings key-bindings


    【解决方案1】:

    [前的双引号和反斜杠需要转义,方括号是有效的JSON字符:

    {
        "command": "multiCommand.clearConsole",
        "sequence": [{
            "command": "type",
            "args": {
                "text": "print(\"\\033\\[2J)"
            }
        }]
    }
    

    【讨论】:

    • 我按照您的建议进行了尝试,并且 JSON 文件对此感到满意,但随后会打印:("\033\ [2J]") 带有额外的“\”和“]”字符......也许它与 VS 代码有关
    • 不是 "\033[2J]" 根据您的问题您想使用什么吗?我不知道您要做什么,只是修复了您的 JSON :)
    【解决方案2】:

    这个键绑定 - 选择你想要的任何键绑定 - 将清除控制台:

     {
        "key": "ctrl+shift+z",
        "command": "workbench.action.terminal.sendSequence",
        "args": { "text": "clear\u000d" }
      }
    

    或者你可以在你的宏中使用"text"

    专注于编辑器。

    【讨论】:

    • 我尝试将它粘贴到我的 'keybindings.json' 文件中,但是当我按下相应的键绑定时没有任何反应
    • 您使用的是哪个终端外壳?我知道它至少可以在 powershell 和 bash 中工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-25
    • 1970-01-01
    • 2015-09-14
    • 2023-03-06
    • 2016-03-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多