移到Xcode中文本的开头
我知道我可以绑定键“移到行首”,但是这忽略了缩进。
我正在寻找的是移动到一行文本的开始,所以:
CGRect example = CGRectMake(view.frame.origin.x, view.frame.origin.y,|
在这个例子中按下一个键将光标移动到“查看”字的开头(char |是光标)。
这是非常烦人的,目前我不得不按3个命令到代码块( cmd <-
, opt ->
, opt <-
)内的文本的开头。
在XCode中没有标准的方法来实现它,所以我写了一个实现这个特性的XCode插件:
https://github.com/insanehunter/XCode4_beginning_of_line
下面覆盖XCode的源代码编辑器键盘动作调度方法,并以增强的方式实现行跳转的开始/结束。
希望它有帮助。
使用选项 + ←跳过整个单词。
(也就是说,按住左箭头键的同时按住该选项 )
我正在使用Xcode 7.2,并能够使我自己的macros自动执行上面提到的3个命令( cmd <-
, opt ->
, opt <-
)。 您可以编辑IDETextKeyBindingSet.plist
文件,该文件定义所有要添加的键绑定。
Mine位于/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet.plist
添加以下内容来创build您自己的macros
<key>Custom Keys</key> <dict> <key>Move to non-whitespace beginning of line</key> <string>moveToBeginningOfLine:, moveSubWordForward:, moveSubWordBackward:</string> </dict>
重新启动xcode并在您的首选项>键绑定选项卡中,search您的自定义macros并将其设置为cmd <-
。 现在,它将运行这3个命令,并有效地将光标移动到行中文本的开头。
实际上,由于Mac OS支持一些Emacs(或Unix)的键绑定,所以有一个更快,更简单的方法来实现这一点。
您可以使用Ctrl-a
跳转到一行的开头。 这意味着,按住“Ctrl”键并按下键盘上的“a”。
有关更多信息,使用也很方便
Ctrl-e
:跳转到一行的结尾
Ctrl-n
:移到下一行
Ctrl-p
:移到上一行
更重要的是,这些快捷键也可以在terminal和文本字段中使用,例如Mac OS上的StackOverflow答案编辑器。
希望有所帮助。
从7.3(不知道什么时候被添加),Xcode默认情况下已经打开了。 “键绑定”首选项窗格中的Cmd现在被绑定到“移动到文本开头”。
就个人而言,这使我疯狂,所以我已经把它改回到“走到起点线”。 但对于那些想要这种行为的人来说,知道现在有一种内置的方式来获取它是很好的。
如果你已经复制了你的键绑定集,你可能还没有看到新的行为。 如果没有,只需在“键绑定”首选项中search“开始”,然后根据自己的喜好进行调整。
我没有一个确切的解决scheme,只是Xcode 4的一个小小的改进。你可以设置一个键盘映射“移动expression式左”(Xcode首选项>键绑定),这是一个多一点Opt←:
s = [NSString string] |
如果| 是光标位置,按下“移动expression式左”键击将把它带到它左边expression式的开头,所以在这种情况下在“[NSString”之前。 选项←只会在“string”之前移动。
(注:我看到一个名为“Move to Left end of line”的动作命令,另一个名为“Move to beginning of line”。根据我的经验,这些在Xcode 4.0.2中的行为完全相同:我就像一个错误,除非我错过了一些东西。)
似乎最简单的方法,正如已经提到的那样
1)转到行首(Cmd +左箭头键)
2)跳到右侧的单词(Alt +右箭头键)
3)跳转到左边的单词(Alt +左箭头键)
不幸的是(Alt +左箭头键)和(Alt +右箭头键)忽略注释,括号等等,因此上面的方法不会总是有效的。 如果这不是问题,那么BetterTouchTool用户也有一个解决scheme。 可以创build一系列的动作(命令),这些动作将被一个接一个地调用,并将其分配给主页button。 为此,打开首选项,转到键盘选项卡,添加新的快捷方式,并将主页button分配给(Cmd +左箭头键)。 然后点击分配其他动作两次,第一次为(Alt +向右箭头键),第二次为(Alt +向左箭头)键命令。
希望这有助于。
在这个Xcode扩展名Linex中 , Line Beginningfunction可以移动到一行中的第一个非空白字符,并在该行和真正的开始之间切换。
适用于Xcode 9,也许是Xcode 8。