OS X Terminal-Äquivalent zu Strg+Links / Strg+Rechts

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?

Antworten (7)

Sie können den Schlüssel verwenden, aber Sie müssen die Option auswählen, um ihn als "Meta"-Schlüssel zu verwenden:Alt-Text

Sobald Sie das getan haben, funktionieren + Fund + Bwie erwartet.

Wahnsinn... das treibt mich schon lange in den Wahnsinn. Danke.
Überprüfen Sie auch apple.stackexchange.com/q/1391/115 auf mögliche „Nachteile“ dieser Option.
Coole Antwort. +1

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/nulldrü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.

Ich verwende es gerne, xxdum Tastatureingaben zu untersuchen. Sie können das angezeigte Zeichen sehen, während Sie es xxdeingeben, und geben dann den Wert in Hex aus, wenn Sie return eingeben.
Perfekt! Genau das, wonach ich gesucht habe :) Ich hatte noch nie das Glück, die "App-spezifischen" Einstellungen oben vorzunehmen, aber das funktioniert einfach!
Stellen Sie sicher, dass Strg+Links/Rechts in Ihren Sysprefs > Tastatur > Tastenkombinationen > Exposé nicht "Leerzeichen wechseln" zugeordnet sind. Ich hatte keine anderen Leerzeichen offen, also sah es so aus, als würde meine Tastatureingabe nicht funktionieren.

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 viin .bash_profileoder 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.

Ich wusste nie, dass Sie 0 für den Zeilenanfang verwenden können, ich habe immer ^ verwendet
@vxjasonxv: ya, ^ bewegt sich zum ersten Nicht-Leerzeichen, 0 bewegt sich zur ersten Spalte (was Sie wahrscheinlich schon bemerkt haben, aber ich dachte, ich würde es für andere rauswerfen: P)
OH WOW, DAS IST NOCH BESSER, das war mir noch gar nicht aufgefallen! Oh Mann, diese Funktionalität (erster Nicht-Leerraum) von ^ hat mich immer angepisst. Danke dir.
Ist natürlich 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.

Esc ist nie ein Modifikator, es geht nur in den "Escape" -Modus, wenn Sie es drücken, betrachten Sie es als eine modale Art, Dinge zu tun, im Gegensatz zu Shift / Strg / Meta usw. (jedenfalls im Readline-Schema der Dinge).

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:

Terminal.app-Cursortasten: Systemeinstellungen deaktivieren -> Shortcuts -> Mission Control -> Ein Leerzeichen nach links bewegen