Mimic Xcode's CamelCase seleziona scorciatoie da tastiera in OS X

25

Trascorro molto tempo a modificare il testo in Xcode, e mi piacerebbe che le manovre intorno al testo all'interno del resto del sistema di testo Cocoa offrissero un'esperienza identica. Esistono 3 versioni di scorciatoie da tastiera del cursore che uso regolarmente in Xcode (solo per mostrare le versioni in avanti, che non alterano la selezione per brevità):

  1. ^ + Muove il cursore 1 sottocategoria in avanti (^ camelCase - > camel ^ Case - > camelCase ^)
  2. ⌥ Opzione + Sposta il cursore 1 parola in avanti
  3. ⌘ Comando + Sposta il cursore alla fine della riga

Le associazioni di tasti predefinite di OS X rispettano 2 e 3, ma c'è una disparità con 1. Al di fuori di Xcode, ^ + si comporta come ⌘ Comando + . Non è applicabile terribilmente spesso, ma ogni volta che ^ + mi porta alla fine di una riga in Mail o qualcosa del genere, è come se un piccolo petardo esplodesse nel mio cervello. È abbastanza fastidioso che io sia disposto a investire in qualsiasi hacker per "sistemare" il comportamento una volta per tutte.

Per evitare di coprire il vecchio terreno, sono già a conoscenza di questo piccolo boccone e questo elenco di selettori , ma non sono a conoscenza di alcuna API nel sistema di testo Cocoa per la selezione delle parole secondarie. Forse ci sono API non documentate da qualche parte?

Non cerco sempre di fare selezioni camelCase fuori da Xcode con scorciatoie da tastiera, ma quando lo faccio voglio che OS X obbedisca.

    
posta Matt Wilding 15.01.2013 - 18:04
fonte

2 risposte

2

Scusa ma ciò che desideri non è possibile.

Potresti provare ad aggiungere le associazioni di tasti XCode che fanno questo

"^\UF702" = "moveSubWordBackward:";                     /* Ctl-Left Arrow */
"^$\UF702" = "moveSubWordBackwardAndModifySelection:";  /* Ctl-Shift-Left Arrow */
"^\UF703" = "moveSubWordForward:";                      /* Ctl-Right Arrow */
"^$\UF703" = "moveSubWordForwardAndModifySelection:";   /* Ctl-Shift-Right Arrow */
"^7" = "deleteSubWordBackward:";                     /* ctl-delete */
"^\UF728" = "deleteSubWordForward:";                    /* ctl-forwardDelete */

nel tuo file ~/Library/KeyBindings/DefaultKeyBindings.dict ma a meno che l'applicazione non venga scritta per rispondere a questi metodi, non funzionerà. Come hai detto, questi metodi non fanno parte del sistema di testo standard, quindi queste chiamate in una app rimarranno senza risposta o riceverai un segnale acustico di sistema.

    
risposta data 18.12.2014 - 10:12
fonte
0

Per esplorare il caso dei cammelli (anche sotto-parole) a destra usa

^ + [ per spostare una parola secondaria a sinistra

^ + ] per spostare una parola secondaria a destra

L'ho confermato in OSX 10.10.1 con Xcode 6.1.1.

    
risposta data 20.12.2014 - 07:37
fonte

Leggi altre domande sui tag