Unter Windows und Linux konnte ich immer ctrl+ ←oder ctrl+ →drücken, um im Terminal ein Wort nach links oder rechts zu überspringen. In Texteditoren scheint ⌥+ ←/ →zu funktionieren, aber keine Würfel im Terminal. Ich habe Google durchsucht und nichts gefunden, außer einer Wikipedia-Seite, die behauptet, dass ⌥+ B/ Fden Job macht, aber alles, was es tut, ist, ∫- und ƒ-Zeichen auf meinem Terminal auszugeben (oder ı und Ï, wenn ich halte ⇧). Irgendwelche Ideen?
Sie können den ⌥Schlüssel verwenden, aber Sie müssen die Option auswählen, um ihn als "Meta"-Schlüssel zu verwenden:
Sobald Sie das getan haben, funktionieren ⌥+ Fund ⌥+ Bwie erwartet.
Das hat mich auch verrückt gemacht, aber ich wollte keine Terminal-spezifische Lösung, da ich kein Terminal verwende und um SSH in meine OSX-Box zu verwenden, musste ich auch die richtigen Tastenkombinationen verwenden.
Außerdem war mir persönlich der ⌥Schlüssel egal, wie zuvor besprochen; Ich wollte die Kombination ctrl+ ←/ beibehalten, die →ich von Linux gewohnt bin.
Um dieses Problem zu lösen, habe ich Folgendes zu meinem hinzugefügt ~/.profile
:
bind '"\e[5C": forward-word'
bind '"\e[5D": backward-word'
bind '"\e[1;5C": forward-word'
bind '"\e[1;5D": backward-word'
Beachten Sie, dass die ersten beiden für bash in Terminal gelten ; Die letzten beiden gelten für Bash in iTerm2 und eingehende SSH- Verbindungen. Frag mich nicht, warum die Tastaturemulation anders ist;)
Für die Aufzeichnung konnte ich dank eines Hinweises aus dieser Stackoverflow-Antwort herausfinden, was die Schlüsselcodes tatsächlich waren : Sie können ausführen cat > /dev/null
, um die genauen Schlüsselcodes zu überwachen, die während einer Tastenkombination gesendet werden.
(Beachten Sie, dass für mich, wenn ich laufe und + cat > /dev/null
drücke , erzeugt wird . Ihr genauer Schlüsselcode kann abweichen , aber der erste wird als dargestellt, wie in meinem Beispielcode gezeigt.)ctrl←^[[1;5D
^[
\e
Übrigens, wenn Sie alle aktiven Bash-Tastenkombinationen sehen möchten, führen Sie bind -p
.
xxd
um Tastatureingaben zu untersuchen. Sie können das angezeigte Zeichen sehen, während Sie es xxd
eingeben, und geben dann den Wert in Hex aus, wenn Sie return eingeben.Ab Mac OS X Lion 10.7 ordnet Terminal standardmäßig ⌥- ←/ →zu esc+ B/ zu F, sodass dies jetzt für Bash und andere Programme integriert ist, die diese Emacs-kompatiblen Tastenkombinationen verwenden.
Wenn Sie wissen, wie man vi verwendet, können Sie auch den vi-Zeilenbearbeitungsmodus mit set -o vi
in .bash_profile
oder jederzeit in der Befehlszeile aktivieren. Dann können Sie zwischen dem vi-Befehls- und dem Einfügemodus wechseln. Sie könnten also Escape drücken und dann die vi-Befehle zum Navigieren in der Zeile verwenden:
0 = move to beginning of line
$ = move to end of line
w = move forward one word
b = move backward one word
Sobald Sie die richtige Position erreicht haben, können Sie die anderen vi-Befehle verwenden, um in den Einfüge- oder Anhängemodus zu wechseln oder Zeichen einzeln zu entfernen usw.
ESC ^
toll, wenn man es braucht, nervt nur, wenn man mal was ganz anderes machen wollte :)Öffnen Sie das Terminal, gehen Sie zu Einstellungen, Tastatur. In der Liste finden Sie „Strg-Cursor rechts“ und „Strg-Cursor links“.
Ändern Sie die zugewiesenen Aktionen in „\033f“ bzw. „\033b“, und Sie können ctrl+ →und ctrl+ verwenden ←, um sich zu bewegen, ohne Ihre Alt-Taste zu verlieren.
Es scheint, dass esc+ Bund esc+ Fstandardmäßig so abgebildet sind, dass sie zum Anfang und Ende von Wörtern gehen. Allerdings kann man bei meinem System die Taste nicht gedrückt halten, escsondern muss sie für jedes Wort erneut drücken.
Die neueste Version des Betriebssystems ordnet dies Spaces zu. Auch wenn Sie Leerzeichen deaktiviert haben, können die Hotkeys an dieser versteckten Stelle kurzgeschlossen werden:
Robert S Ciaccio
Martin Marconcini
Soner Gönül