tmux menunjukkan sejarah penyandian aneh pada OSX

2

Jika saya melakukan perintah "history" di tmux, saya mendapatkan hasil yang sangat aneh. Adakah yang punya petunjuk tentang apa yang harus dilakukan untuk mendapatkan hasil normal?

Outputnya terlihat seperti ini:

  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┼$ 

Saya kira itu ada hubungannya dengan pengkodean.

Saya menggunakan MacBook Pro di OSX Lion 10.7.5.

Saya menggunakan aplikasi Terminal yang memiliki (antara lain) pengkodean UTF-8 diaktifkan dan UFT-8 di bawah "International - Character Encoding:".

Shell saya adalah bash.

TXux saya sesuai tmux -V adalah tmux 1.9a.

Di saya ~/.tmux.conf/, Saya sudah

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

Saya languagesetup adalah bahasa Inggris, meskipun saya Denmark dan begitu juga tata letak keyboard saya :) Ini hanya menjadi masalah bagi saya ketika languagesetup bukan bahasa Inggris - secara khusus, memoles dengan karakter pipa Denmark saya | berarti bash tidak akan mengenali perintah setelah pipa jika saya menulis spasi antara itu dan pipa, jadi saya harus melakukan mis.

echo $PATH |less

daripada

echo $PATH | less

Tapi seperti yang saya katakan, saya memperbaikinya languagesetup.

Saya benar-benar ingin segera menggunakan tmux, jadi saya harap seseorang tahu cara memperbaikinya! :)


EDIT 1:

SEBAB:

Output aneh adalah karena saya memiliki ^ N (output dari kombinasi tombol Ctrl + n) dalam sejarah saya. Output aneh dapat dipaksa sengaja jika saya menekan Ctrl + n diikuti oleh enter in tmux. Saya mengajukan tiket di halaman SourceForge tmux kalau-kalau itu bug: https://sourceforge.net/p/tmux/tickets/137/ Jadi, tidak ^ N, tidak ada output aneh!


EDIT 2:

Untuk detail yang lebih menarik, lihat saja di komentar :)


EDIT 3:

Setelah mengajukan laporan bug untuk pengembang tmux di https://sourceforge.net/p/tmux/tickets/137/ , Saya telah diberitahu bahwa efek ^ N bukanlah bug. Ini adalah fitur dari terminal perangkat keras pra-utf-8 hari yang lalu, di mana pengembang menggunakan karakter kontrol untuk mengganti rangkaian karakter agar memiliki akses ke berbagai karakter. ^ N akan "bergeser", ^ O akan "bergeser", yaitu, kembali ke set karakter asli. Menekan ^ O tidak melakukan apa pun untuk saya di Terminal atau iTerm, dan ini karena ^ O dipetakan ulang untuk "membuang" - ini dapat dilihat dengan menjalankan stty -a. Namun, setelah selesai ^ N, Anda dapat menjalankan skrip shell printf '\x0F', yang menginput karakter kontrol yang ^ O seharusnya hasilkan, dan output akan kembali normal, saat Anda "beralih".

Reefersleep
sumber
1
Apakah ada perintah dalam riwayat Anda, yang mungkin berisi karakter khusus yang mengacaukan tmux 'up?
polym
1
saya baru saja melakukannya history -c history -w untuk menghapus riwayat saya, dan sekarang terlihat OK, jadi saya pikir Anda benar. Melihat melalui cadangan ~ / .bash_history di Vim dalam sesi tmux terlihat OK, tetapi jika saya lakukan cat ~/bash_history.txt, hasilnya aneh semua lagi. Pasti salah satu dari karakter itu ... Mungkin yang Denmark: D Akan menghabiskan sedikit waktu melacaknya. Tepuk tangan!
Reefersleep
1
njjj Ini adalah garis yang menyebabkan output aneh. Saya bisa tahu dari karakter di kotak komentar ini itu njjj tidak ditafsirkan seperti yang saya lihat di terminal saya di luar tmux - di sana, itu ^An^A^N^Ajjj. Saya pikir itu dari ketika saya bereksperimen dengan keymap baru untuk PREFIX di tmux - Ctrl + a, saya kira, meskipun saya juga mencoba Alt + a, tapi saya kira ^ artinya Ctrl.
Reefersleep
1
Bagi siapa pun yang tertarik, saya melacaknya dengan melakukan head -n {linenumber} ~ / bash_history.txt di tmux berulang kali, menambah linenumber secara eksponensial hingga saya menerima input yang salah, kemudian keluar / masukkan tmux dan melanjutkan, menambah / mengurangi biner cari pola dan keluar / masuk tmux bila perlu.
Reefersleep
3
Juga jika Anda pernah berhubungan dengan lidah iblis tmux, cukup ketik reset. Atau di dt-tmux: ⎼e⎽e├
polym