Bash tự động hoàn thành trên symlink đến thư mục hoàn thành toàn bộ thư mục, bao gồm dấu gạch chéo [trùng lặp]


44

Có thể trùng lặp:
Hoàn thành tab với các thư mục / liên kết

Khi tôi có một liên kết tượng trưng fooliên kết đến một thư mục bar/và tôi bắt đầu nhập fvà nhấn tab, nó sẽ hoàn thành foonhưng tôi muốn hoàn thành nó để foo/tôi có thể thêm ngay ký tự tiếp theo để hoàn thành thêm. Làm thế nào tôi có thể làm điều đó?

Câu trả lời:


70

Kích hoạt tính năng mark-symlinked-directoriestùy chọn cho readline .

  1. Chỉnh sửa ~/.inputrc:

    $include /etc/inputrc
    set mark-symlinked-directories on
    
  2. Nhấn C-x, C-rđể tải lại các cài đặt.

Xem phần READLINE trong trang hướng dẫn bashđể biết thêm tài liệu.

Đối với những người không muốn thêm tệp chấm khác, bạn cũng có thể thêm dòng này vào ~/.bashrc:

bind 'set mark-symlinked-directories on'

Cảm ơn bạn rất nhiều, tôi đã xử lý sự khác biệt giữa OSX (mặc định on) và Linux (mặc định off) trong nhiều tháng và cuối cùng tôi đã chán ngấy với google! Bạn là người hùng mới của tôi. :)
staticfloat

3
Trên một số thiết bị đầu cuối Cx, Cr không hoạt động với tôi nên tôi sử dụngbind -f ~/.inputrc
blockloop

3
Điều này cho thấy sức mạnh của stackexchange kết hợp với một câu trả lời đơn giản và câu hỏi được xây dựng tốt, trả lời câu hỏi của tôi trong lần thử đầu tiên, đã đến đây thông qua google, cảm ơn. :)
DusteD

1
dòng này $include /etc/inputrcđể làm gì?
razzak

@razzak: Tải các cài đặt bổ sung từ tệp đó, thường có các tổ hợp phím tiêu chuẩn khác nhau cho các thiết bị đầu cuối phổ biến. (Thông thường chúng được tải tự động, nhưng nếu bạn có một cái ~/.inputrcriêng, bạn cần tải thủ công toàn hệ thống.) Xem phần READLINE trong trang hướng dẫn bashđể biết thêm tài liệu.
grawity

3

Tôi không biết liệu bạn có thể làm điều đó chính xác như bạn đã mô tả hay không, nhưng nếu bạn nhấn tabhai lần, nó sẽ hoàn thành việc mở rộng.

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.