Dừng zsh hoàn thành thư mục cha


8

Tôi đang sử dụng zsh với zshrc của grml làm cơ sở. Là một phần trong công việc của tôi, tôi truy cập quy định đường dẫn mạng (ví dụ: NFS. AFS.)

Nếu tôi viết / a / long / mạng / path / on / the / other / side / of / the / world nhấn TAB hai lần thì sẽ rất chậm khi zsh bắt đầu tìm kiếm theo / a / then / a / long / a / long / mạng v.v ...

Đồng thời chạy ls / a / long / network / path / on / the / other / side / of / the / world trở lại trong một giây. Vì vậy, tôi muốn nói với zsh ngừng thứ hai đoán tôi. (Nếu tôi viết / usr / src / linuxx / và sau đó nhấn tab, nó sẽ chỉ ra rằng tôi muốn / usr / src / linux / và điều này thật tuyệt vì mạng nó gây hại cho tôi nhiều hơn là tốt). Tôi chỉ muốn tự động hoàn thành "ở cuối" sau dấu gạch chéo cuối cùng.

Đôi khi tôi đang sử dụng một cd giải pháp vào thư mục sau đó sử dụng tự động hoàn thành. Chắc chắn phải có một cách tốt hơn.

Làm thế nào tôi có thể đạt được điều này?

Câu trả lời:


6

Loại hành vi này được cấu hình thông qua các kiểu (ngoại trừ một vài nguyên tắc cơ bản có tùy chọn). Bạn sẽ muốn tắt path-completion.

Theo mặc định, hoàn thành tên tệp kiểm tra tất cả các thành phần của một đường dẫn để xem liệu có hoàn thành của thành phần đó không. Ví dụ, /u/b/zcó thể được hoàn thành /usr/bin/zsh. Hoàn toàn thiết lập kiểu này thành sai sẽ ức chế hành vi này đối với các thành phần đường dẫn lên đến /trước con trỏ

zstyle ':completion:*' path-completion false

Bạn có thể muốn bật accept-exact-dirsthay thế. Khi bật path-completionaccept-exact-dirsbật, zsh sẽ chỉ cố gắng hoàn thành các thành phần đường dẫn khác với thành phần cuối cùng nếu đường dẫn không tồn tại.

zstyle ':completion:*' accept-exact-dirs true

Tôi thấy rằng tôi chỉ chấp nhận câu trả lời này. Tôi nghĩ tôi cũng nên nói: "tuyệt vời đây chính xác là thứ tôi cần" -ed. cám ơn ;-).
ttyS0
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.