gpt4 book ai didi

sublimetext3 - Sublime Text 3 中 View 的本地键绑定(bind)

转载 作者:行者123 更新时间:2023-12-04 08:34:28 26 4
gpt4 key购买 nike

是否可以配置仅在给定 View 中有效的键绑定(bind)?来自插件?它应该在除选定 View 之外的所有其他 View 中处于非事件状态。

最佳答案

这可以通过 context在一个键绑定(bind)中,该绑定(bind)仅在非常特定的情况下才有效,并且根据您的需要,您甚至不需要特殊的插件来执行此操作(尽管听起来像您的情况)。
作为简要概述,键绑定(bind)可以选择包含 1 个或多个 contexts确定绑定(bind)是否应该处于事件状态。如果多个上下文应用于同一个键,则必须在绑定(bind)激活之前满足所有上下文。只要它们有context,就可以将相同的键序列绑定(bind)到多个命令(或同一命令的变体)。这消除了他们的歧义。
如果有多个键绑定(bind)到同一个键,则按顺序考虑它们(从最后定义的绑定(bind)开始并向上移动),直到看到一个应用它的上下文,或者看到一个没有上下文的键。因此,绑定(bind)的顺序可能很重要。把最具体的放在文件后面,最不具体的放在后面。
例如,给定这个键绑定(bind):

    { "keys": ["ctrl+shift+h"],
"command": "echo",
"args": {"msg": "Key binding triggered"},
"context": [
{ "key": "setting._my_setting", "operator": "equal", "operand": true },
],
},
此绑定(bind)仅在设置 _my_setting 的地方有效。 bool 值为 true ;如果值为 false或设置未设置,绑定(bind)未激活。
因此,最初,绑定(bind)不会处于事件状态,按下该键将触发碰巧绑定(bind)到此键序列的任何其他命令。
但是,如果您要打开控制台并运行:
view.settings().set("_my_setting", True)
现在,绑定(bind)在您执行此操作时关注的任何文件中都处于事件状态,但在其他任何地方都被禁用。
除了这个上下文(内置在 Sublime 中)只能用于 bool 设置之外,设置的名称或它的交互方式没有什么神奇之处。因此,特别是它遵循设置的层次结构,您可以在以下一个或多个位置添加设置:
  • Preferences.sublime-settings使绑定(bind)在任何地方都处于事件/非事件状态
  • 项目特定设置以使特定窗口中包含的文件中的绑定(bind)处于事件/非事件状态
  • 用于在特定类型的文件中使绑定(bind)处于事件/非事件状态的语法特定设置
  • 在 View 设置中(如上面插件中的示例)使绑定(bind)在特定 View 中处于事件/非事件状态。

  • 列表下方的项目会更快地覆盖项目(因此 view 设置胜过一切,语法设置胜过项目和默认值等)。
    要获得更细粒度的控制或使用除 bool 值之外的其他设置,您需要实现 EventListenerViewEventListener在插件中处理 on_query_context事件,它允许您创建用于绑定(bind)的自定义上下文。
    更多信息请访问 API documentation ;您也可以在 defining custom contexts 上观看此视频以及(免责声明:我是视频的作者)

    关于sublimetext3 - Sublime Text 3 中 View 的本地键绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64864907/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com