927 Stimmen

Wie man den Cursor im OS X Terminal wortweise bewegt

Ich kenne die Kombination Ctrl + A um an den Anfang des aktuellen Befehls zu springen, und Ctrl + E um zum Ende zu springen.

Aber gibt es eine Möglichkeit, Wort für Wort zu springen, wie Alt + / in Cocoa-Anwendungen tut?

2 Stimmen

Welche Shell verwenden Sie? Bash?

4 Stimmen

ITerm2 ist so viel schöner als das eingebaute Terminal. Ich habe unten eine Anleitung gepostet, wie man die Tastatur anpassen kann :)

2 Stimmen

Warum wird dies nicht auf den Superuser übertragen?

80voto

Peter Hilton Punkte 16948

Ich habe Alt + / Arbeiten: offen Voreinstellungen " Einstellungen " Tastatur setzen Sie den Eintrag für Option Cursor links a String an die Shell senden: \033b und setzen Option Cursor rechts a String an die Shell senden: \033f . Sie können dies auch für andere Kombinationen von Steuerungstasten verwenden.

20 Stimmen

Um die \033b müssen Sie eigentlich Esc und dann b drücken.

7 Stimmen

Ich arbeite mit Snow Leopard und stelle fest, dass es nur funktioniert, wenn Sie die Option Enable option as meta key . Übrigens, das ist sehr cool. Die Taste ist sicher viel bequemer zu erreichen als Esc+B oder Esc+F

2 Stimmen

Nur aus Neugierde: Was genau ist hier los? Warum ist dieser Code anders zu beginnen mit in OSX? Wie kann ich andere solche Codes finden?

55voto

Dziamid Punkte 10577

Utilice Bearbeitung von natürlichem Text voreingestellt!

enter image description here

Im Wesentlichen bindet es neben anderen Tastenkombinationen Option + linker Pfeil an ^[b Sequenz und Option + RechtsPfeil zu ^[f

Dies funktioniert sowohl in fish und bash als auch in psql terminal.

1 Stimmen

Dies ist der effizienteste Weg, um die gute alte Zuordnung von Schlüsseln festzulegen. Danke!

1 Stimmen

Für den Fall, dass jemand so verwirrt ist wie ich, sei darauf hingewiesen, dass diese Voreinstellung nur unter der Option Profil Unterregisterkarte "Tasten", nicht die oberste Ebene Tasten tab.

39voto

Dan Alboteanu Punkte 7808

Halten Sie die Optionstaste gedrückt und klicken Sie auf die Stelle, an die Sie den Cursor bewegen möchten.

38voto

Mecki Punkte 113876

Eigentlich hängt es davon ab, welche Schale Sie verwenden, aber die meisten Schalen haben ähnliche Bindungen. Die Bindungen, auf die Sie sich beziehen (z.B. Ctrl + A y Ctrl + E ) sind Bindungen, die in vielen anderen Programmen zu finden sind und seit langem verwendet werden, BTW funktioniert auch in den meisten UI-Anwendungen.

Hier ist ein Blick auf die Standard-Bindings für Bash:

Die wichtigsten Bash-Tastaturkürzel

Bitte beachten Sie auch, dass Sie sie individuell anpassen können. Sie müssen eine Datei erstellen, die Sie nach Belieben benennen können. Ich habe meine Datei .bash_key_bindings genannt und in mein Home-Verzeichnis gelegt. In dieser Datei können Sie einige allgemeine Bash-Optionen einstellen und auch Tastenbelegungen festlegen. Um sicherzustellen, dass sie angewendet werden, müssen Sie eine Datei namens ".bashrc" das die Bash beim Start einliest (falls es nicht existiert, müssen Sie es erstellen) und dort den folgenden Aufruf machen:

bind -f ~/.bash_key_bindings

~ bedeutet in der Bash das Heimatverzeichnis. Wie oben erwähnt, können Sie die Datei benennen, wie Sie wollen, und sie auch an einem beliebigen Ort ablegen, solange Sie den richtigen Pfad und Namen an bind übergeben.

Ich möchte Ihnen einige Auszüge aus meiner .bash_key_bindings-Datei zeigen:

set meta-flag on
set input-meta on
set output-meta on
set convert-meta off
set show-all-if-ambiguous on
set bell-style none
set print-completions-horizontally off

Diese setzen nur ein paar Optionen (z.B. die Glocke deaktivieren; das kann alles auf der bash-Webseite nachgelesen werden).

"A": self-insert
"B": self-insert
"C": self-insert
"D": self-insert
"E": self-insert
"F": self-insert
"G": self-insert
"H": self-insert
"I": self-insert
"J": self-insert

Diese sorgen dafür, dass die Zeichen allein nichts weiter tun, als dafür zu sorgen, dass das Zeichen "getippt" wird (sie fügen sich in die Shell ein).

"\C-dW": kill-word
"\C-dL": kill-line
"\C-dw": backward-kill-word
"\C-dl": backward-kill-line
"\C-da": kill-line

Das ist sehr interessant. Wenn ich auf Ctrl + D allein (ich wählte d für delete), passiert nichts. Wenn ich dann aber ein kleines w eingebe, wird das Wort links vom Cursor gelöscht. Wenn ich jedoch einen Großbuchstaben eingebe, wird das Wort rechts vom Cursor gelöscht. Dasselbe gilt für l und L in Bezug auf die gesamte Zeile ab dem Cursor. Wenn ich ein "a" eintippe, wird tatsächlich die ganze Zeile gelöscht (alles vor und nach dem Cursor).

Ich habe ein Wort vorwärts springen lassen auf Ctrl + F und ein Wort rückwärts auf Ctrl + B

"\C-f": forward-word
"\C-b": backward-word

Wie Sie sehen, können Sie eine Verknüpfung erstellen, die sofort zu einer Aktion führt, oder Sie können eine Verknüpfung erstellen, die nur eine Zeichenfolge enthält, und dann müssen Sie ein (oder mehrere) Zeichen eingeben, um eine Aktion auszulösen, wie im Beispiel weiter oben gezeigt.

Wenn Sie also mit den Standardbindungen nicht zufrieden sind, können Sie sie nach Belieben anpassen. Hier ist eine Link zum Bash-Handbuch für weitere Informationen.

0 Stimmen

Wie ist command Schlüsselcode? In Ihrem Beispiel, control es \C aber wie ist command ?

0 Stimmen

Grundsätzlich möchte ich Strg+A auf cmd+links (zum Anfang der Zeile) abbilden

1 Stimmen

@Paschalis Unter MacOS X ist die Befehlstaste mit Meta in der Bash ( \M ), cmd+linke Taste würde lauten \M-\e[D . Allerdings können Sie cmd+... nichts zuordnen, alle Befehlskürzel werden von der Terminal-App selbst verarbeitet (und somit verschluckt) (diese werden nie an die Shell weitergeleitet) und cmd+links ordnet "vorheriges Fenster" zu, wenn Sie mehrere Terminalfenster geöffnet haben. Tut mir leid, das ist mit der Terminal-App nicht möglich.

18voto

jches Punkte 4502

Wenn Sie zufällig ein Vim-Benutzer sind, können Sie den Vim-Modus der Bash ausprobieren. Führen Sie diesen aus oder fügen Sie ihn in Ihr ~/.bashrc Datei:

set -o vi

Standardmäßig befinden Sie sich im Einfügemodus; drücken Sie die Escape-Taste und Sie können sich genauso bewegen wie im normalen Vim-Modus, also ist die Bewegung nach Worten w o b und die die üblichen Bewegungstasten funktionieren auch .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X