Masalah dengan Layar GNU saat menggunakan Emacs Cx Cs (save-buffer)

33

Ketika saya menggunakan emacs di bawah Layar GNU, jika saya sebut layar Cx Cs hang dan tidak menanggapi input keyboard apa pun.

Saya tidak dapat mereproduksi ini, tetapi setidaknya satu kali per hari saya harus mematikan sesi layar saya dan memulai kembali.

Bagaimana saya bisa memecahkan masalah ini?

Terima kasih

simao
sumber
Unix yang mana ? Ada banyak perbedaan dalam penanganan perangkat terminal antara Linux, BSD, Solaris, ...
grawity
1
Saya sebenarnya menggunakan Putty untuk ssh menjadi contoh Ubuntu Server LTS.
simao

Jawaban:

52

CtrlSadalah karakter kontrol aliran "Jeda transmisi" (XOFF) . Biasanya itu ditangani oleh driver tty, atau dalam hal ini Layar. Kebalikannya adalah XON, atau CtrlQ.

Saat Anda meluncurkan Emacs, biasanya ia mengambil alih sebagian besar karakter khusus (bukan hanya kontrol aliran, tetapi juga CtrlC"Interrupt" yang biasa , misalnya).

  • Gunakan C-a :flow offuntuk menonaktifkan kontrol aliran untuk jendela Layar ini.

    Konfirmasikan dengan C-a :info(cari -flowdi jendela sembulan).

  • Jika tidak membantu, coba stty -ixonatau stty stop undef.

    (Anda dapat melakukannya dari jendela terpisah menggunakan stty -f /dev/tty1atau stty </dev/tty1.)

Pada sistem saya (Linux), Layar tidak pemberitahuan saat kontrol aliran dinonaktifkan untuk tty. OS Anda mungkin memiliki beberapa batasan.

grawity
sumber
:flow offbekerja. Terima kasih! Bagaimana saya bisa membuatnya permanen?
simao
1
@simao: Lihat defflowdi halaman manual screen.
grawity
3
Menguraikan komentar @simao dan @ grawity - Untuk menonaktifkan kontrol aliran secara permanen (saya berasumsi ini adalah hasil yang diinginkan bagi kebanyakan orang), tambahkan baris defflow offke ~/.screenrcfile Anda , atau buat satu di direktori home Anda jika belum ada. Ini cukup untuk memungkinkan emacs saya berfungsi dengan baik di dalam screenjendela. Pendekatan ini harus dipertimbangkan sebelum mengubah kunci apa pun.
pscl
2
Ini menyelesaikan masalah bagi saya, tetapi saya belum belajar mengapa layar "tiba-tiba" dimasukkan ke mode ini .... mungkin ada beberapa stroke layar kunci yang memungkinkan kontrol aliran yang saya ketik secara tidak sengaja ... ?? ?
malcook
1
Kita berbicara tentang layar GNU dan GNU Emacs, dan mereka tidak menemukan cara untuk membuat keduanya berfungsi dengan mulus ?? ...
yves Baumes
4

Saya memiliki masalah yang sama dengan layar yang terkunci dan banyak lagi ketika menggunakan emacs di bawah layar. Sebagai contoh, Ca in emacs, yang membawa Anda ke awal baris, disadap oleh layar dan itu tidak berfungsi.

LARUTAN:

Buat file .screenrc di direktori home Anda dengan yang berikut ini:

#Change escape character to C-u 
escape "^uu"                                                                    
#unbind ctrl+s from xoff in order to be able to search in emacs                 
bind s                                                                          
bind ^S                                                                         
#unbind ctrl+x from lockscreen in order to be able to save in emacs             
bind x                                                                          
bind ^X                                                                         

Maka setiap kali Anda membuka layar baru alih-alih menggunakan Ca, Anda harus menggunakan Cu untuk memasukkan perintah layar baru. Dua perubahan lainnya mengurus beberapa hal lagi yang perlu saya ubah agar dapat menggunakan emacs di bawah layar tanpa masalah.

Panos
sumber
C-uadalah kunci penting bagi emacs. Saya tidak berpikir itu adalah ide yang bagus, tetapi ide untuk mengubah .screenrc adalah alternatif yang lebih baik.
vfclists