ctrl+shift+p filters: :st2 :st3 :win :osx :linux
浏览

程序化按键绑定

VonHeikemen ST3

使用Python在Sublime Text中声明您的按键绑定

标签 keymap

详细信息

安装数量

  • 总数 700
  • Win 593
  • Mac 75
  • Linux 32
2021年8月6日 2021年8月5日 2021年8月4日 2021年8月3日 2021年8月2日 2021年8月1日 2021年7月31日 2021年7月30日 2021年7月29日 2021年7月28日 2021年7月27日 2021年7月26日 2021年7月25日 2021年7月24日 2021年7月23日 2021年7月22日 2021年7月21日 2021年7月20日 2021年7月19日 2021年7月18日 2021年7月17日 2021年7月16日 2021年7月15日 2021年7月14日 2021年7月13日 2021年7月12日 2021年7月11日 2021年7月10日 2021年7月9日 2021年7月8日 2021年7月7日 2021年7月6日 2021年7月5日 2021年7月4日 2021年7月3日 2021年7月2日 2021年7月1日 2021年6月30日 2021年6月29日 2021年6月28日 2021年6月27日 2021年6月26日 2021年6月25日 2021年6月24日 2021年6月23日
Windows 0 0 0 0 0 0 1 0 2 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 2 0 0 0 0 0 0 0
Mac 1 1 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0
Linux 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0

README

源代码
raw.githubusercontent.com

Sublime Text程序化按键绑定

使用Python的全功能来声明您的按键绑定。

仅想象使用此API编写您的绑定

prefix_origami = "ctrl+w"

def keybinding(bind, **kwargs):
  command = kwargs.get('command')

  # Move between selections in overlay
  bind(["alt+k"], "move", overlay_visible, by="lines", forward=False)
  bind(["alt+j"], "move", overlay_visible, by="lines", forward=True)

  # Safe quit
  bind(["ctrl+q"], [command("close_workspace"), command("exit")])

  # Plugin: Origami
  bind([prefix_origami], "noop") # Disable the default behavior of ctrl+w
  bind([prefix_origami, "q"], "close")
  bind([prefix_origami, "c"], "destroy_pane", direction="self")



# Contexts
overlay_visible = {
  "key": "overlay_visible",
  "operator": "equal",
  "operand": True
}

入门

安装

推荐

通过包控制安装 Programmatic Key Bindings

  1. 通过按下 Ctrl/+Shift+p 打开命令面板
  2. 然后选择 包控制:安装包
  3. 搜索 Programmatic Key Bindings 并按下 ↲ Enter

手动

  1. 克隆或下载此存储库,如有必要,(重新)将文件夹命名为 Programmatic Key Bindings
  2. 将文件夹移动到您的Sublime Text /Packages 内。(在 偏好设置 > 浏览包… 中)

用法

使用默认命令

此插件仅向Sublime Text添加一个命令

[
  {
    "caption": "Sublime Programmatic Key Bindings - Compile Default",
    "command": "spk_key_binding",
    "args": {
      "bindings": "$packages/User/Programmatic Key Bindings/keybindings.py",
      "destination": "$packages/User/Programmatic Key Bindings/Default ($platform).sublime-keymap"
    }
  }
]

请确保指向 bindings 的文件存在,并且可以在目录中创建 destination。在这里,$packages 指的是您的Sublime Text包所在的目录。

一旦创建了文件,就创建一个名为 keybinding 的函数。此函数将接受两个参数。第一个参数收集您的按键绑定数据。第二个是辅助函数,仅在您需要将多个命令绑定到按键时使用。

def keybinding(bind, **kwargs):
  command = kwargs.get('command')

  # Your code...

在此函数执行后,将在您的“用户文件夹”中的 Programmatic Key Bindings 目录下创建一个 .sublime-keymap 文件。Sublime Text将捕获对该文件的任何更改,并将重新加载您的按键绑定,以便更改生效(您应该能够立即使用它们;如果想要确保,请重置Sublime)。

这意味着,此插件在运行时不会做任何事情。在创建 .sublime-keymap 后,所有操作都由Sublime Text的内部机制掌控。

无论如何,准备好了之后,在命令面板中搜索“Sublime 程序化快捷键 - 编译默认”并运行它。

创建您自己的命令

如果您想管理您的主要快捷键映射,即用户文件夹根目录中的那个,您需要创建一个新的命令。

首先,在您的用户文件夹中创建一个名为 Default.sublime-commands 的文件。在那里您可以定义您的自定义命令。

[
  {
    "caption": "Update root key bindings",
    "command": "spk_key_binding",
    "args": {
      "bindings": "$packages/User/keybindings.py",
      "destination": "$packages/User/Default.sublime-keymap"
    }
  }
]

现在您可以开始了。请确保 keybindings.py 存在,并且包含您需要的代码。在命令面板中搜索“更新根快捷键”,运行它并享受。

用户绑定 API

也被称为 keybindings.py,您只需要在那里是 keyblocking 函数。

函数 bind

bind(<keys>, <command>, ...[context], **kwargs)

第一个参数是要绑定的键的数组。

第二个参数是要运行的命令。这可能是一个字符串或命令数组。此插件允许您通过传递数组绑定一系列命令,但由于这不是 Sublime 的内置功能,您需要使用在 kwargs 中提供的辅助函数,这个函数叫作 command

command(<name>, **kwargs)

command 以命令的名称作为第一个参数,其余的关键字参数将是您要运行的命令的参数。

回到bind. 第一个和第二个参数是必需的,其余的位置参数可以是“上下文对象”

如果您的命令不是一系列的话,bind 的关键字参数将成为您要运行的命令的参数。

支持

如果您发现这个插件有用并想支持我的努力,请买我一杯咖啡 ☕

buy me a coffee