Không thể sử dụng CTRL + Trái / Phải trong Bash Terminal


13

Tôi thường sử dụng CTRL+ LeftCTRL+ Rightđể điều hướng giữa các từ trên dòng lệnh. Tôi đã chuyển máy tính xách tay của tôi vào sáng nay và không thể làm điều đó nữa. Thay vào đó, mã đầu vào CTRL+ Leftđược in trong thiết bị đầu cuối.

Tức là: Đây là đầu ra của tôi khi tôi cố điều hướng bằng CTRL+ Left:

~ $ test test ;5D;5D;5D

Thật kỳ lạ, tôi vẫn có thể sử dụng CTRL+ Left/ Rightchỉ tốt trong VIM.


Có thể bạn đặt một cái gì đó trong bashrc của bạn để kích hoạt điều này? Bởi vì nó không hoạt động theo mặc định đối với tôi trên Ubuntu 15.10 ...
Martin Tournoij 11/03/2016

Xin vui lòng gửi đầu ra của grep bind ~/.bashrc . Bạn đang tìm nguồn cung cấp các tệp khác trong ~/.bashrc( grep source ~/.bashrc)?
kos

1
Chỉ tò mò, nhưng đầu ra của là echo $0gì?
Aaron

Câu trả lời:


15

Mở ~/.inputrctệp và thêm các dòng sau:

# mappings for Ctrl-left-arrow and Ctrl-right-arrow for word moving
"\e[1;5C": forward-word
"\e[1;5D": backward-word

Đóng và mở lại shell. Bây giờ bạn sẽ có thể sử dụng các phím đó.

Lý do cho hành vi này? Không hoàn toàn chắc chắn. Vì lý do này hay lý do khác, bạn bashđã dừng đọc /etc/inputrctệp, nhưng nó nên đọc tệp trong thư mục nhà của bạn


Tôi nghĩ vấn đề này bắt đầu với tôi khi tôi tạo tệp ~ / .inputrc. Điều đó sẽ làm điều đó?
wjandrea

1
@wjandrea yep, tôi đã thử nó ngay bây giờ. Trước khi để trống ~/.inputrc, bash hoạt động tốt, bắt đầu hiển thị cùng các ký tự điều khiển cho đầu ra sau khi ~/.inputrctạo trống . Đã xóa nó - Ctrl + phím mũi tên hoạt động trở lại. stracetiết lộ rằng nếu .inputrctồn tại, bash sẽ không đọc /etc/inputrc. Tôi sẽ
loay hoay

1
Nếu bạn thêm $include /etc/inputrcvào đầu ~/.inputrctệp, thì bạn có thể bao gồm hành vi trên toàn hệ thống và sau đó mở rộng điều đó.
Cory Gross
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.