renshuo/dsh-emacs-keys ↗★ 0

dsh-emacs-keys

为 Web 界面提供 Emacs 风格的快捷键支持 适合习惯 Emacs 键位、希望在 Web 端高效操作的开发者。

套件
dsh-emacs-keys
相容性
待驗證
版本
0.2.0
授權
GPL-3.0
最近更新
2026年9月18日

安裝

此插件尚未提供可驗證的 bundle,或相容性檢查未通過。請先閱讀倉庫說明。 閱讀完整 README ↗

使用

激活后无需配置即可使用。内置默认键位(节选):

键作用上下文
C-p / C-n上/下滚动对话;输入框内为上/下一行全局 / 输入框
C-b / C-f后移 / 前移一个字符输入框
M-b / M-f后移 / 前移一个单词输入框
C-a / C-e行首 / 行尾输入框
C-k删除到行尾(进 kill-ring)输入框
C-w / M-w剪切 / 复制选中区域任何焦点
C-y / M-yyank 粘贴 / 轮换粘贴任何焦点
C-SPC设置标记(mark)输入框
C-x C-x交换点与标记前缀序列
C-x k / C-x n / C-x p关闭 / 下一个 / 上一个会话前缀序列
C-s / C-ri-search 前向 / 后向全局
M-← / M-→上一个 / 下一个会话全局
C-= / C-- / C-0字号增大 / 减小 / 重置全局
C-g取消(keyboard-quit)全局
C-x C-r热重载配置文件前缀序列

完整键位见设置页,或直接读 emacs-keybindings.json。

配置

快捷键配置在工作区根目录的 emacs-keybindings.json,结构为功能树:

{
  "categories": [
    {
      "name": "区域操作(任何焦点)",
      "context": "region",
      "bindings": {
        "region.kill": { "key": "C-w", "label": "剪切选中区域(进 kill-ring)" }
      }
    }
  ]
}
  • Emacs 记法:C=Ctrl、M=Alt、S=Shift、SPC=空格;序列以空格分隔(如 "C-x k")
  • context 分发层(与 Emacs 的 buffer/global 语义对应):
    • region —— 任何焦点上下文都生效(最先匹配)
    • global —— 仅输入框外生效
    • editing —— 仅输入框内生效
    • prefix:C-x —— C-x 前缀序列(键名为序列最后一个键)
    • prefix-start —— 前缀启动键
  • 同一按键可在不同 context 绑定不同功能(如 C-p 在 global 是滚动、在 editing 是上一行)
  • 修改 key/label/增删分类均为纯配置操作;新增 功能ID 需在 _body_config_client.js 的 IMPL 注册表中登记对应实现
  • 改完按 C-x C-r 热重载;配置文件缺失或非法时自动回退到内置默认树(行为与上表一致)