2012-04-07 39 views
5

Với zsh/oh-my-zsh/iterm2, cách tuyệt vời để điều hướng qua lịch sử lệnh thiết bị đầu cuối.phím mũi tên lên để tìm kiếm 2 từ được cho bằng vỏ zsh

Nếu tôi đã đưa ra một lệnh nói knife cookbook upload application vài ngày trước và để có được lệnh, tôi có thể làm k hoặc kni hoặc knif và bấm phím mũi tên lên, nó sẽ lặp qua lịch sử lệnh bắt đầu với knife từ.

Nhưng nếu các lệnh tương tự đã chạy bắt đầu bằng knife, tôi sẽ phải lặp qua các lệnh bằng cách sử dụng phím mũi tên lên.

Nhưng nếu tôi muốn tìm kiếm qua nhiều từ, hãy nói để nhận lệnh bằng cả hai knife node, zsh không hỗ trợ điều này và bắt đầu hiển thị các lệnh bắt đầu chỉ bằng knife.

Vì vậy, có cách nào để nhận các lệnh bắt đầu bằng hai từ không? do đó tôi chỉ cần gõ hai từ và nhấn phím mũi tên lên để chỉ hiển thị những lệnh bắt đầu bằng hai từ được nhập.

Trả lời

2

Ngoài @Shep câu trả lời tôi sẽ đề nghị thay đổi hành vi <C-r> từ tìm kiếm chuỗi chỉ chỉ đơn giản để tìm kiếm mẫu glob:

bindkey "\C-r" history-incremental-pattern-search-backward 

. Trong trường hợp này, bạn sẽ đạt được kết quả mong muốn bằng cách tìm kiếm knife*node. Nhân tiện, nếu bạn đã thực hiện knife node<Up>, zsh nên tìm kiếm các lệnh bắt đầu bằng knife node, không chỉ với knife. Nhưng nó sẽ không tìm kiếm các lệnh chứa cả hai knifenode được phân tách bằng các từ khác, cũng như không tìm kiếm các lệnh có chứa knife node không ở đầu dòng (nói về tiện ích history-beginning-search-backward).

+0

tìm kiếm chính xác như bạn đã nói. khi tôi gõ 'nút con dao ' Tôi chỉ muốn các lệnh bắt đầu bằng 'nút con trỏ'. Nhưng mặc dù tôi gõ 'nút dao ', nó vẫn hiển thị tất cả các lệnh bắt đầu bằng 'dao'. – Autodidact

+0

@Millisami Bạn nên chắc chắn rằng '' được liên kết với tiện ích 'history-start-search-backward' vì tôi chưa bao giờ thấy hành vi khác nhau. Nhưng tôi đang sử dụng zsh từ phiên bản 4.3.10 hoặc 4.3.9 AFAIR, nếu bạn có phiên bản cũ hơn thì có thể đã có sự thay đổi. Tôi thấy trong 'man zshzle' có một widget' history-search-backward' được ánh xạ theo mặc định là ' N' và' n', nó có cùng hành vi mà bạn mô tả. Hãy thử tìm kiếm zshrc của bạn cho dòng có chứa tên widget này và thay thế nó bằng 'history-start-search-backward' (và thực hiện hành động tương tự cho' history-search-forward' để làm cho nó phù hợp). – ZyX

+0

Nhân tiện, tôi không nói rằng tiện ích này bị ràng buộc theo mặc định. Nhưng tôi không thấy tiện ích * any * nào được liên kết với khóa ' 'theo mặc định, do đó, nó phải là ánh xạ. AFAIK Mac OS (iterm2 = Mac OS X, phải không?) Có một số mặc định cho zsh ở đâu đó trong/etc (trên Gentoo tôi có chúng trong '/ etc/zsh/zprofile', nhưng không có ràng buộc và không có mặc định không cần thiết để zsh hoạt động bình thường), hoặc nó có thể bị ràng buộc bởi các tệp oh-my-zsh, bạn cũng có thể tìm kiếm các vị trí này, nhưng tốt hơn là chỉ cần thêm một ràng buộc vào zshrc của bạn. – ZyX

1

Có thể không chính xác những gì bạn đang tìm kiếm, nhưng gõ C-r sẽ mở một lệnh tìm kiếm ngược, sẽ tìm kiếm bất kỳ chuỗi nào bạn đã nhập, bắt đầu bằng chuỗi gần đây nhất. Để có được lần thứ hai gần đây nhất, nhấn control-r một lần nữa (và vv).

Xem thêm related thread trên siêu người dùng.

+0

@Shef, tôi biết rằng tìm kiếm ngược lại. Nhưng nó không chính xác tôi đang tìm kiếm. Cảm ơn. – Autodidact

Các vấn đề liên quan