Wie wähle ich eine Zeile unter OSX aus?

8

Ich bearbeite Text. Eine umständliche Möglichkeit, eine Zeile auszuwählen, besteht darin, zum Zeilenanfang zu gehen (cmd <-) und dann die gesamte Zeile bis zum Ende auszuwählen (Umschalt-cmd ->). Kann ich es besser machen

Auch Verknüpfungen zum Schneiden und Speichern der Linie in einem Puffer wären zu begrüßen. (cmd D) speichert die Zeile nicht in einem Puffer.

Dávid Natingga
quelle
1
In welchem ​​Programm bearbeiten Sie Text?
ForeverWintr
Meistens in Eclipse im damaligen Terminal, aber ich hatte gehofft, wenn möglich eine allgemeine Lösung für jede Anwendung zu finden.
Dávid Natingga
Auf einer vollständigen Tastatur in OS X Home wählt das Shift-Ende die gesamte Zeile aus, aber Sie haben wahrscheinlich keine vollständige Tastatur. Auch in den meisten Apps funktioniert es, den Cursor am Zeilenanfang zu positionieren und dann die Umschalttaste gedrückt zu halten, indem der Abwärtspfeil gedrückt wird.
SDJuan

Antworten:

10

Ich benutze immer folgendes:

  • cmd - Left arrow um an den Anfang der Zeile zu gelangen
  • shift + cmd + right arrow um die Linie zu markieren
  • cmd - C(oder cmd - X) um die markierte Linie in die Zwischenablage zu kopieren (oder auszuschneiden)

Dann kann ich gehen, wohin ich will, und die Zeile mit einfügen cmd - v.

Da das MacOS jedoch stark an ein grafisches Benutzerinterface gebunden ist, ist die Verwendung ohne Maus möglich, aber manchmal - wie in Ihrem Fall - ist ein Tastendruck mehr als gewünscht erforderlich.

heiglandreas
quelle
1
Fast rechts: Umschalt + cmd - Pfeil nach rechts, um die Linie zu markieren, NICHT Umschalt + cmd - Abwärtspfeil.
Kevin Le - Khnle
1
Umschalt + cmd + Abwärtspfeil markiert die aktuelle Zeile mit dem Zeilenumbruchzeichen, Umschalt + cmd + Rechtspfeil markiert die Zeile ohne das Zeilenumbruchzeichen. Also haben wir beide recht;)
heiglandreas
5

Die meisten Apps (Terminal, TextEdit, URL / Suchleiste von Safari usw.), die Texteingaben akzeptieren, berücksichtigen Standard-Tastenkombinationen (nicht sicher, welcher Standard ... ANSI, ASCII?)

control+ a: Zeilenanfang

control+ e: Zeilenende

Also control+ shift+ a or e, um eine Linie abhängig von Ihrer Position auszuwählen.

Ebenfalls:

control+ shift+ k: bis zum Zeilenende töten

control+ shift+ y: ziehen (aus Puffer)

Mit dem bindkeyBefehl im Terminal kann eine vollständige Liste erstellt werden , obwohl nicht alle in allen Apps funktionieren.

Nevin Williams
quelle
1
OS X-Textansichten verwenden keine Readline, sondern unterstützen nur viele der gleichen Tastenkombinationen wie Readline im Emacs-Modus. Cu, C- @ und Cw sollten standardmäßig nicht in Vanille-Textansichten funktionieren, obwohl Sie sie in DefaultKeyBinding.dict definieren können.
Lri
Ich habe alles vor dem Posten getestet ... außer ich habe es an einer Eingabeaufforderung gemacht. doh.
Nevin Williams
Das ist schön, aber ich suche immer noch nach etwas, das global funktioniert.
Louis Waweru
2

Sie können ~/Library/KeyBindings/eine Eigenschaftsliste wie folgt erstellen und speichern DefaultKeyBinding.dict:

{
    "~l" = selectParagraph:;
    "~z" = (selectParagraph:, delete:);
    "~x" = (selectParagraph:, cut:);
    "~c" = (selectParagraph:, copy:);
}

Nach dem erneuten Öffnen von Anwendungen sollte beispielsweise ⌥L in den meisten nativen Textansichten eine Zeile auswählen. Es funktioniert jedoch nicht in Eclipse, Terminal oder Xcode. Weitere Informationen finden Sie im Artikel zum Cocoa Text System oder auf meiner Website .

Eine andere Möglichkeit besteht darin, KeyRemap4MacBook zu verwenden und so etwas wie private.xml zu speichern :

<?xml version="1.0"?>
<root>
<item>
<name>test</name>
<identifier>test</identifier>
<not>TERMINAL</not>
<not>EMACS</not>
<not>VIRTUALMACHINE</not>
<not>ECLIPSE</not>
<autogen>__KeyToKey__ KeyCode::L, VK_OPTION | ModifierFlag::NONE, KeyCode::A, ModifierFlag::CONTROL_L, KeyCode::E, ModifierFlag::CONTROL_L | ModifierFlag::SHIFT_L, KeyCode::CURSOR_RIGHT, ModifierFlag::SHIFT_L</autogen>
</item>
<item>
<name>test2</name>
<identifier>test2</identifier>
<only>ECLIPSE</only>
<autogen>__KeyToKey__ KeyCode::L, VK_OPTION | ModifierFlag::NONE, KeyCode::CURSOR_LEFT, ModifierFlag::COMMAND_L, KeyCode::CURSOR_RIGHT, ModifierFlag::COMMAND_L | ModifierFlag::SHIFT_L, KeyCode::CURSOR_RIGHT, ModifierFlag::SHIFT_L</autogen>
</item>
</root>

In den meisten Anwendungen wird ⌃A an den Anfang einer nicht umschlossenen Zeile und ⌘ ← an den Anfang einer umbrochenen Zeile verschoben, aber ⌃A scheint in Eclipse nicht zu funktionieren.

In der Quelle finden Sie die wichtigsten Codewerte und vordefinierten Einstellungen .

Lri
quelle
1

Ich habe eine Lösung gefunden , die anscheinend für alle Cocoa-Apps funktioniert: Verhalten Sie die home& end-Tasten wie Nicht-Apple-Computer (gehen Sie zum Anfang / Ende einer Zeile anstelle eines gesamten Dokuments).

Eine Datei ~/Library/KeyBindings/DefaultKeyBinding.dictmuss Folgendes enthalten:

{
    /* home */
    "\UF729"  = "moveToBeginningOfLine:";
    "$\UF729" = "moveToBeginningOfLineAndModifySelection:";

    /* end */
    "\UF72B"  = "moveToEndOfLine:";
    "$\UF72B" = "moveToEndOfLineAndModifySelection:";
}

Wenn die Datei oder das Verzeichnis nicht vorhanden ist, kopieren Sie das obige Codefragment in Ihr ... Pasteboard, öffnen Sie das Terminal und geben Sie die beiden folgenden Befehle ein:

mkdir ~/Library/KeyBindings
pbpaste > ~/Library/KeyBindings/DefaultKeyBinding.dict

Möglicherweise muss die App neu gestartet werden, damit sie sich wie erwartet verhält.

Louis Waweru
quelle
1

Ich bin überrascht, dass niemand diesen erwähnt hat

Umschalt + CMD + Pfeil nach links (oder Pfeil nach rechts, wenn Sie am Anfang stehen)

Sharadh Deshpande
quelle
Nein, @heiglandreas hat es in seiner Antwort erwähnt (nicht explizit, aber er hat es getan). Siehe die zweite Kugel.
C0deDaedalus
1

Einer der Vorteile von macOS gegenüber (WIN / Linux) sind die globalen Tastenkombinationen im Emacs-Stil in fast jedem Textfeld (eine Ausnahme ist Microsoft Office für Mac, das diese Tastenkombinationen ärgerlich neu definiert ...).

In Bezug auf diese Frage benutze ich immer C-a, um den Kopf der Zeile zu erreichen, C-S-ebis zum Ende der Zeile auszuwählen und dann 'CMD-c', um die zu kopieren.

Wenn Sie zufällig eine Zeile haben (die mit einem \ n endet), die viele wörtliche Zeilen kreuzt, würde ich normalerweise Folgendes tun:

1) C-azum Anfang der Linie gehen

2) C-num den Anfang der nächsten wörtlichen Zeile zu beginnen

3) C-bum ein Zeichen zurückzugehen

4) C-S-abis zum Zeilenübergang auswählen

5) CMD-cum den Inhalt zu kopieren

Könnte eine komplexe Lösung sein, sollte aber in den meisten Textfeldern unter macOS funktionieren.

Phye
quelle
0

control+ shift+aef

( Geben Sie aef ein, während Sie Strg und Umschalt gedrückt halten.)

Dies ergibt das gleiche Ergebnis wie ein Dreifachklick auf die aktuelle Zeile.

Beachten Sie, dass dies die nachfolgende EOL in die Auswahl einbezieht. Wenn Sie das nicht möchten, lassen Sie das f weg .

Als Bonus drücken Sie nach f wiederholt n , um mehrere Zeilen auszuwählen.

Getestet in Xcode und TextEdit.

jedwidz
quelle