Sự cố với Màn hình GNU khi sử dụng Emacs Cx Cs (bộ đệm lưu)


33

Khi tôi đang sử dụng emacs trong GNU Screen, nếu tôi gọi màn hình Cx Cs bị treo và không phản hồi với bất kỳ đầu vào bàn phím nào.

Tôi không thể tái tạo điều này, nhưng ít nhất một lần mỗi ngày tôi phải giết phiên màn hình của mình và khởi động lại nó.

Làm sao tôi có thể giải quyết việc này?

Cảm ơn


Unix? Có nhiều sự khác biệt trong việc xử lý thiết bị đầu cuối giữa Linux, BSD, Solaris, ...
grawity

1
Tôi thực sự đang sử dụng Putty để ssh vào một phiên bản Ubuntu Server LTS.
simao

Câu trả lời:


52

CtrlSlà ký tự điều khiển luồng "Tạm dừng truyền" (XOFF) . Thông thường, nó được xử lý bởi trình điều khiển tty hoặc trong trường hợp này là Màn hình. Đối diện của nó là XON, hoặc CtrlQ.

Khi bạn khởi chạy Emacs, nó thường chiếm hầu hết các ký tự đặc biệt (không chỉ kiểm soát luồng, mà còn cả CtrlC"Ngắt" thông thường , chẳng hạn).

  • Sử dụng C-a :flow offđể tắt điều khiển luồng cho cửa sổ Màn hình này.

    Xác nhận với C-a :info(tìm kiếm -flowtrong cửa sổ bật lên).

  • Nếu nó không giúp đỡ, hãy thử stty -ixonhoặc stty stop undef.

    (Bạn có thể làm điều đó từ một cửa sổ riêng bằng cách sử dụng stty -f /dev/tty1hoặc stty </dev/tty1.)

Trên hệ thống của tôi (Linux), Màn hình sẽ thông báo khi điều khiển luồng bị vô hiệu hóa cho tty. Hệ điều hành của bạn có thể có một số hạn chế, mặc dù.


:flow offđã làm việc. cảm ơn! bất cứ cách nào tôi có thể làm cho nó vĩnh viễn?
simao

1
@simao: Xem defflowtrong trang hướng dẫn của screen.
grawity

3
Xây dựng ý kiến ​​của @simao và @ grawity - Để vô hiệu hóa kiểm soát luồng vĩnh viễn (tôi cho rằng đây là kết quả mong muốn đối với hầu hết mọi người), hãy thêm dòng defflow offvào ~/.screenrctệp của bạn hoặc tạo một dòng trong thư mục chính của bạn nếu nó chưa tồn tại. Điều này là đủ để cho phép emacs của tôi hoạt động đúng trong một screencửa sổ. Cách tiếp cận này nên được xem xét trước khi đóng lại bất kỳ phím nào.
pscl

2
Điều này đã giải quyết vấn đề cho tôi, nhưng tôi vẫn chưa tìm hiểu tại sao màn hình "tất cả đột ngột" được đưa vào chế độ này .... có lẽ có một số phím màn hình cho phép điều khiển luồng mà tôi vô tình gõ ... ?? ?
malcook

1
Chúng ta đang nói về màn hình GNU và GNU Emacs, và họ không tìm ra cách nào để làm cho cả hai hoạt động trơn tru ?? ...
yves Baume

4

Tôi gặp vấn đề tương tự với màn hình bị khóa và nhiều vấn đề khác khi sử dụng emacs dưới màn hình. Ví dụ: Ca in emacs, đưa bạn đến đầu dòng, bị chặn bởi màn hình và nó không hoạt động.

DUNG DỊCH:

Tạo một tập tin .screenrc trong thư mục chính của bạn với các mục sau:

#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                                                                         

Sau đó, mỗi lần bạn mở một màn hình mới thay vì sử dụng Ca, bạn cần sử dụng Cu để nhập lệnh màn hình mới. Hai thay đổi khác quan tâm đến một vài điều tôi cần thay đổi để có thể sử dụng emacs dưới màn hình mà không gặp vấn đề gì.


C-ulà một chìa khóa quan trọng cho emacs. Tôi không nghĩ rằng đó là một ý tưởng tốt, nhưng ý tưởng thay đổi .screenrc là sự thay thế tốt hơn.
vfclists
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.