2013-02-06 20 views
23

Đôi khi tôi sử dụng vim để chỉnh sửa nhanh một tệp văn bản và tôi thường nhập nhầm chuỗi C-x C-s của Emacs để lưu nó, sau đó vim của tôi không đọc phản hồi ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) trong dòng trạng thái. Có cách nào để làm cho vim đáp ứng một lần nữa, bởi vì nó thực sự làm phiền phải giết thiết bị đầu cuối và sau đó bắt đầu lại từ đầu?Vim không phản hồi sau chuỗi C-x C-01

Trả lời

32

Hãy thử nhập ^Q.

^S^Q là các ký tự "stop" và "start" mặc định trong cài đặt tty.

(vim nên thể thao tác các thiết lập tty để kiểm soát-S không chỉ dừng lại đầu ra, nhưng tôi đã nhìn thấy các hệ thống mà nó không. Có, đó là gây phiền nhiễu.)

+0

Nó đã làm công việc. Cảm ơn. – Maputo

7

Đây là một cổ Unixism cho phép bạn dừng đầu ra của một chương trình với ^S và khởi động lại nó với ^Q, từ cách trở lại trong ngày khi màn hình được cập nhật từ từ đủ để một điều như vậy sẽ hữu ích. Hãy nghĩ về nó như một phiên bản cực kỳ cổ xưa của less hoặc more.

Bạn có thể gõ ^Q để bắt đầu sản xuất chương trình một lần nữa, hoặc tắt cơ chế bây giờ gần-vô dụng này bằng cách thêm này để ~/.bashrc của bạn:

# Are we on a terminal? 
if [ -t 0 ]; 
then 
    stty sane 
    stty stop '' 
    stty start '' 
    stty werase '' 
fi 
+0

'.bashrc' được cập nhật. Cảm ơn bạn. – Maputo

+0

Tôi có 'stop' và' start' được đặt thành '^ S' và'^Q', tương ứng, nhưng tôi vẫn có thể gõ '^ S' trong vim mà không dừng đầu ra, vì vậy các lệnh' stty' được đề xuất không có vẻ cần thiết. Nhưng tôi nghĩ rằng tôi đã có vấn đề tương tự trên hệ thống Debian 6.0.6 của tôi tại nơi làm việc. Tôi sẽ cố gắng tìm ra sự khác biệt là gì. –

Các vấn đề liên quan