Bây giờ tôi rất vui khi sử dụng zsh
và tôi khá hài lòng với cài đặt lịch sử của mình, đó là:
# Write to history immediately
setopt inc_append_history
# History shared among terminals
setopt share_history
# Save extended info in history
setopt extended_history
# Ignore duplicates
setopt hist_ignoredups
Nhưng điều thường xảy ra là tôi cần sử dụng các lệnh cụ thể bên trong một số thư mục cụ thể. Ví dụ, khi tôi ở trong ~/my_project
tôi thường gọi make target1 && ./run1
, nhưng khi tôi ở trong ~/second_project
tôi thường cần make target2 && cat foobar | ./run2
.
Đó là: các thư mục khác nhau, nhưng các lệnh tương tự.
Vì vậy, tôi thường cd ~/my_project
và gõ make
và sau đó tìm kiếm ngược trong lịch sử cho đến khi tôi tìm thấy những gì tôi cần. Nhưng nếu nó xảy ra mà tôi đã làm việc second_project
, khi tìm kiếm lịch sử tôi sẽ tìm thấy một số lệnh mà tôi không cần.
Vì vậy, câu hỏi của tôi: một plugin / thiết lập / cái gì đó tồn tại cho zsh sao cho khi tìm kiếm trong lịch sử, các lệnh được gọi trong thư mục hiện tại được hiển thị đầu tiên?
Lý tưởng nhất là mọi lệnh lịch sử phù hợp khác sẽ xuất hiện sau các lệnh đó, tùy chọn chỉ định số lượng phần tử ưu tiên tối đa.
Tôi sẽ cố gắng tự viết một cái gì đó như thế này, nhưng tôi vẫn không biết cách viết các plugin zsh tùy chỉnh, cách xử lý lịch sử, v.v.