Ative os atalhos do teclado de seleção de camelCase do Xcode no OS X

25

Gasto muito tempo editando texto no Xcode e gostaria de manobrar o texto dentro do restante do Cocoa Text System para oferecer uma experiência idêntica. Existem 3 versões de atalhos do teclado do cursor que uso regularmente no Xcode (mostrando apenas versões avançadas, que não alteram a seleção por questões de brevidade):

  1. + Mover a subpalavra do cursor 1 para a frente (^ camelCase -> camel ^ Case -> camelCase ^)
  2. ⌥ Option+ Mover o cursor 1 palavra para a frente
  3. ⌘ Command+ Mova o cursor para o final da linha

As combinações de teclas padrão do OS X respeitam 2 e 3, mas há uma disparidade com 1. Fora do Xcode, + se comporta como ⌘ Command+ . Não é aplicável terrivelmente muitas vezes, mas cada vez + me leva para o fim de uma linha no Mail ou algo assim, é como um foguete pequeno sai no meu cérebro. É bastante irritante o suficiente que estou disposto a investir em qualquer hackery para "consertar" o comportamento de uma vez por todas.

Para evitar a cobertura de terreno antigo, já conheço esse pequeno detalhe e esta lista de seletores , mas não conheço nenhuma API no Cocoa Text System para seleção de subpalavras. Talvez haja API não documentada em algum lugar?


Nem sempre tento fazer seleções de camelCase fora do Xcode com atalhos de teclado, mas quando quero que o OS X obedeça.

Matt Wilding
fonte
2
No meu mac ^ → muda espaços por padrão, e não se comporta como ⌘ →
CousinCocaine
2
Isso pressupõe que você desabilitou esse atalho nas Preferências do Sistema.
Matt Wilding
Não. No OS X (Mavericks), o comportamento padrão de ⌃ → é trocar de espaço. osxdaily.com/2011/09/06/…
CousinCocaine
Quero também. Eu acho que pode haver uma ferramenta externa como o PuntoSwitcher da Yandex para manipular o cursor de entrada em qualquer caixa de texto.
Даниил Пронин

Respostas:

2

Desculpe, mas o que você quer não é possível.

Você pode tentar adicionar as combinações de teclas XCode que fazem isso

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

no ~/Library/KeyBindings/DefaultKeyBindings.dictarquivo, mas, a menos que o aplicativo seja gravado para responder a esses métodos, ele não funcionará. Como você disse, esses métodos não fazem parte do sistema de texto padrão; portanto, essas chamadas em um aplicativo ficam sem resposta ou você recebe um sinal sonoro do sistema.

Insomniac Software
fonte
0

Para navegar pelo estojo de camelo (também conhecido como subpalavras) para o uso correto

^+ [para mover uma sub-palavra para a esquerda

^+ ]para mover uma sub-palavra para a direita

Eu confirmei isso no OSX 10.10.1 executando o Xcode 6.1.1.

SaxDaddy
fonte
Penso que a questão principal é obter os comandos das subpalavras do Xcode fora desse aplicativo e no restante dos aplicativos padrão.
bmike
@ Mike, talvez seja. Nesse caso, provavelmente seria necessário codificar isso porque o recurso é inerente ao Xcode e não ao SO. Mas seria de se esperar que um usuário do Xcode soubesse disso.
SaxDaddy