Spraw, aby system Mac OS X „Strzałka-opcja” działał jak Windows „Ctrl-Arrow”


21

Korzystam z polecenia „ Ctrl- →” w systemie Windows, aby poruszać się po dokumentach tekstowych.

Ta przydatna kombinacja klawiszy szybko doprowadzi mnie do początku następnego słowa. Na przykład poniższa sekwencja ilustruje, co stanie się z lokalizacją kursora po kolejnych naciśnięciach przycisku Ctrl- →(„^” będzie reprezentować kursor):

^The quick brown fox jumped over the lazy dog
The ^quick brown fox jumped over the lazy dog
The quick ^brown fox jumped over the lazy dog
The quick brown ^fox jumped over the lazy dog
The quick brown fox ^jumped over the lazy dog
...

I jeśli zacznę naciskać ←zamiast tego, przesunie on kursor do dokładnie tych samych miejsc w dokumencie, po prostu pójdzie w innym kierunku (co jest idealne, ponieważ położenie kursora jest przewidywalne, co prowadzi do tego, że jestem szybszy w tworzeniu mojego zmiany):

The quick brown fox ^jumped over the lazy dog
The quick brown ^fox jumped over the lazy dog
The quick ^brown fox jumped over the lazy dog
The ^quick brown fox jumped over the lazy dog
^The quick brown fox jumped over the lazy dog
...

Mac OS X ma podobny skrót klawiaturowy ( Option- →- specjalnie zamapowałem „ Ctrl” na „ Option”, aby uzyskać tę samą funkcjonalność w sposób, do którego się przyzwyczaiłem).

Jednak „ Option- Arrow” prowadzi mnie do końca bieżącego słowa, gdy używasz klawisza strzałki w prawo, jak pokazano tutaj:

^The quick brown fox jumped over the lazy dog
The^ quick brown fox jumped over the lazy dog
The quick^ brown fox jumped over the lazy dog
The quick brown^ fox jumped over the lazy dog
The quick brown fox^ jumped over the lazy dog
...

Co gorsza, pójście w innym kierunku nie prowadzi cię z powrotem do tego samego miejsca, co przejście do przodu, prowadzi do początku ostatniego słowa:

The quick brown fox^ jumped over the lazy dog
The quick brown ^fox jumped over the lazy dog
The quick ^brown fox jumped over the lazy dog
The ^quick brown fox jumped over the lazy dog
^The quick brown fox jumped over the lazy dog
...

Jest to dla mnie niezwykle frustrujące, ponieważ muszę często przełączać się między systemem Windows i komputerem Mac, a bardzo rzadko chcę przejść do końca bieżącego słowa (dlaczego miałbym tego chcieć, chyba że trzymam również „ Shift”? ). I zawsze chce przejść do początku następnego wyrazu.

Jestem gotów dołożyć wszelkich starań, aby wersja dla komputerów Mac działała w ten sam sposób (kup oprogramowanie, napisz niestandardowe polecenie Applescript powiązane z tymi skrótami klawiaturowymi), więc szukam sugestii.

Czy są jakieś istniejące narzędzia, które zmienią to dla mnie?

Jak sugerowałbyś „naprawienie” tego?

Dzięki

EDYTOWAĆ

Udało mi się utworzyć „usługę” w Automatorze i użyłem następującego AppleScript:

on run {input, parameters}

    tell application "System Events" to key code 124 using {option down}
    tell application "System Events" to key code 124

end run

Następnie powiązałem tę usługę z naciśnięciem klawisza „ Command- →” za pomocą ustawień „Klawiatura” w Preferencjach systemowych.

Jednak aby to zadziałało, muszę zdjąć palec z Commandklucza ... co sprawia, że ​​jest to trochę bezcelowe. Jest również powolny i nie działa w aplikacji, w której najbardziej go potrzebuję (Xcode).

Odpowiedzi:


22

Oto, w jaki sposób możesz uzyskać ⌃ Control+ klawisze strzałek, aby działały tak, jak opisano. Skopiuj następującą listę właściwości do ~/Library/KeyBindings/DefaultKeyBinding.dict(możesz utworzyć katalog, jeśli jeszcze nie istnieje):

{
    "^\UF703" = ("moveWordForward:", "moveWordForward:", "moveWordBackward:");
    "^$\UF703" = ("moveWordForwardAndModifySelection:", "moveWordForwardAndModifySelection:", "moveWordBackwardAndModifySelection:");
}

Spowoduje to skonfigurowanie ⌃ Control+ strzałki do przejścia do początku następnego słowa (trzykrotne użycie normalnej nawigacji OS X: do końca bieżącego słowa, do końca następnego słowa, a następnie z powrotem do początku następnego słowa). Dołączyłem również wersję, która działa, ⇧ Shiftdzięki czemu możesz zaznaczać tekst w trakcie podróży.

Zastrzeżenie: działa to tylko w aplikacjach Cocoa, ale myślę, że normalna ⌥ Optionnawigacja + strzałka też. Pamiętaj też o ponownym uruchomieniu aplikacji!


Whoot! Właśnie na to liczyłem ... dziękuję! Pozwól mi spróbować, a następnie zaznaczę odpowiedź.
— Steve,

Dzięki wielkie! Działa jak urok. FYI „Key Bindings” vs. „KeyBindings” ... Użyłem „KeyBindings” i zadziałało. Nie jestem pewien, czy to robi różnicę. Szkoda, że ​​Xcode zastępuje je własnymi, mniej wydajnymi, Key Bindings.
— Steve,

Ups, tak, miałem na myśli KeyBindings! Xcode są całkiem fajne, ponieważ można poruszać się pod słowami camelCase.
— jtbandes

Lubię nawigację camelCase. Idealnie, chciałbym zachowania Visual Studio w Xcode ... no cóż.
— Steve

Możesz przynajmniej dostosować Xcode. W Preferencjach znajduje się zakładka do zmiany przypisań klawiszy.
— jtbandes

5

Rzeczy, których możesz spróbować. Nie testowałem ich, aby sprawdzić, czy wykonają one funkcję, której potrzebujesz.

Istnieje bezpłatne narzędzie typu open source do mapowania poleceń klawiszowych dla systemu Mac OS X o nazwie DoubleCommand . Jest to rozszerzenie jądra, więc działa na bardzo niskim poziomie.

Innym darmowym programem polecanym przez osoby korzystające z DoubleCommand jest KeyRemap4MacBook . Musisz użyć jednego lub drugiego; będą konfliktować, jeśli oba zostaną zainstalowane na komputerze Mac.


1
Używanie KeyRemap4MacBook w systemie OS X 10.11.x, aby Control + [Strzałka] działał jak w systemie Windows, przewiń w dół, aż znajdziesz opcję Użytkownicy komputerów PC, a następnie zaznacz (dla mnie opcja szósta) „Użyj sterowania stylem komputera + Góra / Dół / Lewo / Prawo „. Są tam inne bardzo przydatne opcje. Zdecydowanie podniosłem głosowanie na tę odpowiedź, a ponadto nie kosztowało to dodatkowych stu dolarów!
— John

1

Po latach denerwujących domyślnych mapowań OSX zmieniłem klawisze Command i Control i chciałem, aby klawisze Control + Strzałka zapewniały funkcję przesuwania słowa do przodu, przesuwania słowa do tyłu zamiast BOL / EOL. Akceptowana odpowiedź działała dla mnie, z wyjątkiem ^ zmienionego na @, ponieważ teraz używam Control zamiast Command. Zmapowałem również rzadziej używane funkcje BOL / EOL na kombinacje klawiszy Opcja + Strzałka.

{
    "@\UF702" = ("moveWordBackward:");
    "@$\UF702" = ("moveWordBackwardAndModifySelection:");
    "~\UF702" = ("moveToBeginningOfLine:");
    "~$\UF702" = ("moveToBeginningOfLineAndModifySelection:");
    "@\UF703" = ("moveWordForward:", "moveWordForward:", "moveWordBackward:");
    "@$\UF703" = ("moveWordForwardAndModifySelection:", "moveWordForwardAndModifySelection:", "moveWordBackwardAndModifySelection:");    
    "~\UF703" = ("moveToEndOfLine:");
    "~$\UF703" = ("moveToEndOfLineAndModifySelection:");
}
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.