di chuyển về cuối lịch sử bash khi sử dụng tìm kiếm ngược?


12

Tôi giữ lịch sử bash khá dài và đôi khi khi tôi tìm kiếm thứ gì đó có chức năng tìm kiếm ngược bash ( Ctrl+ r) Tôi kết thúc ở đầu lịch sử tìm kiếm và tôi vẫn không tìm thấy những gì tôi cần và sau đó tôi muốn quay lại đến cuối của tập tin lịch sử. Một tùy chọn là sử dụng chức năng tìm kiếm chuyển tiếp ( Ctrl+ s) để di chuyển đến gần cuối lịch sử hoặc thực thi #, nhưng cũng có một phím tắt để di chuyển trực tiếp đến cuối lịch sử bash?


2
historysẽ hiển thị cho bạn tất cả các lệnh bash được thực hiện ..
ryekayo

Câu trả lời:


6

Có chức năng readline end-of-history, theo mặc định được ánh xạ tới M- >nhưng nếu được sử dụng trong quá trình tìm kiếm ngược, nó sẽ thoát khỏi dấu nhắc tìm kiếm ngược.

Một cách giải quyết có thể

Bắt đầu tìm kiếm chuỗi

Thay vào đó, để sử dụng tìm kiếm ngược, bạn có thể sử dụng history-search-backwardhistory-search-forward(mặc định không được ánh xạ), ánh xạ chúng tới up/down(rất hữu ích) trong .inputrc:

# up-down arrow to search in history
"\e[A":history-search-backward
"\e[B":history-search-forward

Vì vậy, sau khi bạn đã nhập, bạn có thể đảo ngược việc nhấn tìm kiếm up (thay vì Ctrl+ R) và khi bạn muốn quay lại phần cuối của lịch sử, bạn có thể sử dụng end-of-historychức năng bằng cách nhấn ( M- >)

Theo cách này "Chuỗi tìm kiếm phải khớp ở đầu dòng lịch sử ", vì vậy, nếu bạn tìm kiếm ls -ltr, bạn phải nhập lsvà sau đó nhấn  upphím.

Tìm kiếm chuỗi con

nếu bạn muốn " Chuỗi tìm kiếm có thể khớp với bất kỳ nơi nào trong dòng lịch sử " , bạn phải sử dụng history-substring-search-forwardhistory-substring-search-backward:

# up-down arrow to search in history
"\e[A":history-substring-search-backward
"\e[B":history-substring-search-forward

Bằng cách này, nếu bạn tìm kiếm ls -ltr, bạn có thể nhập ls, nhưng cũng có thể ltr, trước khi bạn nhấn up.

Tham khảo: Hướng dẫn tham khảo Bash - Các lệnh cho lịch sử .

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.