Sebagai contoh, jika saya tail -f
membuat file atau read
memasukkan input pengguna, <Enter>
akan menghasilkan ^M
di terminal alih-alih mengakhiri read
atau menambahkan baris baru ke stdout. ^J
bekerja dengan baik.
Saya ssh
masuk ke sistem ubuntu, jika itu penting. Ini terjadi pada saya baik di zsh dan bash. Salah satu solusi yang saya mainkan adalah memetakan kembali ^M
ke ^J
dalam zsh, tetapi sepertinya itu tidak akan memperbaiki masalah root. Adakah yang tahu apa yang menyebabkan ini?
Sunting: Untuk menjawab beberapa pertanyaan, saya ssh
masuk ke Ubuntu dari OSX. Saya menggunakan iTerm dan zsh. Saya juga lupa menyebutkan bahwa saya menggunakan tmux pada mesin Ubuntu.
Sunting 2: Tidak terjawab pertanyaan. Ketika saya mengetik Ctrl-V Enter
saya dapatkan ^M
(baik di OSX dan Ubuntu).
Sunting 3: Di OSX dan Ubuntu echo $TERM
menghasilkan screen-256color
.
sumber
Jawaban:
Jika ada orang lain yang memiliki masalah ini, kemungkinan besar masalah dengan pengaturan jalur terminal stty daripada masalah TERM. Jika ini terjadi lagi pada Anda, coba jalankan
stty sane
dan beri tahu kami jika itu memperbaikinya.sumber
Coba jalankan
stty -a
untuk melihat pengaturan terminal Anda. Kecurigaan saya adalah bahwaicrnl
pengaturan Anda tidak disetel dan akan ditampilkan sebagai-icrnl
(tanda minus berarti dimatikan) alih-alih memiliki pengaturan yang biasa untuk dihidupkan. Berikut adalah bagaimana terminal saya biasanya diatur ketika saya masuk:Dan saya tidak punya masalah dengan akhiran baris: baik kembali (^ M) atau masukkan (^ J) akan mengakhiri jalur input. Tetapi jika saya
icrnl
mematikan maka ^ kode M tiba-tiba muncul setiap kali saya berbicara dengan sebuah program dan tekan enter:Kode ini
icrnl
berarti "ubah carriage return menjadi baris baru" dan bersembunyi dari program yang sedang berjalan yang mungkin Anda ketikkan ^ M ketika Unix benar-benar menginginkan ^ J. Keyboard lama dulunya memiliki tombol Return dan Enter yang terpisah (di mana Return biasanya memajukan Anda melalui formulir dan Enter mengirimkannya), tetapi hari ini kami umumnya hanya memiliki satu kunci akhir baris dan oleh karena itu pengaturan terminal ini membantu menggabungkan dua arti.Tambahkan
stty icrnl
perintah ke Anda.profile
atau.bashrc
jika Anda menemukan bahwa ini memang pengaturan masalah.sumber