zsh, panah atas hanya mengulangi perintah unik?

21

Saya mencari pengaturan yang akan membuatnya sehingga ketika saya menekan panah ke atas, zsh menunjukkan perintah yang baru-baru ini saya edit. Tangkapannya adalah, saya hanya ingin perintah unik . Saat ini, jika saya mengetik echo "hello world"50 kali, saya harus menekan panah 50 kali untuk mendapatkan perintah yang saya gunakan sebelum mengetik perintah gema. Ini menjengkelkan untuk sedikitnya.

Adakah pemikiran tentang pengaturan apa yang perlu saya aktifkan / nonaktifkan?

Lee Olayvar
sumber

Jawaban:

23

HIST_IGNORE_ALL_DUPSakan membuang semua kecocokan sebelumnya dari perintah, yang dapat membingungkan saat menggunakan riwayat sebagai log dari apa yang Anda lakukan nanti.

Kesesuaian yang lebih dekat dengan kebutuhan Anda mungkin merupakan HIST_IGNORE_DUPSatau bahkan HIST_FIND_NO_DUPSpilihan.

Lihat man zshoptions | less -p History:

HIST_FIND_NO_DUPS: Saat mencari entri riwayat di editor baris, jangan tampilkan duplikat dari baris yang ditemukan sebelumnya, bahkan jika duplikat tidak berdekatan.

HIST_IGNORE_ALL_DUPS: Jika baris perintah baru ditambahkan ke daftar riwayat, duplikat yang lebih lama, perintah yang lebih lama dihapus dari daftar (bahkan jika itu bukan acara sebelumnya).

HIST_IGNORE_DUPS: Jangan masukkan baris perintah ke daftar riwayat jika itu adalah duplikat dari acara sebelumnya.

peth
sumber
1
HIST_FIND_NO_DUPS adalah jawaban yang lebih baik dari saya.
Mikel
3

Saya tidak bisa melihat cara untuk benar-benar hanya melakukan itu, tetapi jika Anda mengatur HIST_IGNORE_ALL_DUPSopsi, hanya versi terbaru dari perintah yang akan disimpan dalam sejarah, memberi Anda efek yang sama.

Lihat man zshoptionsdetailnya.

Mikel
sumber
Bagus sekali! Kecuali saya kehilangan sesuatu, inilah yang saya inginkan :)
Lee Olayvar