OSX: Ändern der Textauswahl mit ⌘⇧ → und ⌘⇧ ←


10

Ich habe Text über meine Tastatur ausgewählt, beginnend in der unteren Zeile und nach oben (das Zeichen | gibt die Cursorposition an):

AAA | {BBB CCC

DDD} EEE FFF

Auswahl erstellen


Jetzt möchte ich die Auswahl so ändern, dass sie am Ende der ersten Zeile beginnt , dh so, dass sie so aussieht:

Erwartetes Ergebnis:

AAA BBB CCC | {

DDD} EEE FFF


Ich kann die Auswahl Wort für Wort reduzieren mit :

Manipulieren Sie die Auswahl mit Option-Shift-Pfeilen


Aber der natürliche Weg, dies zu tun, wäre , direkt zum Ende der ersten Zeile zu springen. In vielen anständigen Texteditoren funktioniert dies einwandfrei (zum Beispiel Sublime Text 2). Sie halten auch die |Position sichtbar, wenn nebenbei Text ausgewählt wird.

Das Standardverhalten von OSX-Apps besteht jedoch darin, dass sie die Tatsache ignorieren, dass sich der Cursor derzeit am Anfang der Auswahl befindet. Wenn Sie ihn nach rechts bewegen, wird die Auswahl dort entfernt. Erweitert stattdessen immer die Auswahl von ihrem Ende bis zum Ende der Zeile, unabhängig davon, wo sich der Cursor gerade befindet:

Tatsächliche Ergebnis:

AAA {BBB CCC

DDD EEE FFF} |

Manipulieren Sie die Auswahl mit Befehls-Shift-Pfeilen


Gibt es eine Möglichkeit, auch native OSX-Apps so zu gestalten, wie sie sich erwarten?

Ich bin auf OSX Yosemite 10.10.2, aber ich denke, dieses Problem ist schon so lange vorhanden, wie ich mich erinnern kann.


Ich kann dies in 10.10.1 reproduzieren - vielleicht wurde es in der Beta behoben?
0942v8653

1
Ich bin auf Yosemite 10.10.2 (füge es jetzt auch der Frage hinzu). Aber ich denke, das war schon immer so. Ich verwende hauptsächlich Code-Editoren mit guten Textbearbeitungsfunktionen, würde aber gerne eine Lösung auf Betriebssystemebene finden.
Jakub Roztocil

1
Schauen Sie sich dieses Apple Support-Dokument an, in dem angegeben ist, dass cmd + Shift + Rechtspfeil dies tun wird select text between the insertion point and the end of the current line. Die einzige Zeile in Ihrem Beispiel, in der die Auswahl noch nicht das Zeilenende enthält , ist die letzte Zeile. Das erwartete Verhalten in OS X besteht also darin, die Auswahl von dort aus zu erweitern und nicht in der Anfangszeile zu verkürzen! Ich weiß, dass sich einige Editoren anders verhalten, aber sie machen es falsch, nicht das System!
Asmus

1
@Asmus Nach der Beschreibung dieser (und vieler anderer) Tastenkombination befindet sich ein kleines Sternchen, aber es gibt keine Erklärung dafür. Irgendeine Idee was das (*)bedeutet?
Jakub Roztocil

1
Keine Ahnung, was das (*)bedeutet, aber es ist wahrscheinlich von früheren Versionen der Dokumentation übrig geblieben. Ich habe meine Antwort leicht aktualisiert, um die mir bekannte globale Option "Nur Schlüsselbindung" aufzunehmen, aber leider bin ich mir ziemlich sicher, dass es keine Möglichkeit gibt, das zu erreichen, wonach Sie suchen. Da das Verhalten nicht integriert ist, können Anwendungen jetzt nicht mehr damit umgehen, selbst wenn Sie es auslösen könnten.
Asmus

Antworten:


1

Der Mac verwendet die Cursorposition nicht, wenn Sie mehrere Texte auswählen. Der Cursor befindet sich auf "Alle ausgewählten Texte".

Sie können dies demonstrieren, wenn Sie Cmd ⌘ Shift ⇧ anstelle von
Hinzufügen zur Auswahl mit Shift ⇧ der vorherigen Auswahl verwenden.

Kein Fix, aber eine Problemumgehung, die den Cursor an das Ende Ihrer aktuellen Auswahl bewegt, gleichzeitig die Auswahl aufhebt und dann Cmd ⌘ Shift ⇧ zum Zeilenanfang auswählt.


Was bedeutet das? "Eine Mehrfachtextauswahl".
Nicolas Barbulesco

1

So wie ich es sehe, funktioniert die Textnavigation unter OS X wie folgt (und wird voraussichtlich funktionieren):

  1. Navigieren Sie pro Zeile (oder Dokument, dh große Datenmengen):

    cmd+ Pfeiltasten: bewegt sich nach Zeilen (links / rechts für Zeilen, nach oben / unten für das gesamte Dokument). Halten Sie shiftzur Auswahl gedrückt

  2. Navigieren Sie pro Wort (dh kleine Datenblöcke):

    alt+ Pfeiltasten: bewegt sich nach Wort (links / rechts). Halten Sie shiftzur Auswahl gedrückt.

Um Ihr "erwartetes Ergebnis" zu erzielen, sollten Sie zuerst den Rechtspfeil drücken, um zum Ende Ihrer aktuellen Auswahl zu gelangen, und dann cmd+ shift+ , um die Linie auszuwählen, die dazu führt.

Wenn Sie bereits haben eine Auswahl:

  1. die Verwendung von altTastenkombination ist über die Auswahl auf Richtung basierend erhöhen / verringern (immer den Endpunkt Ihrer bisherigen Auswahl ändern, vorausgesetzt , dass Sie den Endpunkt etwas verpasst haben ). Gleiches gilt für das Hinzufügen einzelner Zeichen nur mit Umschalt + Pfeiltasten.
  2. Die cmdKombination nimmt in beide Richtungen zu, vorausgesetzt, Sie müssen ohnehin große Textblöcke auswählen .

Aktualisieren

Lange Rede, kurzer Sinn: Was Sie wollen, ist nicht wirklich möglich. Wenn Sie sich die Liste der verfügbaren Systemschlüsselbindungen ansehen, indem Sie ausführen

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

Sie werden sehen, dass ~/Library/KeyBindings/DefaultKeyBinding.dict es keine solche Funktion gibt, die Ihr angefordertes Verhalten erreicht , obwohl Sie benutzerdefinierte Schlüssel an alle Auswahlfunktionen binden können (da dieses Verhalten nicht in das System integriert ist).


Ich denke, dass Apple Up und Apple Down an den Anfang und das Ende des Dokuments gehen und nicht nach Seiten navigieren.
Nicolas Barbulesco

1
@NicolasBarbulesco Sie haben völlig Recht, ich hatte "Dokument" nur eine Zeile zuvor geschrieben, weiß nicht, warum ich als nächstes "Seiten" geschrieben habe. Es wurde jetzt behoben.
Asmus
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.