Die Tasten "Home", "End", "PageUp" und "PageDown" geben ~
in meiner Bash-Sitzung ein "a" ein, anstatt den Cursor / die Ansicht zu bewegen. Warum passiert das und welche Einstellungen muss ich ändern?
GNU bash, version 4.0.28(1)-release (x86_64--netbsd)
PuTTY v0.60
Die Frage lautete ursprünglich:
Warum wird in PuTTY durch Drücken der Taste "Home" auf der Shell (Bash) ein "~" eingegeben? Oder wie bringe ich den Cursor an den Anfang des Befehls, den ich eingegeben habe?
(Ich dachte , der Grund war , dass ~ das ist Heimat - Verzeichnis, aber die Antworten sagen , dass dies nicht so ist.)
Terminal -> Keyboard
"Die Funktionstasten und Tastatur".Dies geschieht, weil der Terminaltyp von PuTTY nicht richtig eingestellt ist oder weil auf Ihrem Server nicht die richtigen Terminfodefinitionen installiert sind.
Auf Debian-basierten Systemen, die ncurses-term - Paket (Version 5.7 + 20081213-1) enthält termDefinitionsDateien für Kitt , Kitt-256color und Kitt-VT100 Terminaltypen. Wenn Sie dieses Paket installiert haben, können Sie in der Sitzungskonfiguration von Putty (Verbindung -> Daten) die Zeichenfolge vom Typ "Terminal" auf "putty" anstelle der Standardeinstellung "xterm" setzen.
Stephen Irons erwähnt auch "Linux" als einen anderen Terminaltyp, der funktioniert; Ich glaube, dies ist aus früheren Erfahrungen richtig, habe es aber in letzter Zeit nicht getestet.
Auf meinen Systemen funktionieren Home und End auf diese Weise ordnungsgemäß, obwohl PageUp / PageDown das Konsolenfenster nicht scrollen. (Sie funktionieren ordnungsgemäß in ncurses-Anwendungen wie aptitude und scrollen mit Shift-PgUp / Shift-PgDn im Konsolenfenster.)
quelle
TERM=putty
oderTERM=putty-256color
ist am klügsten, obwohl letzteres derzeit leider nicht für die Farben 8-15 (die die hellen Versionen von 0-7 sein sollen) geeignet zu sein scheint. Es ist sehr wahrscheinlich, dass die anderen "Lösungen" manchmal herausplatzen, weil sie die Unterschiede zwischen den beteiligten Terminals offenkundig missachten.yum install ncurses-term
sortierte es für mich auf CentOS 7 mit Kitt beim nächsten Login, danke.putty
, unterbricht jedoch die xterm-ähnliche Mausunterstützung (z. B. für Midnight Commander)Wenn Sie überprüfen möchten, welcher Code von PuTTY an Ihr Terminal gesendet wird, wenn Sie eine Taste oder eine Tastenkombination drücken, müssen Sie nur a eingeben
Ctrl+V
und dann die gewünschte Taste drücken.Wenn Sie beispielsweise auf meiner Box die Home- Taste drücken, wird auf meinem Terminal die folgende Zeichenfolge generiert:
Das heißt, PuTTY sendet das Escape-Zeichen ^ [ gefolgt von der Zeichenfolge [1 ~ .
Sie können eine
~/.inputrc
Datei in Ihrem$HOME
Ordner erstellen oder alternativ eine/etc/inputrc
Datei, die von Ihrem System abhängt. Füllen Sie diese Datei dann mit den PuTTY-Codes und den entsprechenden Bash-Aktionen, die von Bash ausgelöst werden sollen.Hinweis: Ersetzen Sie jedes ^ [ Zeichen durch die entsprechende \ e Zeichenfolge
In meinem Beispiel werde ich eine Zeile mit meinem Home- Tastencode und der Zeilenanfangsaktion (die standardmäßig
Ctrl+A
in Bash festgelegt ist) hinzufügen :Zu meiner Information, meine InputRC-Datei hat den folgenden Inhalt:
Von @Cimbali: Weitere bindbare Befehle (wie "Vorheriger Verlauf": "Nach oben" in der Verlaufsliste) sind auf dieser Referenzseite verfügbar .
quelle
TERM=linux
oderTERM=putty
xterm artige Maus - Unterstützung brechen. Vielen Dank!Strg + A bringt Sie zum Zeilenanfang
Hier ist eine Liste der Bash-Tastaturkürzel
quelle
Was es tatsächlich sendet
^[[1~
, ist eine terminale Escape-Sequenz, bestehend aus:Sie können sehen , dass durch Drücken der Taste Ctrl+ Vdann Home.
Möglicherweise können Sie Ihr Problem beheben, indem Sie die PuTTY-Tastatureinstellung für die Home- und End-Tasten in rxvt
^[[H
ändern (wodurch die Escape-Sequenz erstellt wird) oder indem Sie den von Ihnen verwendeten $ TERM ändern (oder bearbeiten~/.inputrc
).Übrigens gibt es keine Beziehung zwischen der Tilde, die Sie erhalten, wenn Sie drücken, Homeund der Tilde, die das Basisverzeichnis darstellt. In meinem Setup wird beispielsweise Page-Downerzeugt
^[[6~
, dass auch eine Tilde gedruckt wird, wenn sie nicht richtig interpretiert wird.quelle
~
und keine der PuTTY-Tastatureinstellungen bewirkt, dass sie funktionieren. Ist meine Prügelei durcheinander oder ist das "normal"?echo $TERM
?xterm
("\eOw": end-of-line
, Ihrer~/.inputrc
Datei einen Buchstaben O hinzuzufügen .Keine dieser Optionen hat bei mir funktioniert. Ich verwende ein altes AIX-System. Ich musste meinem .profile den folgenden Alias hinzufügen
quelle
Ich konnte es nicht mit anderen Methoden zum Laufen bringen. Ich habe jedoch dieses AutoHotkey-Skript erstellt, das funktioniert, solange Ihre Shell Bash ist:
Seien Sie jedoch vorsichtig , da nicht alle dieser Bash-Hotkeys in anderen Programmen funktionieren.
quelle
screen
der mit den Standardeinstellungen Strg-A unterbricht, weil er es als Escape-Zeichen verwendet ....