VSCode 中多命令的快捷方式

2023-11-30

我有一个现有的快捷方式可以最大化终端窗口,

{
        "key": "ctrl+`",
        "command": "workbench.action.toggleMaximizedPanel"
}

我想在快捷方式中添加一个附加命令,以便在终端窗口最大化时将焦点转移到终端窗口,在最小化时将焦点转移回编辑器窗口。在 vscode 中可以实现吗?


在 vscode v1.77 中是一个新命令runCommands它允许您运行一系列命令,就像传统的宏扩展一样。使用以下键绑定,您可以在没有宏扩展的情况下执行您想要的操作:

{
  "key": "ctrl+`",   //  use the same keybinding below
  "command": "runCommands",
  "args": {
    "commands": [
      "workbench.action.toggleMaximizedPanel",
      "workbench.action.terminal.focus",
    ]
  },
  "when": "!terminalFocus"
},

{
  "key": "ctrl+`",   // same keybinding as above
  "command": "runCommands",
  "args": {
    "commands": [
      "workbench.action.toggleMaximizedPanel",
      "workbench.action.focusActiveEditorGroup",
    ]
  },
  "when": "terminalFocus"  // terminal will be focused when it is maximized
}

我注意到有一个新的要求,即面板必须居中对齐才能发挥作用。


[vscode 1.77 之前]

我认为你必须使用像这样的宏扩展多命令使用一个键绑定运行多个命令。安装多命令后,在 settings.json 中:

      "multiCommand.commands": [
    
      {
          "command": "multiCommand.toggleTerminalAndFocusTerminal",
    
          "sequence": [
            "workbench.action.toggleMaximizedPanel",
            "workbench.action.terminal.focus",
          ]
        },
        
        {
          "command": "multiCommand.toggleTerminalAndFocusEditor",
    
          "sequence": [
            "workbench.action.toggleMaximizedPanel",
            "workbench.action.focusActiveEditorGroup",
          ]
        }
    ],

然后是这些键绑定:

    {
      "key": "ctrl+`",
      "command": "extension.multiCommand.execute",
      "args": { "command": "multiCommand.toggleTerminalAndFocusTerminal" },
      "when": "!terminalFocus"
    },

    {
      "key": "ctrl+`",
      "command": "extension.multiCommand.execute",
      "args": { "command": "multiCommand.toggleTerminalAndFocusEditor" },
      "when": "terminalFocus"
    },

So the same keybinding, Ctrl-backTick will trigger one of the two commands depending on whether the terminal has focus - note the "when": "!terminalFocus" meaning when the terminal does not have focus.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VSCode 中多命令的快捷方式 的相关文章

随机推荐

  • 如何将 DOM 元素脚本添加到 head 部分?

    我想将 DOM 元素添加到 HTML 的 head 部分 jQuery 不允许将 DOM 元素脚本添加到 head 部分 而是执行 参考 我想添加script标签并在其中编写脚本部分 var script head append scrip
  • Hadoop 目录/文件上次修改时间

    有没有办法获取hdfs中所有目录和文件的最后修改时间 我想创建显示信息的页面 但我不知道如何在一个 txt 文件中获取最后一次修改时间 看看是否有帮助 public class HdfsDemo public static void mai
  • JFreechart在图表上绘制圆弧

    我有 2 个问题 1 我试图使用形状注释在 XYplot 上绘制圆弧 我使用 XYLine 注释来绘制一条线 并且希望弧线从该线结束的地方开始 我在参数方面遇到一些问题 我希望弧的高度为 17 宽度为 44 并从绘图的点 3 0 17 开始
  • 有效地“应用”数组并保留结构

    我有一个矩阵数组 dims lt c 10000 5 5 mat array lt array rnorm prod dims dims 我想执行基于矩阵的运算 例如通过solve函数 在每个矩阵上 但保留数组的完整结构 到目前为止 我已经
  • 如何在发送前检查.Attachment.Add“文件名”是否成功

    我有一些代码可以创建邮件对象 Outlook 附加文件并发送它 Dim mobjOutlook mobjActiveExp mobjNewMail As Object Create Outlook objects Set mobjOutlo
  • AppDelegate、rootViewController 和 PresentViewController

    我正在做 Facebook 集成教程 如果用户具有当前状态的有效令牌 我想显示我的 MainViewViewController 否则我想显示 LoginViewController MainView AppDelegate m BOOL
  • spring amqp中使用spring webclient的正确方法

    我有以下用于使用来自rabbitmq的消息的spring amqp应用程序的技术堆栈 Spring boot 2 2 6 RELEASE Reactor Netty 0 9 12 RELEASE Reactor Core 3 3 10 RE
  • 谷歌导航意图

    我正在尝试直接从我的应用程序启动 Google 导航 以便它可以将我从起始地址导航到目标地址 因此 我有起始地址和目的地地址的纬度和经度坐标 并希望获得这些坐标的导航 但我不知道如何提供起始地址 导航仅使用我的 GPS 来获取我当前的信息
  • Swift webview xcode 发布数据

    我有一个网络视图 当前编码如下 let url NSURL string http example com let request NSURLRequest URL url monitorView loadRequest request 这
  • 列出 AWS .NET SDK 中的实例

    我正在编写代码以使用适用于 AWS 的 net SDK 列出实例 ID 和实例类型 我知道我需要使用DescribeInstancesRequest 类 我还认为我需要使用 ArrayList 来存储字符串输出和 foreach 循环来获取
  • 在单个产品页面上显示类别和品牌名称

    在 Woocommerce 中 我正在使用YITH WooCommerce 品牌插件处理产品品牌 我目前正在努力解决 WooCommerce 中我的简短描述下想要的固定文本 我想动态显示产品名称在那段文字中 有效 也是产品类别名称 CATE
  • SVN中的结果代码是什么意思?

    SVN中的结果代码是什么意思 我需要一个快速参考 有关更多详细信息 请参阅 SVNBook 工作副本文件和目录的状态 常见状态 U 工作文件已更新 G 存储库上的更改会自动合并到工作副本中 M 工作副本已修改 C 该文件与repo中的版本冲
  • CMake - 使用错误数量的参数调用 add_executable

    我正在尝试组织一个 C 项目 该项目开始有很多文件 我想创建两个使用 Cmake 共享一些源文件的可执行文件 我在这里发现了一个有趣的过程 如何将源文件添加到另一个文件夹中 以下是我的版本 file GLOB Common sources
  • Google 地图 API 无法绘制不同大陆

    我已经使用谷歌地图 API 在谷歌地图上绘制了一个路径点 我参考了以下页面 https developers google com maps documentation javascript directions 在路线部分中使用航点 并对
  • 如何更改指向已删除的 android-ndk-r9 安装的内置 C/C++ 路径?

    我最近将 NDK 从 android ndk r9 升级到 android ndk r10 确切地说是 r10d Eclipse 是 4 4 Luna Luna 服务版本 1 4 4 1 构建 ID 20140925 1800 Eclips
  • XDocument 获取 XML 文件的一部分

    我有一个很大的 xml 文件 想要获取指定数量的
  • 数组初始化的差异

    在查看源文件时 我看到了两种数组初始化的方法 我想知道之间有什么区别 int value new int 0 and int value next new int 其实没有什么区别 它是Syntactic sugar在java数组声明中 第
  • PHP正则表达式最后一次出现的单词

    我的字符串是 var www domain com public html foo bar folder another 我想从此字符串中删除根文件夹 以仅获取公共文件夹 因为某些服务器内部有多个网站 我的实际正则表达式是 www publ
  • 将文本与 a 标签的底部对齐

    如何将文本置于 li 内的 a 标签的底部 这是我的代码 div ul li a href ter a li li a href redg a li li a href ryer More a li li a href More a li
  • VSCode 中多命令的快捷方式

    我有一个现有的快捷方式可以最大化终端窗口 key ctrl command workbench action toggleMaximizedPanel 我想在快捷方式中添加一个附加命令 以便在终端窗口最大化时将焦点转移到终端窗口 在最小化时