Làm thế nào để TAB tự động hoàn thành các tùy chọn để hoàn thành?


Câu trả lời:


22

Tùy thuộc vào lệnh:

  • Ai đó có thể đã viết một hàm để tạo ra các đối số có thể hoàn thành, bao gồm các tùy chọn. Bạn sẽ tìm thấy các chức năng cho một số lệnh trong /etc/bash_completion.d/*(hoặc một vị trí khác trên một số hệ thống). Các chức năng này được đăng ký với tích hợp (ví dụ: bash gọi hàm khi bạn nhấn vào lệnh). Họ sử dụng tính năng tích hợp sẵn để nói với bash Đây là những cách hoàn thành có thể có.complete complete -F _find find_findTabfindcompgen
  • Đối với một số lệnh, bash sẽ gọi lệnh với đối số --helpvà phân tích đầu ra. Các lệnh như vậy có thể được đăng ký với tích completehợp, ví dụ complete -F _longopt ls. _longoptthực tế là một hàm tạo hoàn thành, điều này xảy ra để phân tích đầu ra của lệnh thay vì sử dụng một danh sách cố định. (Có các hàm hoàn thành chuyên biệt khác phân tích đầu ra của lệnh để tạo ra các hoàn thành có thể; xem xét /etc/bash_completion.d/*các ví dụ.)
  • Đối với những thứ như bí danh, hàm hoàn thành sẽ tìm kiếm chúng trong các bảng bên trong của bash. Các completebuilt-in có các tùy chọn cho điều đó, ví dụ như -Acho bí danh.

10

Có một cái nhìn vào tập tin

/ etc / bash_completion

và quan sát các tập tin từ thư mục:

/etc/bash_completion.d

Bạn sẽ tìm thấy câu trả lời.


2

Hỗ trợ hoàn thành bash được cung cấp trong Debian và Ubuntu bởi gói hoàn thành bash . Bạn cũng thường cần bỏ ghi chú sau /etc/bash.bashrcvà / hoặc .bashrcnguồn các tệp hoàn thành bash. Sau đây là từ /etc/bash.bashrc:

# enable bash completion in interactive shells
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
    . /etc/bash_completion
fi

để làm việc này Tôi thường không chú ý đến nó trong cả hai. Việc xử lý các shell tương tác / đăng nhập trong Debian là một mớ hỗn độn.

Nhận xét tương tự có lẽ áp dụng cho các bản phân phối khác, mặc dù có thể chúng cho phép tìm nguồn cung ứng theo mặc định.

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.