Việc hoàn thành tab ZSH của lệnh git rất chậm. Làm thế nào tôi có thể tắt nó?


18

Nếu tôi gõ:

rm <TAB>

Tôi sẽ thấy sự hoàn thành có thể gần như ngay lập tức.

Tuy nhiên, nếu tôi gõ:

git rm <TAB>

Nó sẽ bị treo trong vài giây nếu nó ở trong một repo git hoặc không hiển thị bất kỳ sự hoàn thành nào nếu tôi ở ngoài một repo git.

Làm thế nào tôi có thể sửa chữa hành vi này?

Không có gì trong .zshrc của tôi có vẻ như phải làm với git: - /


+1 Điều này khiến tôi rất bực mình Tôi đã nối dây não để không bị tấn công <TAB>khi sử dụng git.
Christopher

Câu trả lời:


26

Cuối cùng tôi đã bận tâm đến google này và đưa ra câu trả lời SO này, nó hoạt động hoàn hảo với tôi. Thêm cái này vào .zshrc:

__git_files () { 
    _wanted files expl 'local files' _files     
}

Ngoài ra còn có một chủ đề danh sách gửi thư sâu ở đây về nó giải thích những gì zshđang làm mất quá nhiều thời gian.


1
Điều này đã không làm việc cho tôi. Tôi đang tải các plugin oh-my-zsh sau: plugin = (git gitfast last-work-dir zeus). Tôi đã tải các chức năng trên sau các plugin.
justingordon

1
Tôi đã từng gặp vấn đề tương tự. Nhận xét để xác nhận thành công: trên OSX 10.8.5, zsh 4.3.11, git 1.8.2, mục nhập .zshrc đã tạo ra sự khác biệt. Không có nó, cpu thường xuyên được ghim ở mức 100%. Với nó, việc hoàn thành tab có vẻ giống với các lệnh git như bất kỳ lệnh nào khác. Cảm ơn bạn! :)
vào

Hãy chắc chắn rằng bạn đặt lệnh này trước các plugin zsh của mình, nếu không bạn có thể tự động hoàn thành nhanh, nhưng sẽ xảy ra lỗi khi bạn thực sự chạy lệnh git.
Simon

1

Đây là một tùy chọn khác: hoàn thành Git zsh chính thức: git-xong.zsh . Tất cả những gì bạn cần làm là tải nó xuống ~/.zsh/_gitvà đảm bảo rằng nó nằm trong đường dẫn của bạn:

fpath=(~/.zsh $fpath)

Tôi thấy thú vị khi chủ đề này được đề cập trong một phản ứng khác; Tôi đã bắt đầu chủ đề đó và kết quả là tôi đã hoàn thành Git zsh chính thức.

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.