Zsh: tạo mũi tên lên bỏ qua các lệnh giống hệt nhau


10

Trong hầu hết các shell Unix, phím mũi tên lên thay thế lệnh đang được chỉnh sửa bởi lệnh trước đó trong lịch sử. Lịch sử có thể được nhìn thấy bằng cách sử dụng lệnh history.

có thể bị ép nhiều lần để leo lên trong lịch sử.

Câu hỏi của tôi là:

Làm cách nào tôi có thể định cấu hình trình bao của mình để bỏ qua tất cả các lệnh giống hệt với lệnh hiện tại?

Quả thực tôi thường nhập nhiều makeliên tiếp. Khi tôi muốn nhập lại (hoặc sửa đổi một chút) một lệnh cũ hơn, tôi phải nhấn nhiều lần chỉ để bỏ qua tất cả các makelệnh.

Tôi biết rằng đó không phải là mẹo duy nhất giúp tăng năng suất vỏ.

Tặng kem:

  • đưa ra một cấu hình làm việc cho shell Bash.
  • lưu giữ lịch sử (biết rằng bạn đã gõ một lệnh nhiều lần liên tiếp có thể hữu ích)

Câu trả lời:


15

Đối với zsh, hãy đặt cái này trong cấu hình của bạn:

setopt histignoredups

Những gì nó làm, nó sẽ bỏ qua các mục lịch sử trùng lặp trong quá trình tìm kiếm.

Cài đặt tương đương cho bash là

HISTCONTROL=$HISTCONTROL:ignoredups

1
cảm ơn, setopt histignoredupsthực hiện công việc nhưng cũng ngăn chặn trùng lặp từ lịch sử
Gabriel Devillers

Đúng chính xác. Trong hầu hết các trường hợp đây là những gì bạn muốn. Khi bạn đã thấy một đề xuất và bạn không muốn nó, bạn không muốn có đề xuất này một lần nữa. Nó không xóa các bản sao khỏi lịch sử, btw.
Martin Sugioarto

Bạn đúng nhưng ý tôi là: các bản sao trong tương lai sẽ không được thêm vào lịch sử.
Gabriel Devillers

Chúng được thêm vào nếu không tùy chọn khác được gọi là histexpiredupsfirsttôi cũng sử dụng sẽ không có ý nghĩa. Nó làm cho các bản sao hết hạn trước khi nhìn vào tuổi. (Tôi đang nói về zsh ở đây)
Martin Sugioarto
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.