Mimic Xcodes Tastaturkürzel für die camelCase-Auswahl in OS X

25

Ich verbringe sehr viel Zeit damit, Text in Xcode zu bearbeiten, und ich möchte, dass das Manövrieren von Text im Rest des Cocoa-Textsystems eine identische Erfahrung bietet. Es gibt 3 Versionen von Cursortastenkürzeln, die ich regelmäßig in Xcode verwende (der Kürze halber werden nur vorwärts gerichtete, nicht auswahlverändernde Versionen angezeigt):

  1. + Cursor 1 Unterwort vorwärts bewegen (^ camelCase -> camel ^ Case -> camelCase ^)
  2. ⌥ Option+ Cursor 1 Wort vorwärts bewegen
  3. ⌘ Command+ Bewegen Sie den Cursor an das Ende der Zeile

Die OS - X Standard keybindings respektieren 2 und 3, aber es gibt einen Unterschied mit 1. Außerhalb von Xcode, + verhält sich wie ⌘ Command+ . Es ist nicht sehr oft anwendbar, aber jedes Mal , + bringt mich zum Ende einer Zeile in Mail oder etwas, es ist wie ein kleiner Kracher in meinem Gehirn erlischt. Es ist nur ärgerlich genug, dass ich bereit bin, in jeden Hacker zu investieren, um das Verhalten ein für alle Mal zu "reparieren".

Um Altlasten zu vermeiden, sind mir dieser kleine Leckerbissen und diese Auswahlliste bereits bekannt , aber ich kenne keine API im Cocoa Text System für die Auswahl von Unterwörtern. Vielleicht gibt es irgendwo eine undokumentierte API?


Ich versuche nicht immer, camelCase-Auswahlen außerhalb von Xcode mit Tastaturkürzeln zu treffen, aber wenn ich das tue, möchte ich, dass OS X gehorcht.

Matt Wilding
quelle
2
Auf meinem Mac wechselt
switches
2
Dies setzt voraus, dass Sie diese Verknüpfung in den Systemeinstellungen deaktiviert haben.
Matt Wilding
Nee. Unter OS X (Mavericks) ist das Standardverhalten von ⌃ → das Wechseln von Leerzeichen. osxdaily.com/2011/09/06/…
CousinCocaine
Willst du es auch. Ich denke, es gibt ein externes Tool wie PuntoSwitcher von Yandex, mit dem Sie den Eingabecursor in einem beliebigen Textfeld manipulieren können.
Даниил Пронин

Antworten:

2

Entschuldigung, aber was Sie wollen, ist nicht möglich.

Sie können versuchen, die entsprechenden XCode-Tastenkombinationen hinzuzufügen

"^\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 */

in Ihre ~/Library/KeyBindings/DefaultKeyBindings.dictDatei, aber es sei denn, die Anwendung ist so geschrieben, dass sie auf diese Methoden reagiert, funktioniert es nicht. Wie Sie bereits sagten, gehören diese Methoden nicht zum Standardtext, sodass diese Aufrufe in einer App nur unbeantwortet bleiben oder Sie einen Signalton erhalten.

Insomniac Software
quelle
0

Zum Navigieren Kamelkasten (aka Unterwörter) zur richtigen Verwendung

^+ [, um ein Unterwort nach links zu verschieben

^+ ], um ein Unterwort nach rechts zu verschieben

Ich habe dies in OSX 10.10.1 mit Xcode 6.1.1 bestätigt.

SaxDaddy
quelle
Ich denke, der Kern dieser Frage ist es, die Xcode-Unterwortbefehle außerhalb dieser einen App und auf den Rest der Standard-Apps zu bekommen.
bmike
@bmike, vielleicht ist es das ja. Wenn ja, müsste man dies wahrscheinlich codieren, da die Funktion in Xcode und nicht im Betriebssystem enthalten ist. Aber man würde hoffen, dass ein Xcode-Benutzer das weiß.
SaxDaddy