OSX: modification de la sélection de texte avec ⌘⇧ → et ⌘⇧ ←

10

J'ai choisi un texte en utilisant mon clavier, à partir de la ligne de fond et se déplaçant vers le haut (le | caractère indique la position du curseur):

AAA | {BBB CCC

DDD} EEE FFF

créer une sélection


Maintenant, je voudrais changer la sélection pour qu'elle commence à la fin de la première ligne , c'est-à-dire pour qu'elle ressemble à ceci:

Résultat attendu:

AAA BBB CCC | {

DDD} EEE FFF


Je peux réduire la sélection mot à mot avec :

manipuler la sélection avec les flèches de déplacement d'option


Mais la façon naturelle de le faire serait de passer directement à la fin de la première ligne. Dans de nombreux éditeurs de texte décents, cela fonctionne bien (par exemple Sublime Text 2). Ils gardent également la |position visible lorsque le texte est sélectionné entre deux.

Le comportement par défaut des applications OSX, cependant, est qu'elles ignorent le fait que le curseur est actuellement au début de la sélection, et le déplacer vers la droite devrait supprimer la sélection à cet endroit. Au lieu de cela, étend toujours la sélection de sa fin jusqu'à la fin de la ligne, peu importe où se trouve actuellement le curseur:

Résultat actuel:

AAA {BBB CCC

DDD EEE FFF} |

manipuler la sélection avec les flèches de commande-décalage


Existe-t-il un moyen de faire en sorte que les applications OSX natives se comportent comme prévu?

Je suis sur OSX Yosemite 10.10.2 mais je pense que ce problème existe depuis aussi longtemps que je me souvienne.

Jakub Roztocil
la source
Je peux reproduire cela dans 10.10.1 - peut-être que cela a été corrigé dans la version bêta?
0942v8653
1
Je suis sur Yosemite 10.10.2 (l'ajoutant également à la question maintenant). Mais je pense que cela a toujours été le cas. J'utilise principalement des éditeurs de code avec de bonnes capacités d'édition de texte, mais j'aimerais trouver une solution au niveau du système d'exploitation pour cela.
Jakub Roztocil
1
Veuillez consulter ce document de support Apple qui indique que cmd + shift + flèche droite le fera select text between the insertion point and the end of the current line. La seule ligne dans votre exemple, où la sélection n'inclut pas déjà la fin de la ligne , est la dernière ligne. Donc, le comportement attendu dans OS X est d'étendre la sélection à partir de là, pas de la raccourcir dans la ligne de départ! Je sais que certains éditeurs se comportent différemment, mais ils le font mal, pas le système!
Asmus
1
@Asmus Il y a un petit astérisque après la description de ce raccourci clavier (et bien d'autres) mais il n'y a aucune explication. Une idée de ce que cela (*)signifie?
Jakub Roztocil
1
Aucune idée de ce que cela (*)signifie, mais il est probablement resté des versions précédentes de la documentation. J'ai légèrement mis à jour ma réponse pour inclure l'option de raccourci clavier globale que je connais, mais malheureusement, je suis presque sûr qu'il n'y a aucun moyen d'atteindre ce que vous recherchez. Étant donné que le comportement n'est pas intégré, les applications ne sauraient pas maintenant comment le gérer même si vous pouviez le déclencher.
Asmus

Réponses:

1

Mac n'utilise pas la position du curseur si vous avez une sélection de texte multiple, il considère que le curseur est sur «tout le texte sélectionné».

Vous pouvez le voir si vous utilisez Cmd ⌘ Shift ⇧ au lieu d'
ajouter à la sélection avec Shift ⇧ inclut la sélection précédente.

Pas un correctif, mais une solution de contournement pourrait être de déplacer le curseur à la fin de votre sélection actuelle, en la désélectionnant simultanément, puis Cmd ⌘ Shift ⇧ de sélectionner au début de la ligne.

Tetsujin
la source
Qu'est-ce que ça veut dire? "Une sélection de texte multiple".
Nicolas Barbulesco
1

Donc, selon moi, la navigation dans le texte sur OS X fonctionne (et devrait fonctionner) comme ceci:

  1. Naviguez par ligne (ou document, c'est-à-dire d'énormes blocs de données):

    cmd+ touches fléchées: se déplace par lignes (gauche / droite pour les lignes, haut / bas pour tout le document). Maintenez shiftpour sélectionner

  2. Naviguez par mot (c'est-à-dire de petits morceaux de données):

    alt+ touches fléchées: se déplace par mot (gauche / droite). Maintenez shiftpour sélectionner.

Donc, pour atteindre votre "résultat attendu", vous devez d'abord appuyer sur la flèche droite pour le placer à la fin de votre sélection actuelle, puis sur cmd+ shift+ pour sélectionner la ligne qui y mène.

Lorsque vous déjà avez une sélection:

  1. l'utilisation altdes combinaisons de touches ci-dessus augmentera / diminuera la sélection en fonction de la direction (en modifiant toujours le point final de votre sélection précédente, en supposant que vous avez manqué légèrement le point final ). Il en va de même pour l'ajout de caractères uniques avec les touches Maj + Flèche uniquement.
  2. l' cmdaugmentation du combo dans les deux sens, en supposant que vous ayez quand même sélectionné de gros morceaux de texte .

Mise à jour

Pour faire court: ce que vous voulez n'est pas vraiment possible. Si vous consultez la liste des liaisons de clés système disponibles en exécutant

plutil -convert xml1 /System/Library/Frameworks/AppKit.framework/Resources/StandardKeyBinding.dict -o -|pl|grep -v noop:|ruby -pe '$_.gsub!(/[^ -~\n]/)' | grep -i selection

Vous verrez que même si vous pouvez lier des clés personnalisées à toutes les fonctions de sélection ~/Library/KeyBindings/DefaultKeyBinding.dict , aucune fonction de ce type n'atteint le comportement demandé (car ce comportement n'est pas intégré au système).

Asmus
la source
Je pense qu'Apple Up et Apple Down vont au début et à la fin du document, et ne naviguent pas par page.
Nicolas Barbulesco
1
@NicolasBarbulesco vous avez tout à fait raison, j'avais écrit "document" juste une ligne avant, je ne sais pas pourquoi j'ai écrit "pages" ensuite. Fixé maintenant.
Asmus