~ / .inputrc tệp không tìm nguồn cung ứng chính xác


14

Tôi có tệp ~ / .inputrc này mà tôi đã tạo cho các ràng buộc khóa nhất định.

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

Bất cứ khi nào tôi cố chạy source ~/.inputrc, nó sẽ báo lỗi sau:

\ e [1; 5C: chuyển tiếp từ: Không tìm thấy lệnh. \ e [1; 5D: backward-word: Không tìm thấy lệnh. \ e [5C: Forward-word: Không tìm thấy lệnh. \ e [5D: backward-word: Không tìm thấy lệnh. \ e \ e [C: Forward-word: Không tìm thấy lệnh. \ e \ e [D: backward-word: Không tìm thấy lệnh.

Nó cũng không hoạt động khi tôi mở một thiết bị đầu cuối mới, tôi không gặp lỗi nhưng các tổ hợp phím ctrl của tôi cũng không hoạt động trong thiết bị đầu cuối mới. Tôi đã tự tạo tệp này vì tôi không có quyền truy cập root để thay đổi / etc / inputrc. Ai có thể giúp tôi không? Cảm ơn.

EDIT: Tôi cũng đã thử tập tin có khoảng trắng sau dấu hai chấm (:). Nó không hoạt động. Tôi cũng đã thử làm cho nó thực thi được (chmod + x ~ / .inputrc), không hoạt động.

EDIT: Tôi nhận ra rằng quy trình này chỉ dành cho 'bash' và tôi đang chạy 'tcsh'. Đối với 'csh', sử dụng .bindingstệp thay vì .inputrctệp và sử dụng bindkeycú pháp.

Câu trả lời:


12

Đối với bash, điều này sẽ tải lại các ánh xạ hiện được xác định

bind -f  ~/.inputrc

Lấy bindlệnh từ đâu?
danijar

liên kết là một vỏ dựng sẵn. Bạn đang chạy cái gì vậy?
Paul

Tôi đang sử dụng Debian với zsh.
danijar

điều này không hoạt động với tôi với bash trên RHEL 7. Các ràng buộc .inputrc của tôi vẫn không tải lại sau khi chạy lệnh này.
dùng5359531

@ user5359531, có thể là các ràng buộc trước đó của bạn không "không tải"? (Nếu chúng không được đặt rõ ràng, chúng sẽ vẫn như trước đây.) Hoặc có thể một cái gì đó khác, như ~ / .inputrc của bạn không $include /etc/inputrc?
mwfearnley

6

Các .inputrctập tin không phải là một tập tin có nguồn gốc. Nó nên được tự động đưa vào tài khoản bởi bashhoặc phần mềm khác bằng thư viện readline. Nếu điều này không hoạt động, thêm một khoảng trắng sau dấu hai chấm, vd

"\e[1;5C": forward-word

(Tôi đã luôn thấy một khoảng trắng trong tệp cấu hình này).


1
+1 Nhấn mạnh vào "phần mềm khác sử dụng thư viện readline". .inputrckhông phải là một kịch bản shell; nó là một readlinetập tin cấu hình.
chepner

Trên thực tế, đó là cách tôi có nó đầu tiên và tôi đã thay đổi nó thành không có không gian chỉ để dùng thử. Nó cũng không hoạt động. Tôi đã thêm nó vào phần chỉnh sửa. Cảm ơn.
rrlamichhane

5

Các ràng buộc quan trọng và ~/.inputrctập tin được đăng trong câu hỏi là cho bash. Đối với csh(hoặc tcsh) sử dụng tệp ~/.bindingsvà sử dụng cú pháp sau.

bindkey '^[[1;5C' forward-word
bindkey '^[[1;5D' backward-word

Nhận ra điều này sau khi một số googling.


Vì lý do nào, tsch của tôi đã bỏ qua tệp .bindings. Thêm source ~/.bindingsvào ~/.cshrctập tin của tôi đã sửa lỗi này.
drmuelr
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.