tmux zeigt unter OSX eine seltsam kodierte Historie

675
Reefersleep

Wenn ich den Befehl "history" in tmux mache, erhalte ich ein wirklich komisches Ergebnis. Hat jemand einen Hinweis darauf, was zu tun ist, um eine normale Ausgabe zu erhalten?

Die Ausgabe sieht folgendermaßen aus:

 477 ◆┬▒⎺▒└☃◆  478 c▒├ ◆┬▒⎺▒└☃◆ 479 ec▒⎺ ◆┬▒⎺▒└☃◆ 48▮ ┴☃└ ·/↓├└┤│↓c⎺┼°  481 ├└┤│ 482 ┌⎽ 483 cd ┐⎺▒┼⎽/ 484 ┌e☃┼ ┐⎺▒┼⎽ ⎼┤┼ 485 ┌⎽ 486 ┌e☃┼ ▮1_e─┤▒┌☃├☃e⎽↓c┌┘ ⎼┤┼ 487 cd ↓↓ 488 ┌e☃┼ ┐⎺▒┼⎽ ⎼┤┼ 489 cd ┐⎺▒┼⎽/ 49▮ ┌e☃┼ ┐⎺▒┼ ⎼┤┼ 491 ┴☃└ ▮1_e─┤▒┌☃├☃e⎽↓c┌┘  492 ▒☃⎽├⎺⎼≤ 493 ┌e☃┼ ┐⎺▒┼ ⎼┤┼ 494 ├└┤│ ┌⎽ 495 ├⎺⎻ 496 ▒☃⎽├⎺⎼≤ 497 e│☃├ 498 e│☃├ 499 ▒☃⎽├⎺⎼≤ S⎼e┼⎽↑M▒cB⎺⎺┐↑P⎼⎺↑2:· S⎺e⎼e┼$  

Ich vermute, es hat mit der Kodierung zu tun.

Ich habe ein MacBook Pro in OSX Lion 10.7.5.

Ich verwende die Terminal-App, die (unter anderem) die UTF-8-Codierung aktiviert hat, und UFT-8 unter "International - Character Encoding:".

Meine Schale ist Bash.

Mein tmux tmux -Vist laut tmux 1.9a.

In meinem ~/.tmux.conf/habe ich

set-option -g prefix ^Space bind-key ^Space send-prefix unbind C-b set-option -g status-fg white set-option -g default-command "reattach-to-user-namespace -l bash" set -sg escape-time 1 set -g base-index 1 setw -g pane-base-index 1 bind r source-file ~/.tmux.conf set-window-option -g utf8 on set -g utf8 set -g status-utf8 on 

Mein languagesetupEnglisch ist, obwohl ich Dänisch bin und auch mein Tastaturlayout. :) Dies war nur ein Problem für mich, wenn languagesetupnicht Englisch - insbesondere |wenn das Pipe mit meinem Dänischen Pipe-Zeichen bedeutet, dass Bash den Befehl nach der Pipe nicht erkennt, wenn Ich habe ein Leerzeichen zwischen der Pipe und dem Pipe geschrieben, also musste ich z

echo $PATH |less

eher, als

echo $PATH | less

Aber wie gesagt, ich habe das mit behoben languagesetup.

Ich bin sehr gespannt auf tmux, also hoffe ich, dass jemand weiß, wie man das repariert! :)


EDIT 1:

URSACHE:

Die seltsame Ausgabe war, weil ich ^ N (die Ausgabe von der Tastenkombination von Strg + n) in meiner Historie hatte. Die seltsame Ausgabe kann absichtlich erzwungen werden, wenn ich die Tastenkombination Strg + n und dann die Eingabetaste in tmux drücke. Ich habe ein Ticket auf der SourceForge-Seite von tmux eingereicht, falls es ein Fehler war: https://sourceforge.net/p/tmux/tickets/137/ Also, nein ^ N, keine komische Ausgabe!


EDIT 2:

Weitere interessante Details finden Sie in den Kommentaren :)


EDIT 3:

Nachdem ich einen Fehlerbericht für die tmux-Entwickler unter https://sourceforge.net/p/tmux/tickets/137/ eingereicht hatte, wurde mir gesagt, dass der Effekt von ^ N kein Fehler ist. Es ist ein Feature aus den alten Hardwareterminals vor 8 Tagen, in dem Entwickler Steuerzeichen verwendeten, um Zeichensätze zu wechseln, um Zugriff auf eine breitere Palette von Zeichen zu erhalten. ^ N würde sich "herausschieben", ^ O würde sich "einschieben", dh wieder auf den ursprünglichen Zeichensatz zurückgreifen. Das Drücken von ^ O hat für mich weder in Terminal noch in iTerm etwas zu tun. Dies liegt daran, dass ^ O erneut mit "Verwerfen" belegt wird - dies kann man beim Laufen sehen stty -a. Nachdem Sie ^ N ausgeführt haben, können Sie jedoch ein Shell-Skript ausführen printf '\x0F', das das Steuerzeichen eingibt, das von ^ O erzeugt werden soll. Die Ausgabe wird wieder normal, wenn Sie sich "verschieben".

2
Gibt es einen Befehl in Ihrer Historie, der möglicherweise ein Sonderzeichen enthält, das den Standardwert von tmux durcheinander bringt? polym vor 9 Jahren 1
Ich habe einfach "history -c history -w" gemacht, um meine Geschichte zu löschen, und jetzt sieht es gut aus. Ich glaube, du hattest recht. Wenn Sie durch ein Backup von ~ / .bash_history in Vim in einer tmux-Sitzung schauen, sieht das in Ordnung aus, aber wenn ich `cat ~ / bash_history.txt 'mache, ist das Ergebnis wieder seltsam. Es muss einer dieser Charaktere sein ... Wahrscheinlich ein dänischer: D Ich werde etwas Zeit damit verbringen, es aufzuspüren. Prost! Reefersleep vor 9 Jahren 1
`njjj` Dies war die Zeile, die die seltsame Ausgabe verursacht hat. Ich kann den Charakteren in diesem Kommentarfeld entnehmen, dass `njjj` nicht so interpretiert wird, wie ich es in meinem Terminal außerhalb von tmux sehe - dort drin ist es` ^ An ^ A ^ N ^ Ajjj`. Ich glaube es stammt aus einer Zeit, als ich mit einer neuen Keymap für PREFIX in tmux experimentierte - Ctrl + a, denke ich, obwohl ich auch Alt + a versucht habe, aber ^ bedeutet Ctrl. Reefersleep vor 9 Jahren 1
Für alle, die interessiert waren, habe ich es in tmux wiederholt, indem ich den Befehl head -n ~ / bash_history.txt ausführte, die Leinennummer exponentiell inkrementieren, bis ich eine fehlerhafte Eingabe erhalten habe Suchmuster und Beenden / Eingeben von tmux bei Bedarf. Reefersleep vor 9 Jahren 1
nett :)). ja ^ steht für die Kontrolle :). Hier ist eine Quelle für das, was jede Kontrollsequenz bedeutet: http://www.robelle.com/smugbook/ascii.html polym vor 9 Jahren 1
Ich habe versucht, die Tastatureingaben direkt in tmux zu replizieren - anscheinend ist es ^ N, das die seltsame Ausgabe verursacht, sobald ich dies tue (was Strg und n gleichzeitig gedrückt wird) und die Eingabetaste drücken, ist die Ausgabe komisch. Srens-MacBook-Pro-2: ~ Soeren $ ^ N -bash:: c⎺└└▒┼d ┼⎺├ ° ⎺┤┼d S⎼e┼⎽ ↑ M▒cB⎺⎺┐ ↑ P⎼⎺ ↑ 2 : · S⎺e⎼e┼ $ Reefersleep vor 9 Jahren 1
Wow cool. Anscheinend kann "tmux" nicht mit "0xe" (was laut der obigen Quelle "^ N" ist) als Ausgabe umgehen. Ich habe dies mit `echo -e '\ xe' &> cn.hex getestet; cat cn.hex` in tmux und ich habe die gleichen Ergebnisse erzielt. Sehr schön! polym vor 9 Jahren 1
Wenn Sie jemals mit einer dämonischen Zunge "tmux" in Berührung kommen, geben Sie einfach "reset" ein. Oder in `dt-tmux`:` ⎼e⎽e├` polym vor 9 Jahren 3
Danke für Ihre Hilfe bei dieser Detektivarbeit! Merkwürdige Anmerkung: -e ist nicht in meinem "Mannecho". Eine Erklärung online gefunden. Ein weiterer Hinweis: Ich finde es interessant, dass ^ N in der Liste der verknüpften ASCII-Zeichen "Shift Out, ** Alternate Character Set **" ist. Hmmm :) Reefersleep vor 9 Jahren 0
Und danke für den Tipp zum Reset, funktioniert ein Genuss! Aber was ist mit den ^ N, die in tmux nicht funktionieren (oder arbeiten, wenn Sie eine dämonische Zunge wünschen), sollte dies den Entwicklern als Fehler oder etwas gemeldet werden? Reefersleep vor 9 Jahren 1
Es sollte auf jeden Fall. Ich würde mich aber fragen, ob es noch niemand getan hätte. polym vor 9 Jahren 0
In Ordnung, ich habe ein Ticket bei https://sourceforge.net/p/tmux/tickets/137/ angemeldet. Reefersleep vor 9 Jahren 1

0 Antworten auf die Frage