Faça o Mac OS X "Option-Arrow" funcionar como Windows "Ctrl-Arrow"

20

Confio no comando " Ctrl- " no Windows para navegar pelos documentos de texto.

Essa combinação de teclas útil me levará rapidamente ao início da próxima palavra. Por exemplo, a sequência a seguir ilustra o que aconteceria com a localização do cursor após pressionar sucessivamente Ctrl- - (o "^" representará o cursor):

^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 eu começar a pressionar o botão , ele moverá o cursor para exatamente os mesmos pontos no documento, apenas indo na outra direção (o que é ideal porque a posição do cursor é previsível, o que me leva a ser mais rápido em fazer o meu edições):

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

O Mac OS X possui um atalho de teclado semelhante ( Option- - mapei " Ctrl" para " Option" especificamente para que eu possa obter essa mesma funcionalidade da maneira como me acostumei).

No entanto, " Option- Arrow" leva-me ao final da palavra atual ao usar a tecla de seta para a direita, conforme ilustrado aqui:

^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, o que é pior, ir na outra direção não o leva de volta ao mesmo ponto em que avança, mas o leva ao início da última palavra:

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

Isso é extremamente frustrante para mim, pois preciso alternar entre Windows e Mac com frequência, e muito raramente quero ir para o final da palavra atual (por que eu iria querer isso, a menos que esteja segurando " Shift" também? ) Eu sempre quero pular para o início da próxima palavra.

Estou disposto a fazer alguns esforços para que a versão para Mac funcione da mesma maneira (compre um software, escreva um comando Applescript personalizado vinculado a esses atalhos de teclado), por isso estou procurando sugestões.

Existem ferramentas existentes que mudarão isso para mim?

Como você sugeriria "consertar" isso?

obrigado

EDITAR

Consegui fazer um "Serviço" no Automator e usei o seguinte 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

Em seguida, vinculei este Serviço ao pressionamento de tecla " Command- " usando as configurações de "Teclado" nas Preferências do Sistema.

No entanto, para que isso funcione, tenho que tirar o dedo da Commandtecla ... o que a torna meio inútil. Também é lento e parece não funcionar no aplicativo em que mais preciso (Xcode).

Steve
fonte

Respostas:

22

Veja como você pode obter ⌃ Controlas teclas de seta + para trabalhar como você descreve. Copie a seguinte lista de propriedades para ~/Library/KeyBindings/DefaultKeyBinding.dict(você pode criar o diretório se ele ainda não existir):

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

Isso configurará a ⌃ Controlseta + para navegar até o início da próxima palavra (usando a navegação normal do OS X três vezes: até o final da palavra atual, final da próxima palavra e depois volte para o início da próxima palavra). Também incluí uma versão que funciona ⇧ Shiftpara que você possa selecionar o texto à medida que avança.

Advertência: isso funcionará apenas em aplicativos Cocoa, mas acho que a ⌥ Optionnavegação normal com as setas + também. Além disso, certifique-se de reiniciar seus aplicativos!

jtbandes
fonte
Whoot! Exatamente o que eu estava esperando ... obrigado! Deixe-me tentar, então eu vou marcar a resposta.
Steve
Muito obrigado! Funcionou como um encanto. FYI "Key Bindings" vs "KeyBindings" ... Eu usei "KeyBindings" e funcionou. Não tenho certeza se isso faz diferença. Pena que o Xcode os substitua por suas próprias e menos poderosas vinculações de teclas.
Steve
Opa, sim, eu quis dizer KeyBindings! Os Xcode são ótimos porque você pode navegar pelas subpalavras camelCase.
Jtbandes
Eu gosto da navegação camelCase. Idealmente, eu gostaria do comportamento do Visual Studio no Xcode ... tudo bem.
Steve Steve
Você pode, pelo menos, personalizar os Xcode. Há uma guia nas Preferências para alterar as combinações de teclas.
Jtbandes
5

Coisas que você pode tentar. Não os testei para ver se eles executariam a função que você precisa.

Há um utilitário gratuito e de código aberto para remapear os principais comandos do Mac OS X, chamado DoubleCommand . É uma extensão do kernel, portanto, funciona em um nível muito baixo.

Outro programa gratuito que o pessoal da DoubleCommand recomenda que você faça o check-out é o KeyRemap4MacBook . Você precisa usar um ou outro; eles entrarão em conflito se ambos estiverem instalados no seu Mac.


fonte
1
Usando o KeyRemap4MacBook no OS X 10.11.x para fazer o Control + [Seta] funcionar como no Windows, role para baixo até encontrar Para usuários de PC e marque (para mim, opção seis) "Usar o controle de estilo do PC + Cima / Baixo / Esquerda / Direita " Existem outras opções muito úteis lá. Definitivamente a votação foi positiva e, além disso, não custou mais cem dólares!
John John
1

Depois de anos dos irritantes mapeamentos padrão do OSX, troquei minhas teclas de Comando e Controle e queria que as teclas Control + Seta fornecessem funcionalidade mover-palavra-avançar, mover-palavra-retroceder, em vez de BOL / EOL. A resposta aceita funcionou para mim, exceto com ^ alterado para @, pois agora uso Control em vez de Command. Também mapeei as funções BOL / EOL menos usadas para as combinações de teclas Option + Seta.

{
    "@\UF702" = ("moveWordBackward:");
    "@$\UF702" = ("moveWordBackwardAndModifySelection:");
    "~\UF702" = ("moveToBeginningOfLine:");
    "~$\UF702" = ("moveToBeginningOfLineAndModifySelection:");
    "@\UF703" = ("moveWordForward:", "moveWordForward:", "moveWordBackward:");
    "@$\UF703" = ("moveWordForwardAndModifySelection:", "moveWordForwardAndModifySelection:", "moveWordBackwardAndModifySelection:");    
    "~\UF703" = ("moveToEndOfLine:");
    "~$\UF703" = ("moveToEndOfLineAndModifySelection:");
}
m1k3t
fonte