it-swarm-eu.dev

Gibt es im OS X-Terminal eine Möglichkeit, den Cursor Wort für Wort zu bewegen?

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

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

720
Arne

Aus dem Kasten heraus können Sie das ziemlich seltsame verwenden Esc+F an den Anfang des nächsten Wortes springen und Esc+B um an den Anfang des aktuellen Wortes zu springen.

522
Kristian J.

Unter Mac OS X funktionieren die folgenden Tastenkombinationen standardmäßig. Beachten Sie, dass Sie die Taste Option wie Meta in den Terminaleinstellungen (unter der Registerkarte Tastatur) verwenden müssen.

  • alt (⌥)+F um F um ein Wort vorwärts zu springen
  • alt (⌥)+B um B um ein Wort vorwärts zu springen

Ich habe beobachtet, dass Standard-Emacs-Tastenkombinationen für die einfache Textnavigation auf Bash-Shells zu funktionieren scheinen. Sie können verwenden

  • alt (⌥)+D um ein Wort ab der aktuellen Cursorposition zu löschen
  • ctrl+A zum Zeilenanfang springen
  • ctrl+E zum Ende der Zeile springen
  • ctrl+K um die Zeile ab der Cursorposition zu beenden
  • ctrl+Y um Text aus dem Kill Buffer einzufügen
  • ctrl+R um die Suche nach Befehlen rückgängig zu machen, die Sie in der Vergangenheit in Ihrem Verlauf eingegeben haben
  • ctrl+S Suche weiterleiten (funktioniert in zsh bei mir aber nicht bash)
  • ctrl+F sich mit einem char vorwärtsbewegen
  • ctrl+B um ein Zeichen zurückgehen
  • ctrl+W um das Wort rückwärts von der Cursorposition zu entfernen
384
Varun Katta

So geht's

Standardmäßig verfügt das Terminal über die folgenden Verknüpfungen, um sich Wort für Wort (nach links und nach rechts) zu bewegen:

  • esc+B (links)
  • esc+F (Recht)

Sie können konfigurieren alt+ und  So generieren Sie diese Sequenzen für Sie:

  • Öffnen Sie die Terminaleinstellungen (cmd+,);
  • Wählen Sie auf der Registerkarte Einstellungen die Option Tastatur aus, und doppelklicken Sie auf ⌥ ← (sofern vorhanden), oder fügen Sie sie hinzu, falls dies nicht der Fall ist.
  • Stellen Sie den Modifikator wie gewünscht ein und geben Sie die Tastenkombination in das Feld ein: esc+B, generiert den Text \033b (Sie können diesen Text nicht manuell eingeben).
  • Wiederholen Sie dies für Word-Recht (esc+F wird zu \033f)

Alternativ können Sie auf diesen Blog-Beitrag unter textmate verweisen:

http://blog.macromates.com/2006/Word-movement-in-terminal/

273
Fil

Wechseln Sie zu iTerm2 . Es ist kostenlos und viel schöner als ein einfaches altes Terminal. Es gibt auch viel mehr Anpassungsmöglichkeiten, wie z. B. Tastaturkürzel.

Auch ich finde es toll, dass du es nutzen kannst cmd und 1-9, um zwischen den Registerkarten zu wechseln. Probieren Sie es aus und Sie kehren nie mehr zum normalen Terminal zurück :)

So richten Sie benutzerdefinierte Tastatureinstellungen in iterm2 ein

  • Installieren Sie iTerm2
  • Starten Sie und gehen Sie dann zum Einstellungsfenster.
  • Wählen Sie die Registerkarte Tastaturprofile
  • Sie müssen entweder das Profil in etwas Neues kopieren und dann die Pfeiltasten-Shortcuts wie löschen ^Right/Left Wenn Sie sich nicht für eine Sicherung interessieren, löschen Sie sie einfach aus dem Standardprofil.
  • Stellen Sie als Nächstes sicher, dass Ihr geändertes Profil ausgewählt ist (markiert).

Picture 1.png

  • Wählen Sie nun die Registerkarte Tastatur (ganz oben)

iTerm 2

  • Klicken Sie auf das Pluszeichen, um eine neue Tastenkombination hinzuzufügen
  • Im ersten Feld geben Sie CMD+Left arrow
  • Wählen Sie im zweiten Feld "Escape-Code senden"
  • Geben Sie im dritten Feld den Buchstaben ein B

Picture 2.png

  • Wiederholen Sie dies mit den gewünschten Tastenkombinationen. escape+B verschiebt ein Wort nach links, escape+f bewegt ein Wort nach rechts.
  • vielleicht möchten Sie auch einrichten cmd+d um das Wort vor dem Cursor mit zu löschen escape+d

Ich habe oft den falschen Knopf gedrückt (cmd / control / alt) mit einer Pfeiltaste und so habe ich meine Pfeiltastenkombinationen mit diesen Tasten alle zum Vorwärts- und Rückwärtsspringen von Wörtern eingestellt, aber bitte tun Sie, was am besten zu Ihnen passt.

157
cwd

Eigentlich gibt es einen viel besseren Ansatz. Halt option ( alt auf einigen Tastaturen) und drücken Sie die Pfeiltasten nach links oder rechts, um sich in Word zu bewegen. So einfach ist das.

option
option

Ebenfalls ctrle bringt Sie zum Ende der Linie und ctrla bringt Sie zum Start.

142
mdubez

Ich habe Alt+/ funktioniert: öffne Einstellungen "Einstellungen" Tastatur, setze den Eintrag für Optionscursor links auf Zeichenkette an Shell senden:\033b und setze - Optionscursor rechts to String an Shell senden:\033f. Sie können dies auch für andere Steuertastenkombinationen verwenden.

78
Peter Hilton

Tatsächlich hängt es davon ab, welche Shell Sie verwenden, die meisten Shells haben jedoch ähnliche Bindungen. Die Bindungen, auf die Sie sich beziehen (z. Ctrl+A und Ctrl+E) sind Bindungen, die Sie in vielen anderen Programmen finden und die seit Ewigkeiten verwendet werden. Übrigens funktionieren sie auch in den meisten UI-Apps.

Hier ist ein Blick auf die Standardbindungen für Bash:

Wichtigste Bash-Tastenkombinationen

Bitte beachten Sie auch, dass Sie sie anpassen können. Sie müssen eine Datei mit dem gewünschten Namen erstellen. Ich habe meine .bash_key_bindings benannt und in mein Home-Verzeichnis gestellt. Dort können Sie einige allgemeine Bash-Optionen und Tastenzuordnungen festlegen. Um sicherzustellen, dass sie angewendet werden, müssen Sie eine Datei mit dem Namen ". Bashrc" ändern, die beim Start von bash eingelesen wird (Sie müssen sie erstellen, wenn es nicht existiert) und rufen Sie dort Folgendes auf:

bind -f ~/.bash_key_bindings

~ bedeutet, dass Sie das Home-Verzeichnis in bash wie oben angegeben nach Belieben benennen und auch dort ablegen können, wo Sie möchten, solange Sie den richtigen Pfad + Namen zum Binden eingeben.

Lassen Sie mich 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 stellen lediglich einige Optionen ein (z. B. Deaktivieren der Klingel; dies kann alles auf der Bash-Webseite nachgeschlagen 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 stellen sicher, dass die Zeichen alleine nichts tun, sondern dass sie "getippt" sind (sie fügen sich selbst 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 ziemlich interessant. Wenn ich treffe Ctrl+D alleine (ich habe d zum löschen ausgewählt) passiert nichts. Wenn ich dann aber ein w in Kleinbuchstaben eingebe, wird das Wort links vom Cursor gelöscht. Wenn ich jedoch einen Großbuchstaben eingebe, wird das Wort rechts vom Cursor beendet. Gleiches gilt für l und L für die gesamte Zeile ab dem Cursor. Wenn ich ein "a" eingebe, wird die gesamte Zeile tatsächlich gelöscht (alles vor und nach dem Cursor).

Ich habe ein Wort nach vorne gesprungen Ctrl+F und ein Wort rückwärts weiter 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, damit eine Aktion ausgeführt wird in dem Beispiel weiter oben gezeigt.

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

38
Mecki

Wenn Sie ein Vim-Benutzer sind, können Sie den vim-Modus von bash ausprobieren. Führen Sie dies aus oder legen Sie es in Ihre ~/.bashrc-Datei:

set -o vi

Standardmäßig befinden Sie sich im Einfügemodus. Wenn Sie die Escape-Taste drücken, können Sie sich wie im normalen Modus von Vim bewegen, also ist die Bewegung durch Word w oder b und die üblichen Bewegungstasten funktionieren auch .

14
jches

Wenn Sie Use option as meta key auf der Tastaturregisterkarte der Voreinstellungen überprüfen, werden die Standardbefehle im Emacs-Stil für Vorwärts- und Rückwärts-Word und ⌥F (Alt+F) und ⌥B (Alt+B) beziehungsweise.

Ich würde empfehlen, von Bash zu Z-Shell zu lesen. Wenn Sie Ihre Schlagkraft steigern möchten!

14
Matt

Ab Mac OS X Lion 10.7 Terminalzuordnungen Option-Left/Right Arrow zu Esc-b/f Standardmäßig ist dies nun für Bash und andere Programme integriert, die diese emacs-kompatiblen Tastenkombinationen verwenden.

12
Chris Page

In Bash sind diese gebunden an Esc-B und Esc-F. Bash hat viele, viele weitere Tastaturkürzel. Schauen Sie sich die Ausgabe von bind -p an, um zu sehen, was sie sind.

8
Andy Lynch

Klicken Sie unter iterm2s Einstellungen> Profil> Tasten auf den + unter Tastenzuordnungen und zeichnen Sie eine neue Verknüpfung auf. Wählen Sie für Action Send Escape Sequence und geben Sie b oder f für Rückwärts bzw. Vorwärts ein.

Als ich versuchte, eine für (Ctrl+), Habe ich im Feld Tastaturkürzel festgestellt, dass der Pfeil nie angezeigt wurde. Es stellte sich heraus, dass ich die Standard-Macs Systemeinstellungen> Tastatur> Verknüpfungen> Mission Control zuerst deaktivieren musste, damit die Dinge funktionieren, da sie iterm2s überschreiben Standardverknüpfungen. Sollte auch für die Standard-Terminal-App gelten.

Keyboard system preferences

3
qix

Halten Sie die Wahltaste gedrückt und klicken Sie auf die Stelle, an der sich der Cursor bewegen soll

2
Dan Alboteanu

Verwenden Sie Natural Text Editing Preset!

 enter image description here

Im Wesentlichen bindet es unter anderem die Tastenkombinationen Wahltaste + Pfeil nach links an ^[b und Wahltaste + Pfeil nach rechts an ^[f.

Dies funktioniert in Fisch und Bash sowie im psql-Terminal.

0
Dziamid