Wie bekomme ich die Kontrolle + Pfeil nach links, um ein Wort in iTerm2 zurückzugehen?

45968
cwd

Ich las im Linux-Handbuch nach und bemerkte, dass ich mit control + left und control + right während des Editierens Wörter im Terminal vor- und zurückbewegen konnte.

"Wenn Sie die Strg-Taste und die Nach-Links- oder Nach-Rechts-Taste drücken, wird ein Wort gleichzeitig vorwärts oder rückwärts bewegt, ebenso wie das Drücken von Esc und dann B oder F."

Unter OS X control+leftund control+rightsteuern Sie normalerweise Leerzeichen. Ich habe diese deaktiviert. Ich habe auch versucht, den Einstellungsbereich zu verwenden, um die Tastenkombinationen festzulegen:

enter image description here

enter image description here

Dies funktioniert jedoch nicht und verursacht diesen Fehler:

enter image description here

Wenn ich in iTerm bin und alt+escapedann B oder F verwende, bewegt sich der Charakter vor und zurück. Dies geschah, bevor sich meine Konfiguration änderte. Aber ich möchte wirklich gerne die Steuerung + die Pfeiltasten verwenden.

102
Übrigens, ein sparsamerer Weg, dies zu erreichen, könnte einfach darin bestehen, Befehl + links und Befehl + rechts anstelle von Strg + Links und Strg + Rechts abzubilden. Ich musste nichts systemweit deaktivieren, um dies zu erreichen. Doctor Mohawk vor 9 Jahren 0

7 Antworten auf die Frage

129
slhck

bash

Fügen Sie einfach folgendes hinzu ~/.inputrc:

"\e[1;5D": backward-word "\e[1;5C": forward-word 

Weitere Informationen finden Sie in diesem archivierten Wiki-Beitrag . Wenn Sie den altSchlüssel stattdessen für die Wort-zu-Wort-Bewegung verwenden möchten (wie das Standardverhalten von OS X), verwenden Sie Folgendes:

"\e[1;9D": backward-word "\e[1;9C": forward-word 

zsh

Standardmäßig verwendet zsh die readlineBibliothek nicht und kann daher nicht lesen ~/.inputrc. Um die gleiche Funktionalität zu erhalten, können Sie Folgendes hinzufügen ~/.zshrc- dies würde wiederum den altSchlüssel verwenden:

bindkey -e bindkey '^[[1;9C' forward-word bindkey '^[[1;9D' backward-word 

Weitere Informationen zum integrierten zsh-Zeileneditor (zle) finden Sie in dieser Dokumentation .


Warum ist das? Sie haben Ihr Profil für die Verwendung der Xterm-Standardeinstellungen eingerichtet:

enter image description here

Deshalb müssen Sie diese Sequenz "einfangen" und sagen, readlinewas zu tun ist.


Wenn das oben beschriebene immer noch nicht funktioniert und Sie OS X 10.9 (Mavericks) oder etwa dort verwenden, müssen Sie wahrscheinlich die globalen Mission Control-Verknüpfungen deaktivieren, die verhindern, dass die Pfeiltasten von Control + iTerm erreichen, selbst wenn Mission Control selbst deaktiviert ist. Sie können dies in den Systemeinstellungen → Tastatur → Tastenkombinationen → Mission Control tun :

mission control keyboard prefs

Ich versuche, der Anweisung zu folgen, um die Tasten Alt + Links und Alt + Rechts zum Laufen zu bringen. Ich habe die beiden Zeilen zu meiner .inputrc-Datei hinzugefügt, aber das einzige, was passiert, wenn ich die Tasten drücke, ist, dass entweder ein "D" oder ein "C" in die Shell gedruckt wird. Ich verwende iTerm2 mit der zsh-Shell. Irgendwelche Ideen? Flo vor 11 Jahren 4
@Flo Fügen Sie stattdessen die Zeilen "bindkey -e", "bindkey" ^ [[1; 9C "vorwärts-Wort" und "bindkey" ^ [[1; 9D "rückwärts-Wort" statt "~ / .zshrc" hinzu . IIRC zsh liest nicht `.inputrc` - oder zumindest funktioniert es für mich so. slhck vor 11 Jahren 1
@slhck, sicher werde ich eine neue Frage erstellen, obwohl alt + left auf vim funktioniert, alt + right nicht. Sehr seltsam, ich werde jetzt eine neue Frage erstellen. seds vor 10 Jahren 0
@Ben No idea, sorry! I'm really just the guy who uses vim for commit messages and quick fixes. I bountied your question so you'd get more attention on it. slhck vor 10 Jahren 0
*** UGH, Gott ***, DANKE. speziell für die `zsh`-spezifischen Informationen. Ich wollte *** SCREAM ***, wenn ich 'D' oder mehr Zeit tippte! mralexgray vor 10 Jahren 0
Funktioniert nicht für mich mit Strg-Links / Rechts + Bash, aber es funktioniert gut, wenn ich es für Alt-Links / Rechts eingerichtet habe. Dalin vor 10 Jahren 2
Es wurde ein Schnitt über die Shortcuts der Mission Control hinzugefügt, um zu verhindern, dass dies alles auf eine äußerst undurchsichtige Weise funktioniert. Hoffentlich erspart es jemandem, durch dasselbe zu gehen, was ich gerade getan habe ... rubyruy vor 10 Jahren 3
Für OSX + zsh + iTerm2 + Ctrl-Left / Right verwenden Sie Folgendes: `bindkey -e; Bindungsschlüssel '\ e \ e [C' Vorwärtswort; bindkey "\ e \ e [D" Rückwärtswort " Artur Bodera vor 10 Jahren 12
Aus irgendeinem Grund wurden meine OSX-Einstellungen auf die Standardwerte zurückgesetzt. Koen. vor 10 Jahren 0
Das funktioniert aber nur in der lokalen Shell. Wenn ich zu einer anderen Box ssh, wird nur ein Zeichen verschoben. In der Standard-Terminal-App arbeiten ^ left und ^ right lokal und remote. Hat jemand eine Idee? marcantonio vor 8 Jahren 0
Außer Acht lassen. Ich musste nur eine neue SSH-Sitzung starten! marcantonio vor 8 Jahren 0
@ArturBodera danke für das Posten! funktioniert perfekt und interpretiert das Halten der Pfeiltaste als wiederholte Bewegungen, anstatt jedes Mal die Pfeiltaste drücken zu müssen (was ich mit der BetterTouchTool-Lösung http://superuser.com/a/584175/83693 zu tun hatte) Julian A. vor 8 Jahren 0
Der Link http://code.google.com/p/iterm2/wiki/Keybindings ist tot. Wissen Sie, wo sich der Standort befindet? gerrytan vor 8 Jahren 0
@gerrytan Sie können immer noch über das [Wayback-Archiv] (https://web.archive.org/web/20121226151631/http://code.google.com/p/iterm2/wiki/Keybindings) darauf zugreifen. slhck vor 8 Jahren 0
34
Happy Torturer

Arbeitslösung für zsh. Einfach, unkompliziert und sofort einsatzbereit.

  1. Gehe zu: ⌘, Preferences → Profiles → Keys → Keyboard Behavior

  2. Preset laden: Natural Text Editing

Preset "Natural Text Editing" laden

Danke @Happy Torturer, ich glaube, es ist die beste Antwort, hauptsächlich weil ich dieses Problem nicht auf normalem Terminal.app habe. Deshalb möchte ich bash / zsh nicht modifizieren. Ich möchte einfach alles wie in Terminal.app arbeiten. galuszkak vor 6 Jahren 0
Das das das. Vielen Dank für diese Lösung! Ich habe diesen verrückten Prozess mit jedem Mac durchlaufen, den ich bekomme. Ich weiß jetzt den einfachsten Weg, dies zu erreichen. Vielen Dank! vernonk vor 6 Jahren 0
7
chmac

Ich habe einen anderen Ansatz gewählt. Mit BetterTouchTool habe ich eine benutzerdefinierte Tastenkombination für iTerm2 programmiert. Wenn ich in iTerm2 die Tastenkombination Alt-Links drücke, wird die Tastenkombination Strg-Links mit der Aktion "Tastenkombination an bestimmte Anwendung senden" gesendet. Die Anwendung ist iTerm2. Das Gleiche habe ich für Alt-Right auf Ctrl-Right gemacht.

Der Effekt ist, dass durch Drücken von ALT-LINKS oder ALT-RECHTS in iTerm eine STRG-LINKS oder STRG-RECHTS direkt an iTerm2 gesendet wird. Dabei wird die übliche systemweite Abkürzung umgangen, um einen Desktop nach links oder rechts zu verschieben. So bekomme ich das typische Verhalten von mac in iTerm2, bei lokalen Terminalsitzungen, aber auch bei Remote-SSH-Sitzungen, und ich kann die Standard-Strg-Links / Strg-Rechts verwenden, um zu verschiedenen Desktops zu wechseln. Ich habe es hier geschrieben:

http://www.callum-macdonald.com/2014/04/17/ctrl-left-and-ctrl-right-on-iterm2/

wunderschönen! danke fürs Schreiben! Julian A. vor 8 Jahren 0
BetterTouchTool ist nicht Open Source und könnte Dinge tun, von denen Sie wünschen, dass dies nicht der Fall wäre. Der Typ sagt, er sei Student, aber er könnte genauso gut eine Agentur mit drei Buchstaben sein. revacuate vor 8 Jahren 1
7
nayyarv

Tatsächlich fand ich die einfachste Lösung, zu meinen Profileinstellungen (gefunden in Profile / Keys) zu gehen und die beleidigenden Profil-Shortcuts zu entfernen (da Profil in iTerm global überschreibt) Shortcuts funktionierten perfekt für mich!

Wenn Sie OS X verwenden, ist es wahrscheinlich am besten, systemweite Abkürzungen zu verwenden, dh zu diesem Zweck alternativ Alt + Links und Alt + Rechts. Andernfalls führt ein anderes Verhalten in Terminals möglicherweise zu Schmerzen.

Abgesehen von dieser Lösung von chmac, Better Touch Tool zu verwenden, war es eine elegante Möglichkeit, das Verhalten von Control + Arrow nur in iterm zu ändern.

Das ist eigentlich die beste Lösung. Es ist verwirrend, da die meisten von uns zum Tab "Schlüssel" gehen. Stattdessen müssen wir zur Registerkarte "Profile" -> Ein Profil (z. B. Standard) -> Tasten gehen. Paschalis vor 8 Jahren 0
Dies ist definitiv die sicherste und einfachste Lösung. revacuate vor 8 Jahren 0
6
rassom

Ich habe es so repariert:

Im oberen Menü; gehe zu

Profiles  -> Open profiles...  -> Edit profiles... (button)  -> Keys (tab)  -> Load Preset... (dropdown)  -> Choose "Natural text editing". Done! :-) 
alles, was ich unter dieser Voreinstellung habe, ist "Factory Defaults" MaylorTaylor vor 5 Jahren 0
2
Seralto

In diesem Beitrag werden diese und andere Verknüpfungen gelehrt wie Delete ← Löschen, um ein Wort zu löschen:

http://elweb.co/making-iterm-2-work-with-normal-mac-osx-keyboard-shortcuts/

Dies beantwortet nicht wirklich die Frage, die sich auf die Verwendung bezieht DavidPostill vor 7 Jahren 0
Alles, was Sie tun müssen, ist die Abkürzung, die Ihren Bedürfnissen entspricht. ""oder was auch immer du willst. Seralto vor 7 Jahren 0
Bitte zitieren Sie daher die wesentlichen Teile der Antwort aus dem Verweislink, da die Antwort ungültig werden kann, wenn sich die verlinkten Seiten ändern. DavidPostill vor 7 Jahren 1
1
Sid

Sie müssen in die ProfilesRegisterkarte gehen und das Mapping für alt+ leftund alt+ löschen, rightda standardmäßig einige Hex-Werte ausgegeben werden.

Das hat es für mich getan! Philip vor 7 Jahren 0