首页 > 解决方案 > 在 macOS 中自定义 Option-Delete(和其他与单词相关的快捷方式)的单词边界?

问题描述

是否可以更改⌥⌫(选项+删除)的行为以包含某些字符,例如句点,作为单词边界?

例如,在 中some.variable,我希望 ⌥⌫ 删除句号,但它当前删除了整个字符串。下面的截屏视频显示了使用 ⌥⇧← 的行为。

截屏 GIF

标签: macostextkeyboard-shortcutstextselection

解决方案


自 Cocoa 时代以来,我一直在寻找解决这个问题的方法,据我所知,没有办法自定义“Option-Delete”字分隔符(字边界)列表。除了我自己的实验之外,我的这个结论主要基于可以在以下 3 个 URL(从最旧到最近更新)中找到的大量 MacOS 键绑定修改:

  1. 自定义 Cocoa 文本系统(大约 2006 年)
  2. DefaultKeybinding.dict(大约在 2016 年,之前在 URL “lri.me”上的一些信息)
  3. 键绑定——BrettTerpstra.com(最后更新于 2018 年)

AFAIK,MacOS 上的单词边界默认为空格,无法更改。[如果最近对 MacOS 文本输入系统进行了根本性更改,则此结论无效]。

众所周知,许多 MacOS 键盘快捷键都基于 eMacs 风格的“键盘和弦”,而不是 Vim 风格的“模态编辑”。实际上,上面引用的大部分 Keybinding 工作都涉及重新映射这些和弦。Vim 当然以具有可自定义的分隔符列表而闻名,它是 (例如) 和 and (参见 vimhelp.org ) 之间差异wW移动的基础bB

已经有一些扩展试图将“Vim 风格”编辑带入 MacOS,其中之一是 Karabiner。Karabiner(现在重新编写/更新为Karabiner-Elements)曾经有一种称为“Ubiquitous_Vim”的模式。但是,如果没有操作系统级别的“钩子”个人测试,则表明(例如)向后移动b并且工作方式相同(即 Vim和 VimB之间没有区别,请参阅此 StackOverflow 帖子)。wordWORD

虽然我无法找到修改 MacOS 默认“单词边界”列表的方法,但如果 Vim 风格的编辑确实吸引您,那么您可以尝试安装Vim-Anywhere之类的项目,它使您能够 1.当您需要输入文本时,使用 MacOS 键盘快捷键打开 Vim 窗口,并且 2. 当您关闭 Vim 窗口时,会自动将您的文本复制到 MacOS 系统剪贴板。有关详细信息,请参阅此 OSTechNix 文章:“如何使用 Vim 编辑器在任何地方输入文本”


推荐阅读