hoàn thành lịch sử oh-my-zsh


45

Gần đây tôi đã chuyển sang zsh, sử dụng robbyrusselloh-my-zsh . Trước đó tôi đã sử dụng bash với rất nhiều công cụ tùy chỉnh và tôi chỉ thiếu một điều vì zsh đang cố gắng 'quá thông minh':

Nếu tôi gõ git commitvà sau đó zsh đi qua tất cả gitcác lệnh gần đây . Điều tôi thực sự muốn mặc dù là trải qua tất cả các lệnh bắt đầu bằng git commit(không chỉ git).

Làm thế nào tôi có thể đạt được hành vi này trong (oh-my-) zsh?


Thật kỳ lạ, tôi sử dụng OMZSH và nó hoạt động như thế này. Bạn có 'plugin = (git)' trong zshrc của mình không?
Chris2048

vâng tôi làm, nhưng nó không chỉ dành cho git, tất cả các lệnh được hoàn thành theo cách này.
Patrick Oscarity

Câu trả lời:


66

Tôi đã tìm thấy giải pháp cho vấn đề của mình trong tài liệu ZSH . Oh-my-zsh dường như ánh xạ Phím tới một cái gì đó như

bindkey '\e[A' history-search-backward
bindkey '\e[B' history-search-forward

Mà mang lại hành vi chính xác tôi mô tả ở trên. Tài liệu ZSH mô tả hành vi của history-search-backwardnhư

Tìm kiếm ngược trong lịch sử cho một dòng bắt đầu bằng từ đầu tiên trong bộ đệm .



Thay vào đó, thứ tôi muốn là ánh xạ sau, mà tôi đã chèn vào ~/.zshrc:

bindkey '\e[A' history-beginning-search-backward
bindkey '\e[B' history-beginning-search-forward

Hành vi của history-beginning-search-backwardnhư sau:

Tìm kiếm về phía trước trong lịch sử cho một dòng bắt đầu với dòng hiện tại lên đến con trỏ . Điều này để con trỏ ở vị trí ban đầu của nó.

Ngoài ra, nếu \e[Akhông hoạt động cho mũi tên lên hoặc xuống, hãy nhấn <ctrl-v><KEY (e.g., up arrow)>vào một thiết bị đầu cuối khác ^[OA. Sau đó, bạn có thể sử dụng này thay vì \e[A. Quá trình này được mô tả ở đây: http://zshwiki.org/home/zle/bindkeys


1
Cảm ơn bạn, cảm ơn bạn, cảm ơn bạn!! Tôi đã phát điên vì điều này
mhenrixon

Đối với người dùng không phải OMZ như tôi: bindkeykhông làm gì thực sự, do lỗi, vì vậy nhóm OMZ đã vá nó bằng plugin này . Đơn giản chỉ cần tải về và nguồn nó trước bindkey.
Franklin Yu

@FranklinYu bạn có nhận ra đó là tổng số bs không? plugin đó không làm gì với bindkey ngoại trừ USE nó để bắt một số sự kiện.
nonchip

Wow, điều này là hoàn hảo!
sóc

12

Tôi muốn hành vi tương tự cho zsh với oh-my-zshplugin được cài đặt và tìm thấy history-substring-search.

Tôi đã đạt được hành vi tương tự được mô tả ở trên bằng cách thêm plugin vào ~/.zshrc:

plugins=(git brew npm history-substring-search)

Tôi đoán plugin này không tồn tại trở lại khi câu hỏi này được nêu ra. Chỉ là một cách thay thế để đạt được điều tương tự.

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.