Fai in modo che Mac OS X "Opzione-Freccia" funzioni come Windows "Ctrl-Freccia"


21

Mi affido al comando " Ctrl- " su Windows per navigare tra i documenti di testo.

Questa utile combinazione di tasti mi porterà rapidamente all'inizio della parola successiva. Ad esempio, la seguente sequenza illustra cosa accadrebbe alla posizione del cursore dopo successive pressioni di Ctrl- (il "^" rappresenterà il cursore):

^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
...

E, se comincio a premere invece, sposta il cursore negli stessi identici punti del documento, andando nella direzione opposta (che è l'ideale perché la posizione del cursore è prevedibile, il che mi porta ad essere più veloce nel rendere il mio modifiche):

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 ha una scorciatoia da tastiera simile ( Option- - Ho mappato " Ctrl" a " Option" in modo specifico per ottenere questa stessa funzionalità nel modo in cui mi sono abituato).

Tuttavia, " Option- Arrow" mi porta alla fine della parola corrente quando si utilizza il tasto freccia destra, come illustrato qui:

^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
...

E, peggio ancora, andare nell'altra direzione non ti riporta nello stesso punto in cui vai avanti, ti porta all'inizio dell'ultima parola:

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
...

Questo è estremamente frustrante per me, dato che devo passare spesso da Windows a Mac e molto raramente voglio andare alla fine della parola corrente (perché dovrei volerlo, a meno che non tenga anche " Shift"? ). Voglio sempre saltare all'inizio della parola successiva.

Sono disposto a fare di tutto per far funzionare la versione Mac allo stesso modo (acquista il software, scrivi un comando Applescript personalizzato legato a queste scorciatoie da tastiera), quindi sto cercando suggerimenti.

Ci sono strumenti esistenti che cambieranno questo per me?

Come consiglieresti di "ripararlo"?

Grazie

MODIFICARE

Sono stato in grado di creare un "Servizio" in Automator e ho utilizzato il seguente 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

Quindi ho collegato questo servizio alla sequenza di tasti " Command- " utilizzando le impostazioni "Tastiera" in Preferenze di Sistema.

Tuttavia, affinché funzioni, devo togliere il dito dal Commandtasto ... il che lo rende inutile. È anche lento e non sembra funzionare nell'applicazione di cui ho più bisogno (Xcode).

Risposte:


22

Ecco come è possibile ottenere ⌃ Control+ tasti freccia per funzionare come descritto. Copia il seguente elenco di proprietà in ~/Library/KeyBindings/DefaultKeyBinding.dict(puoi creare la directory se non esiste già):

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

Questo imposterà ⌃ Control+ freccia per navigare all'inizio della parola successiva (usando tre volte la normale navigazione di OS X: fino alla fine della parola corrente, fine della parola successiva, quindi di nuovo all'inizio della parola successiva). Ho anche incluso una versione che funziona in ⇧ Shiftmodo da poter selezionare il testo mentre vai.

Avvertenza: funzionerà solo con le app Cocoa, ma penso che ⌥ Optionfunzioni anche la normale navigazione + freccia. Inoltre, assicurati di riavviare le tue app!


Whoot! Proprio quello che speravo ... grazie! Fammi provare, quindi segnerò la risposta.
Steve,

Grazie mille! Ha funzionato come un fascino. Cordiali saluti "Key Bindings" vs "KeyBindings" ... Ho usato "KeyBindings" e ha funzionato. Non sono sicuro che faccia la differenza. Peccato che Xcode abbia la precedenza su questi con i propri Key Bindings, meno potenti.
Steve,

Chissà, intendevo KeyBindings! Gli Xcode sono piuttosto carini perché puoi navigare tra le parole d'ordine di camelCase.
jtbandes

Mi piace il nav di camelCase. Idealmente, mi piacerebbe il comportamento di Visual Studio in Xcode ... vabbè.
Steve,

Puoi almeno personalizzare gli Xcode. C'è una scheda nelle Preferenze per modificare le associazioni dei tasti.
jtbandes

5

Cose che potresti provare. Non li ho testati per vedere se eseguiranno la funzione di cui hai bisogno.

Esiste un'utilità open source gratuita per la rimappatura dei comandi da tastiera per Mac OS X chiamata DoubleCommand . È un'estensione del kernel, quindi funziona a un livello molto basso.

Un altro programma gratuito che le persone di DoubleCommand consigliano di provare è KeyRemap4MacBook . Devi usare l'uno o l'altro; entreranno in conflitto se sono entrambi installati sul tuo Mac.


1
Utilizzando KeyRemap4MacBook su OS X 10.11.x per far funzionare Control + [Freccia] come in Windows scorrere verso il basso fino a trovare Per utenti PC e quindi selezionare (per me, opzione sei) "Usa PC Style Control + Su / Giù / Sinistra / Destra ". Ci sono altre opzioni molto utili lì dentro. Sicuramente votando questa risposta e per di più non è costato un centinaio di dollari in più!
Giovanni

1

Dopo anni di fastidiose mappature predefinite di OSX, ho cambiato i miei tasti di comando e controllo e volevo che i tasti Ctrl + Freccia offrissero la funzione sposta-parola-avanti-sposta-parola-indietro anziché BOL / EOL. La risposta accettata ha funzionato per me, tranne con ^ cambiato in @ poiché ora uso Control anziché Command. Ho anche mappato le funzioni BOL / EOL meno utilizzate alle combinazioni di tasti Opzione + Freccia.

{
    "@\UF702" = ("moveWordBackward:");
    "@$\UF702" = ("moveWordBackwardAndModifySelection:");
    "~\UF702" = ("moveToBeginningOfLine:");
    "~$\UF702" = ("moveToBeginningOfLineAndModifySelection:");
    "@\UF703" = ("moveWordForward:", "moveWordForward:", "moveWordBackward:");
    "@$\UF703" = ("moveWordForwardAndModifySelection:", "moveWordForwardAndModifySelection:", "moveWordBackwardAndModifySelection:");    
    "~\UF703" = ("moveToEndOfLine:");
    "~$\UF703" = ("moveToEndOfLineAndModifySelection:");
}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.