Skróty klawiaturowe wyboru naśladujące Xcode naśladujące Xcode w OS X.

25

Bardzo dużo czasu spędzam na edytowaniu tekstu w Xcode i chciałbym manewrować wokół tekstu w pozostałej części systemu tekstowego Cocoa, aby zapewnić identyczne wrażenia. Istnieją trzy wersje skrótów klawiaturowych kursora, których regularnie używam w Xcode (dla zwięzłości pokazuję tylko wersje do przodu, nie zmieniające wyboru):

  1. + Przesuń kursor o 1 słowo do przodu (^ camelCase -> camel ^ Case -> camelCase ^)
  2. ⌥ Option+ Przesuń kursor o 1 słowo do przodu
  3. ⌘ Command+ Przesuń kursor na koniec linii

Domyślne skróty klawiszowe OS X dotyczą 2 i 3, ale istnieje rozbieżność z 1. Poza Xcode, + zachowuje się jak ⌘ Command+ . Nie stosuje się go strasznie często, ale za każdym razem, gdy + zabiera mnie do końca wiersza w Mail lub coś w tym stylu, przypomina to małą petardę w mojej głowie. To po prostu irytujące, że jestem skłonny zainwestować w jakikolwiek hacker, aby „naprawić” zachowanie raz na zawsze.

Aby uniknąć pokrycia starego terenu, już wiem o tym małym smakołyku i tej liście selektorów , ale nie znam żadnego interfejsu API w systemie tekstowym Cocoa do wybierania podsłów. Może gdzieś jest nieudokumentowane API?


Nie zawsze próbuję wybierać camelCase poza Xcode za pomocą skrótów klawiaturowych, ale kiedy chcę, chcę, żeby OS X był posłuszny.

Matt Wilding
źródło
2
Na moim komputerze Mac ⌃ → domyślnie przełącza spacje i nie zachowuje się jak ⌘ →
CousinCocaine
2
Zakłada się, że wyłączyłeś ten skrót w Preferencjach systemowych.
Matt Wilding
Nie. W OS X (Mavericks) domyślnym zachowaniem ⌃ → jest zmiana spacji. osxdaily.com/2011/09/06/…
CousinCocaine
Też tego chcę. Myślę, że może istnieć narzędzie zewnętrzne, takie jak PuntoSwitcher firmy Yandex, do manipulowania kursorem wejściowym w dowolnym polu tekstowym.
Даниил Пронин

Odpowiedzi:

2

Przepraszamy, ale to, czego chcesz, nie jest możliwe.

Możesz spróbować dodać skróty klawiszowe XCode, które to robią

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

do ~/Library/KeyBindings/DefaultKeyBindings.dictpliku, ale jeśli aplikacja nie zostanie napisana w odpowiedzi na te metody, nie będzie działać. Jak już powiedziałeś, te metody nie są częścią standardowego systemu tekstowego, więc te połączenia w aplikacji pozostaną bez odpowiedzi lub usłyszysz sygnał dźwiękowy systemu.

Oprogramowanie Insomniac
źródło
0

Do nawigacji po wielbłądach (czyli pod słowami) właściwe użycie

^+, [aby przesunąć słowo podrzędne w lewo

^+, ]aby przesunąć słowo podrzędne w prawo

Potwierdziłem to w OSX 10.10.1 z uruchomionym Xcode 6.1.1.

SaxDaddy
źródło
Myślę, że sedno tego pytania polega na tym, aby polecenia pod słowami Xcode znajdowały się poza jedną aplikacją i resztą standardowych aplikacji.
bmike
@bike, może tak jest. Jeśli tak, prawdopodobnie należy to zakodować, ponieważ funkcja ta jest nieodłącznym elementem Xcode, a nie systemu operacyjnego. Ale można mieć nadzieję, że użytkownik Xcode to wie.
SaxDaddy,