移到Xcode中的文本开头

时间:2011-03-09 03:49:06

标签: xcode

我知道我可以将键绑定到“移到行首”,但这会忽略缩进。

我正在寻找的是移动到一行的文本的开头,以便:

CGRect example = CGRectMake(view.frame.origin.x,
                            view.frame.origin.y,|

按下一个键会将光标移动到本例中“view”字的开头(char |是光标)。

目前我必须在代码块(cmd <-opt ->opt <-)内按3条命令才能到达文本的开头,这是非常烦人的。

9 个答案:

答案 0 :(得分:44)

在XCode中没有标准的方法来实现它,所以我编写了一个实现此功能的XCode插件:

https://github.com/insanehunter/XCode4_beginning_of_line

它会覆盖XCode的源编辑器键盘动作调度方法,并以增强的方式实现行跳转的开始/结束。

希望它有所帮助。

答案 1 :(得分:8)

使用选项 + 跳过整个单词。

(这意味着,按住左箭头键时按住选项

答案 2 :(得分:8)

从7.3开始(不确定何时添加),Xcode似乎默认启用了此功能。键绑定首选项窗格中的Cmd-left现在绑定到“移动到文本的开头”。

就个人而言,这让我感到疯狂,所以我把它改回“移动到线的起点”。但对于那些想要这种行为的人来说,最好知道现在有一种内置的方式来获取它。

如果您复制了Key Bindings Set,则可能还没有看到新的行为。如果没有,只需在Key Bindings首选项中搜索“begin”并根据自己的喜好进行调整。

答案 3 :(得分:6)

我正在使用Xcode 7.2,并且能够制作我自己的宏来自动执行上面提到的3个命令(cmd <-opt ->opt <-)。您可以编辑IDETextKeyBindingSet.plist文件,该文件定义了要添加自己的所有键绑定。

我的位于/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet.plist

添加以下内容以创建您自己的宏

<key>Custom Keys</key>
<dict>
    <key>Move to non-whitespace beginning of line</key>
    <string>moveToBeginningOfLine:, moveSubWordForward:, moveSubWordBackward:</string>
</dict>

重新启动xcode并在您的偏好设置&gt; “键绑定”选项卡,搜索您的自定义宏并将其设置为cmd <-。现在它将运行这3个命令并有效地将光标移动到行中文本的开头。

答案 4 :(得分:3)

实际上,有一种更快更简单的方法来实现这一点,因为Mac OS非常支持一些Emacs(或Unix)键绑定。

您可以使用Ctrl-a跳转到某行的开头。这意味着,按住“Ctrl&#39;关键并按'&#39; a&#39;在键盘上。

如需了解更多信息,使用方便也很方便 Ctrl-e:跳到一行的结尾 Ctrl-n:转到下一行
Ctrl-p:转到上一行

此外,这些快捷键还可用于终端和文本字段,例如Mac OS上的StackOverflow应答编辑器。

希望有所帮助。

答案 5 :(得分:2)

我没有一个确切的解决方案,只是对Xcode 4稍作改进。你可以设置一个键盘映射“Move Expression Left”(Xcode prefs&gt; Key Bindings),这比Opt←多一点:

s = [NSString string] |

如果|是光标位置,按下“向左移动表情”按键会将它带到左侧表达式的开头,所以在那种情况下“[NSString”之前。选择←只会在“字符串”之前移动。

(旁注:我确实看到一个名为“Move to left end of line”的动作命令,另一个名为“Move to line of line”。根据我的经验,这些在Xcode 4.0.2中的行为完全相同:这对我来说就像一个错误,除非我遗漏了什么。)

答案 6 :(得分:1)

在XCode 10上测试:

第1步:通过文本编辑器打开下一个路径中的文件

 /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/Resources/IDETextKeyBindingSet.plist

在文件末尾添加下一个元素:

<key>Sublime Commands</key>
<dict>
    <key>Cut Current Line</key>
    <string>selectLine:, cut:</string>
    <key>Copy Current Line</key>
    <string>selectLine:, copy:</string>
    <key>Duplicate Current Line</key>
    <string>selectLine:, copy:, moveToBeginningOfLine:, paste:, moveToEndOfLine:</string>
    <key>Delete Current Line</key>
    <string>selectLine:, deleteToEndOfLine:, moveToEndOfLine:</string>
    <key>Move To First Char In Line</key>
    <string>moveToBeginningOfLine:, moveSubWordForward:, moveSubWordBackward:</string>
</dict>

上一个最后一个键“ 移至行中的第一个字符 ”会满足您的要求,但是我也提到了其他键。

现在保存文件。

第二步:关闭XCode并重新打开。

第3步::导航到xcode偏好设置中的键盘绑定,然后分配快捷方式。

XCode->首选项->按键绑定 然后搜索“ 移至行中的第一个字符 ”并分配快捷方式。

enter image description here

答案 7 :(得分:0)

如上所述,似乎最简单的方法是

1)转到行的开头(Cmd +左箭头键)

2)跳到右边的字(Alt +右箭头键)

3)跳到左侧单词(Alt +左​​箭头键)

不幸的是(Alt +左​​箭头键)和(Alt +右箭头键)忽略了注释,括号等,因此上述方法并不总是有效。如果这不是问题,那么BetterTouchTool用户也有一个解决方案。可以创建一系列将一个接一个地调用的动作(命令)并将其分配给Home按钮。要执行此操作,请打开首选项,转到“键盘”选项卡,“添加新快捷方式”,然后将“主页”按钮分配给(Cmd +左箭头键)。然后单击“分配其他操作”两次,第一个用于(Alt +向右箭头键),第二个用于(Alt +向左箭头)键命令。

希望这有帮助。

答案 8 :(得分:0)

在此Xcode扩展程序Linex中,功能Line Beginning可以移动到一行中的第一个非空白字符,并在该字符与实际开头之间切换。

适用于Xcode 9,也许是Xcode 8。