在OS X中模仿Xcode的camelCase选择键盘快捷键


25

我花了大量时间在Xcode中编辑文本,我希望在Cocoa文本系统其余部分中的文本周围进行操作,以提供相同的体验。我在Xcode中经常使用3种版本的光标键盘快捷键(为简洁起见,仅显示向前的非选择更改版本):

  1. + 向前移动光标1个子词(^ camelCase-> camel ^ Case-> camelCase ^)
  2. ⌥ Option+ 向前移动光标1个字
  3. ⌘ Command+ 将光标移到行尾

OS X的默认键绑定遵循2和3,但与1存在差异。在Xcode之外,+的行为类似于⌘ Command+ 。这并不总是非常适用,但是每次+ 将我带到Mail的一行末尾时,就像是一个小鞭炮在我脑海中燃起。我很乐意投资任何黑客技术以一劳永逸地“修复”行为,这真是令人讨厌。

为了避免掩盖旧情况,我已经知道了这个小窍门这个选择器列表,但是我不知道可可文本系统中用于子词选择的任何API。也许某处有未记录的API?


我并不总是尝试使用键盘快捷键在Xcode之外进行camelCase选择,但是当我这样做时,我希望OS X服从。


2
在我的Mac上,⌃→默认情况下会切换空格,并且行为不像⌘→
CousinCocaine

2
假设您已在“系统偏好设置”中禁用了该快捷方式。
Matt Wilding 2014年

不。在OS X(小牛)上,⌃→的默认行为是切换空格。osxdaily.com/2011/09/06/...
CousinCocaine

也要 我认为可以有一个像Yandex的PuntoSwitcher这样的外部工具来操纵任何文本框中的输入光标。
ДаниилПронин

Answers:


2

抱歉,无法实现您想要的。

您可以尝试添加执行此操作的XCode键绑定

"^\UF702" = "moveSubWordBackward:";                     /* Ctl-Left Arrow */
"^$\UF702" = "moveSubWordBackwardAndModifySelection:";  /* Ctl-Shift-Left Arrow */
"^\UF703" = "moveSubWordForward:";                      /* Ctl-Right Arrow */
"^$\UF703" = "moveSubWordForwardAndModifySelection:";   /* Ctl-Shift-Right Arrow */
"^\177" = "deleteSubWordBackward:";                     /* ctl-delete */
"^\UF728" = "deleteSubWordForward:";                    /* ctl-forwardDelete */

到您的~/Library/KeyBindings/DefaultKeyBindings.dict文件中,但是除非编写应用程序以响应这些方法,否则它将无法正常工作。如您所说,这些方法不是标准文本系统的一部分,因此应用程序中的这些调用将无法应答,否则您将收到系统提示音。


0

导航驼峰大小写(又称子词)以正确使用

^+ [向左移动子词

^+ ]将子词向右移动

我在运行Xcode 6.1.1的OSX 10.10.1中确认了这一点。


我认为此问题的要点是使Xcode子单词命令在该应用程序之外以及在其他标准应用程序上获得。
bmike

@bmike,也许是。如果是这样,则可能必须对此进行编码,因为该功能是Xcode固有的,而不是OS固有的。但是,人们希望 Xcode用户知道这一点。
SaxDaddy 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.