2009-02-19 12 views
33

Làm cách nào để định cấu hình hoàn thành tab Zsh khi tôi nhập cd ..<TAB> nó mở rộng thành cd ../ và sau khi nhấn <TAB> lần nữa đề xuất các thư mục trong thư mục chính để hoàn thành?Hoàn thành tab Zsh cho "cd .."

Ví dụ: nó sẽ hiển thị cùng một hành vi như khi nhập ví dụ cd Documents<TAB> mở rộng đến cd Documents/ và sau khi nhấn <TAB> một lần nữa đề xuất các thư mục trong Documents để hoàn tất.

Là điểm khởi đầu cho cấu hình, tôi sử dụng .zshrc và Zsh 4.3.9 từ MacPorts trống.

+0

trong một thời gian dài tôi đã nghi ngờ này – JuanPablo

Trả lời

56

Cùng một vấn đề với debian không ổn định, Ubuntu jaunty, cả hai tàu zsh 4.3.9. Tôi biết nhiều người có cấu hình khác nhau.

Sau khi đọc http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=514152 tôi thêm

zstyle ':completion:*' special-dirs true 

để cấu hình của tôi và bây giờ tất cả mọi thứ hoạt động tốt trở lại.

+12

'man zshcompsys' cũng gợi ý điều này: ' zstyle -e ': hoàn thành: *' special-dirs '[[$ PREFIX = (../) # (|. | ..)]] && reply = (..) ''tránh" ./ "và" ../ "được đề xuất mọi lúc. – exic

-10

Điều này có thể hoặc không phải là câu trả lời hữu ích - chuyển sang bash, thực hiện những gì bạn muốn trong hộp.

+11

Điều đó phần nào giống như nói với một người dùng vim chuyển sang emacs, bởi vì anh ta không thể tìm thấy một chuyển đổi cấu hình ... IMHO zsh là mạnh hơn bash và cũng đi kèm với một hoàn thành tuyệt vời chức năng. Bạn chỉ cần kích hoạt nó ... – f3lix

8

Đặt này vào bạn ~/zshrc:

autoload -Uz compinit 
compinit 

Ngoài ra còn có một dự án với chức năng zsh/cấu hình cho Mac OS X trên http://code.google.com/p/zsh-templates-osx/. Cá nhân tôi nghĩ rằng đó là một quá mức cần thiết để sử dụng toàn bộ gói. Nhưng tìm thấy nó hữu ích cho anh đào chọn một số thủ thuật, chức năng, hoàn thành vv và tạo của riêng tôi .zshrc

+0

Cảm ơn bạn, điều này cấu hình chính xác hành vi mà tôi đang tìm kiếm. –

+0

Tùy chọn z thực hiện trong mã của bạn là gì? –

+0

tùy chọn dòng lệnh tải tự động: -U - mở rộng bí danh mở rộng cho các hàm -k - chức năng đánh dấu cho tự động tải kiểu ksh -t - bật theo dõi thực thi cho các hàm -w - chỉ định đối số đó tham chiếu đến tệp được biên dịch với zcompile -z - chức năng đánh dấu cho tự động tải kiểu zsh – f3lix

2

Thực tế tôi đã phát hiện ra rằng vấn đề dường như không đến từ cấu hình. Khi sử dụng một .zshrc mà chỉ chứa

autoload -Uz compinit 
compinit 

Tab hoàn thành các công trình như dự định cho cd ..<TAB> khi sử dụng mặc định Mac OS X Zsh (4.3.4). Nhưng với MacPorts Zsh (4.3.9) việc hoàn thành tab chỉ hoạt động đối với các thư mục khác chứ không phải cho ..