.inputrc TAB không hoạt động như mong đợi


11

Hôm nay tôi đang tham gia, đây là một câu hỏi khác:

Làm thế nào khi tôi đặt những thứ này vào .inputrc, cả hai đều làm điều tương tự?

TAB: menu-complete
Shift-TAB: menu-complete-reverse

tức là cả hai đều làm bất cứ điều gì người cuối cùng nói.

Câu trả lời:


15

Readline không biết gì về một công cụ sửa đổi được gọi Shiftvà lặng lẽ bỏ qua các tên công cụ sửa đổi không xác định. Hãy thử wibble-TAB.

Để liên kết một hành động với Shift+ Tab, bạn cần tìm ra chuỗi thoát nào mà thiết bị đầu cuối của bạn gửi. Trong bash, chạy catvà gõ Ctrl+ Vsau đó Shift+ Tab. Điều này sẽ chèn chuỗi thoát theo nghĩa đen. Có khả năng nhân vật đầu tiên sẽ là một nhân vật thoát, được thể hiện như ^[; các thiết bị đầu cuối khác nhau có trình tự thoát khác nhau, nhưng các khả năng phổ biến là ␛[Z(ví dụ thoát, khung bên trái, viết hoa Z) và ␛␉(tức là thoát, tab). Ràng buộc chìa khóa một cách thích hợp ~/.inputrc( \ecó nghĩa là một nhân vật thoát).

"\e\t": menu-complete-backward
"\e[Z": menu-complete-backward

1
Ah, ^[Zlàm việc cho tôi (BASH); Cảm ơn các câu trả lời chi tiết! :)
dùng541686

Bạn nhấn Enter trước hay sau 'mèo'? Tại sao 'mèo' cần thiết? Tôi dường như có được các chuỗi thoát tương tự mà không có 'con mèo'.
dougkramer

@ Chạy douglas.kramer cattránh bất kỳ bash ràng buộc. Thông thường bash có cùng ràng buộc Ctrl + V để chèn ký tự tiếp theo theo nghĩa đen để nó không tạo ra sự khác biệt.
Gilles 'SO- ngừng trở nên xấu xa'

Tôi gặp sự cố khi nhận Shift + Tab để liên kết với 'lệnh shell-bung rộng'. Tôi nhận được: $ cat <Enter> <Shift+Tab>đó hiển thị ^[[Z Tôi luôn thêm \etrước của dãy tôi nhận được từ Ctrl+V? Điều này có dịch sang:"\e^[[Z": shell-expand-command
dougkramer

@dou Thay thế ^[bằng `\ e`
Gilles 'SO- ngừng trở thành ác quỷ'

4

Trên Xubfox 16.04, thiết bị đầu cuối: xfce4-terminal 0.6.3, shell: bash

Để Shift+ Tablàm việc tôi phải sử dụng:

bind '"\e[Z": menu-complete-backward'

Đang ~/.bash_profilesử dụng: bind TAB:menu-completebind '"\e[Z": menu-complete-backward'(lưu ý việc sử dụng dấu ngoặc đơn và dấu ngoặc kép!).
Erik
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.