Thiết bị đầu cuối Ubuntu, làm thế nào để tôi cài đặt tab Hướng dẫn (tự động hoàn thành) một tên tệp window-cmd-style (tùy chọn chu kỳ)?


13

Về cơ bản tôi muốn thay đổi thiết bị đầu cuối ubfox theo chức năng, để tôi có thể xoay vòng tất cả các tùy chọn khi tab i (trên hàng dòng cmd) và không liệt kê các tùy chọn như mặc định?

Tôi đang sử dụng bash, Ubuntu 9.04. Tôi thấy một số khả năng trong ".bashrc", nhưng phải có ai đó đã giải quyết vấn đề này?


bạn có biết rằng nếu nhấn Tab hai lần bạn sẽ có một danh sách tất cả các sự hoàn thành có thể, phải không?
vava

@vava: Bạn đang mô tả lệnh có thể hoàn thành của bash, thường là hành vi mặc định. Câu hỏi là làm thế nào để thay thế hành vi này bằng hành vi được cung cấp bởi lệnh hoàn thành menu của bash.
las3rjock

@ las3rjock, tôi biết, đó là lý do tại sao tôi để lại nhận xét, không phải là câu trả lời. Có thể OP không biết về tính năng đó vì nó tốt hơn chế độ đạp xe.
vava

@vava: OP mô tả hành vi có thể hoàn thành có thể và nói rằng anh ta muốn thay thế nó bằng hành vi hoàn thành menu.
las3rjock

@vava tôi biết thiết bị đầu cuối hoạt động như thế nào và tôi muốn thay đổi hành vi gây phiền nhiễu này.
Daniel T. Magnusson

Câu trả lời:


16

Theo các ý kiến ​​trên trang này , đặt

bind '"\t":menu-complete'

trong của bạn .bashrcnên kích hoạt hoàn thành tab tuần hoàn.

Xem phần 8.4.6 của Tài liệu tham khảo Bash để biết thêm thông tin.


Cảm ơn, tìm rất tốt đẹp! - Chỉ thích bình luận trên trang đó "Tôi đã mất nhiều năm để tìm ra rằng bash hỗ trợ hoàn thành tab tuần hoàn" - hah, superuser thắng!
Daniel T. Magnusson

Cảm ơn! Một khi điều này được thực hiện, có một tổ hợp phím ghi đè để sử dụng cách cũ trong giây lát không? Shift + TAB, ví dụ.
Ace

0

Một cái gì đó là cứu tinh cho tôi là có chu kỳ bash thông qua các khả năng thay vì hiển thị một danh sách ngu ngốc.

Vì bash đang sử dụng readlineđể tự động hoàn thành, hãy thêm các dòng sau vào~/.inputrc

Khi bạn đã hài lòng và đã kiểm tra kỹ lưỡng dưới giải pháp cho một ngày vài / tuần, cắt và dán (không sao chép!) Các thiết lập tương tự từ ~/.inputrcđể /etc/inputrcchứa các thiết lập trên toàn hệ thống, làm cho này dành cho tất cả người dùng trên hệ thống của bạn (bao gồm cả khách).

Các mã:

# mappings to have up and down arrow searching through history:
"\e[A": history-search-backward
"\e[B": history-search-forward
# mappings to have left and right arrow go left and right: 
"\e[C": forward-char
"\e[D": backward-char

# mapping to have [Tab] and [Shift]+[Tab] to cycle through all the possible completions:
"\t": menu-complete
"\e[Z": menu-complete-backward

sau đó exitthiết bị đầu cuối của bạn (hoặc thiết bị đầu cuối từ xa như putty) và mở lại ...

Ví dụ:

  1. Khi bạn có 3 file: file1, file2file3và bạn gõ:

    e fTabTabTab

    nó sẽ quay vòng qua:

    e file1
    e file2
    e file3

    và khi bạn muốn quay lại, chỉ cần nhấn Shift+Tab

  2. Khi bạn gõ:

    very-complicated-command with lots of command line parameters

    và lần tới khi bạn cần cùng một lệnh, bạn chỉ cần gõ:

    very

    và nó sẽ gõ cho bạn:

    very-complicated-command with lots of command line parameters

Điều này sẽ giúp bạn tiết kiệm rất nhiều thời gian trong bash! ;-)

Nguồn

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.