Vấn đề của tôi là shell Bash dừng hiển thị các ký tự tôi nhập vào nó. Nó không đọc các lệnh mặc dù.
Tôi đã gặp vấn đề này khá nhiều lần và tôi không hiểu nguyên nhân của nó. Tôi biết làm thế nào để giải quyết nó, nhưng tôi thực sự không thích nó khi tôi "giải quyết" cách giải quyết vấn đề của mình.
Tôi sẽ mô tả hai cách tôi gặp phải vấn đề này:
Tôi đang chạy một quy trình nhất định, http://pythonpaste.org/script/ và đôi khi khi tôi dừng điều đó hoặc nó phá vỡ sự kiểm soát được đưa trở lại vỏ. Khi tôi đi và nhập lệnh vào trình bao, các ký tự tôi nhập không hiển thị. Khi tôi nhấn enter, các lệnh được gửi. Ví dụ:
- Tôi gõ "ls"
- Tôi chỉ thấy một dấu nhắc trống và không có gì nữa
- Tôi nhấn enter và tôi được cung cấp một danh sách các tập tin, nói cách khác: lệnh được thực thi
- Khi tôi đưa ra lệnh "reset", shell bắt đầu hoạt động bình thường trở lại
Cách thứ hai xảy ra là khi tôi đưa ra một lệnh như thế này:
$ grep foo * -l | xargs vim
Tôi sử dụng grep để tìm các tệp có một mẫu nhất định và sau đó tôi muốn mở tất cả các tệp kết quả từ grep. Điều này hoạt động như một sự quyến rũ (mặc dù không nhanh như tôi mong đợi). Nhưng khi tôi thoát Vim, vỏ của tôi dừng hiển thị các ký tự tôi nhập vào. Một lệnh thiết lập lại giải quyết vấn đề.
Tôi đoán là cả hai vấn đề đều có một lý do tiềm ẩn, nhưng tôi hơi bối rối về lý do đó hoặc lý do đó là gì.
Tìm kiếm cho vấn đề này tự nó có vấn đề vì mô tả là mơ hồ và không có thuật ngữ tìm kiếm khó khăn cho nó.
Biên tập
Tặng
stty --all
lệnh theo yêu cầu của John S. Gruber đã cho đầu ra sau (khoảng trắng được chỉnh sửa để dễ đọc)
speed 0 baud;
rows 53;
columns 186;
line = 0;
intr = <undef>;
quit = <undef>;
erase = <undef>;
kill = <undef>;
eof = <undef>;
eol = <undef>;
eol2 = <undef>;
swtch = <undef>;
start = <undef>;
stop = <undef>;
susp = <undef>;
rprnt = <undef>;
werase = <undef>;
lnext = <undef>;
flush = <undef>;
min = 0;
time = 0;
-parenb
-parodd cs8
-hupcl
-cstopb cread
-clocal
-crtscts
-ignbrk
-brkint
-ignpar
-parmrk
-inpck
-istrip
-inlcr
-igncr
-icrnl
-ixon
-ixoff
-iuclc
-ixany
-imaxbel
-iutf8
-opost
-olcuc
-ocrnl
-onlcr
-onocr
-onlret
-ofill
-ofdel nl0 cr0 tab0 bs0 vt0 ff0
-isig
-icanon
-iexten
-echo
-echoe
-echok
-echonl
-noflsh
-xcase
-tostop
-echoprt
-echoctl
-echoke
stty --all
cho câu hỏi của mình. Cảm ơn trước!
stty --all
và đặt kết quả trong câu hỏi của bạn. Echo là một đặc tính tty đang được tắt. Vim sẽ làm điều này trong khi nó đang chạy, và nó cũng sẽ đặt thiết bị đầu cuối ở chế độ thô. Khi nó thoát, nó sẽ thiết lập lại các thiết lập đầu cuối. Khi vim đang chạy, bạn không muốn lặp lạii
lệnh đưa trình soạn thảo vào chế độ chèn chẳng hạn. Các cài đặt này cho thiết bị tty biết cách xử lý những gì bạn nhập. Trong khi vim đang chạy, nó quan tâm đến việc lặp lại những gì nên được lặp lại, v.v.