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

114

Ich habe im Linux-Handbuch nachgelesen und festgestellt, dass ich mit Strg + Links und Strg + Rechts Wörter im Terminal vor- und zurückspulen kann, während ich sie bearbeite.

"Durch Drücken von Strg und der Nach-Links- oder Nach-Rechts-Taste wird ein Wort gleichzeitig vor- oder zurückbewegt, ebenso wie durch Drücken von Esc und dann B oder F."

Unter OS X control+leftund control+rightnormalerweise Leerzeichen steuern. Ich habe diese deaktiviert. Ich habe auch versucht, im Einstellungsbereich die Tastaturkürzel festzulegen:

Bildbeschreibung hier eingeben

Bildbeschreibung hier eingeben

Dies funktioniert jedoch nicht und verursacht diesen Fehler:

Bildbeschreibung hier eingeben

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

cwd
quelle
Eine sparsamere Möglichkeit, dies zu erreichen, besteht im Übrigen darin, Befehl + links und Befehl + rechts anstelle von Strg + links und Strg + rechts zuzuordnen. Ich musste nichts systemweit deaktivieren, um dies zu erreichen.
Doktor Mohawk

Antworten:

135

bash

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

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

In diesem archivierten Wiki-Beitrag finden Sie weitere Erklärungen. Wenn Sie die verwenden möchten altSchlüssel stattdessen für Wort-zu-Wort - Bewegung (wie Standard - OS X - Verhalten), verwenden:

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

zsh

zsh verwendet die readlineBibliothek standardmäßig nicht und liest daher nicht ~/.inputrc. Um die gleiche Funktionalität zu erhalten, können Sie Folgendes zu Ihrer 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 so eingerichtet, dass die Xterm-Standardeinstellungen verwendet werden:

Bildbeschreibung hier eingeben

Aus diesem Grund müssen Sie diese Sequenz "abfangen" und angeben, readlinewas zu tun ist.


Wenn das oben genannte Problem weiterhin besteht und Sie mit OS X 10.9 (Mavericks) arbeiten, müssen Sie wahrscheinlich die globalen Mission Control-Verknüpfungen deaktivieren, die verhindern, dass Control + Pfeiltasten auf iTerm zugreifen, auch wenn Mission Control selbst deaktiviert ist. Sie können dies in den Systemeinstellungen → Tastatur → Verknüpfungen → Missionssteuerung tun :

Tastatureinstellungen für die Missionssteuerung

slhck
quelle
4
Ich versuche, der Anweisung zu folgen, damit die Tasten Alt + Links und Alt + Rechts funktionieren. 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" auf die Shell gedruckt wird. Ich benutze iTerm2 mit zsh Shell. Irgendwelche Ideen?
Flo
1
@Flo Versuchen Sie, die Linien hinzugefügt bindkey -e, bindkey '^[[1;9C' forward-wordund bindkey '^[[1;9D' backward-wordzu Ihrem ~/.zshrcstatt. IIRC zsh liest nicht .inputrc- oder zumindest funktioniert es bei mir so.
Slhck
2
Funktioniert bei mir nicht mit Strg-Links / Rechts + Bash, funktioniert aber einwandfrei, wenn ich es für Alt-Links / Rechts einstelle.
Dalin
3
Es wurde eine Bearbeitung über Missionskontroll-Verknüpfungen hinzugefügt, die verhindert, dass dies auf erschwerend undurchsichtige Weise funktioniert. Hoffentlich erspart es jemandem, dasselbe durchzugehen, was ich gerade getan habe ...
rubyruy
12
Verwenden Sie für OSX + zsh + iTerm2 + Strg-links / rechts Folgendes:bindkey -e; bindkey '\e\e[C' forward-word; bindkey '\e\e[D' backward-word
Artur Bodera
45

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

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

  2. Voreinstellung laden: Natural Text Editing

Voreinstellung "Natural Text Editing" laden

Glücklicher Folterer
quelle
Vielen Dank an @ Happy Torturer, ich glaube, es ist die beste Antwort, vor allem, weil ich kein einfaches Terminal.app-Problem habe, sodass ich bash / zsh nicht ändern möchte, sondern einfach alles wie in Terminal.app arbeiten möchte.
Galuszkak
Das das das. Vielen Dank für diese Lösung! Ich habe diesen Wahnsinnsprozess mit jedem Mac durchgemacht, den ich bekomme. Ich kenne jetzt den einfachsten Weg, um dies zu erreichen. Danke!
Vernonk
8

Ich habe es so behoben:

Im oberen Menü; gehe zu

Profiles 
-> Open profiles... 
-> Edit profiles... (button) 
-> Keys (tab) 
-> Load Preset... (dropdown) 
->  Choose "Natural text editing". Done! :-)
rassom
quelle
Alles, was ich unter diesem Preset habe, ist "Factory Defaults"
MaylorTaylor
7

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

Der Effekt ist, dass durch Drücken von Alt-Links oder Alt-Rechts in iTerm direkt Strg-Links oder Strg-Rechts an iTerm2 gesendet wird, wobei die übliche systemweite Verknüpfung zum Verschieben eines Desktops nach links oder rechts umgangen wird. Auf diese Weise erhalte ich das typische Mac-Verhalten in iTerm2 bei lokalen Terminalsitzungen, aber auch bei Remote-SSH-Sitzungen, und kann mit der Standard-Tastenkombination Strg-Links / Strg-Rechts zu verschiedenen Desktops wechseln. Ich habe es hier geschrieben:

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

chmac
quelle
2
BetterTouchTool ist kein Open Source-Programm und könnte auch Dinge tun, die Sie sich wünschen. Der Typ sagt, er ist Student, aber er könnte genauso gut eine Drei-Buchstaben-Agentur sein.
Am
7

Eigentlich fand ich die einfachste Lösung darin, zu meinen Profileinstellungen zu gehen (zu finden unter Profile / Schlüssel) und die entsprechenden Profilverknüpfungen zu entfernen (da das Profil in iTerm global überschreibt), in meinem Fall Alt + Links und Alt + Rechts und dann Global Verknüpfungen funktionierten perfekt für mich!

Wenn Sie mit OS X arbeiten, ist es wahrscheinlich am besten, sich an systemweite Verknüpfungen zu halten, dh, Sie verwenden stattdessen Alt + Links und Alt + Rechts. Ein anderes Verhalten im Terminal kann möglicherweise zu Schmerzen führen.

Abgesehen davon war die Lösung von chmac, Better Touch Tool zu verwenden, eine elegante Möglichkeit, das Verhalten von control + arrow nur in iterm zu ändern.

nayyarv
quelle
eigentlich ist das die beste lösung. Es ist verwirrend, wie die meisten von uns zur KeysRegisterkarte gehen . Stattdessen müssen wir zum ProfilesTab -> Ein Profil (zB Standard) -> Schlüssel gehen.
Paschalis
Dies ist definitiv die sicherste und einfachste Lösung.
Am
2

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

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

Seralto
quelle
Dies ist eigentlich nicht die Frage beantworten, die über die Verwendung ist <ctrl> <links>
DavidPostill
Sie müssen lediglich die Verknüpfung verwenden, die Ihren Anforderungen entspricht. "<ctrl> <left>" oder was auch immer Sie wollen.
Seralto
1
Bitte zitieren Sie die wesentlichen Teile der Antwort aus den Referenzlinks, da die Antwort ungültig werden kann, wenn sich die verlinkten Seiten ändern.
DavidPostill
1

Sie müssen in die gehen ProfilesRegisterkarte und die Zuordnung für löschen alt+ leftund alt+ rightstandardmäßig wie es einige Hex - Werte ausgibt.

Sid
quelle
Das hat es für mich getan!
Philip