zsh, yukarı ok yalnızca benzersiz komutları tekrar eder?


21

Yukarı ok tuşuna bastığımda zsh'ın son zamanlarda düzenlediğim komutları göstermesini sağlayacak bir ayar arıyorum. Yakalamak, sadece benzersiz komutları istiyorum . Şu anda, ben echo "hello world"50 kez yazarsanız, echo komutunu yazmadan önce kullandığım komutu almak için yukarı ok 50 kez basmak zorundayım . Bu en azını söylemek can sıkıcı.

Hangi ayarı etkinleştirmem / devre dışı bırakmam gerektiğine dair herhangi bir fikriniz var mı?

Yanıtlar:


23

HIST_IGNORE_ALL_DUPSKomutun önceki tüm eşleşmelerini atar , bu da geçmişi daha sonra yaptığınız bir günlük olarak kullanırken kafa karıştırıcı olabilir.

İhtiyaçlarınıza daha yakın olması muhtemelen seçenek HIST_IGNORE_DUPSveya hatta HIST_FIND_NO_DUPSseçenektir.

Bakınız man zshoptions | less -p History:

HIST_FIND_NO_DUPS: Satır düzenleyicide geçmiş girişleri ararken, kopyalar bitişik olmasa bile önceden bulunan bir satırın kopyalarını görüntülemeyin.

HIST_IGNORE_ALL_DUPS: Geçmiş listesine eklenen yeni bir komut satırı eskisini çoğaltırsa, eski komut listeden kaldırılır (önceki olay olmasa bile).

HIST_IGNORE_DUPS: Önceki etkinliğin kopyalarıysa geçmiş listesine komut satırı girmeyin.


1
HIST_FIND_NO_DUPS benden daha iyi bir cevap.
Mikel

3

Kelimenin tam anlamıyla bunu yapmanın hiçbir yolunu göremiyorum, ancak HIST_IGNORE_ALL_DUPSseçeneği ayarlarsanız, bir komutun yalnızca en son sürümü aynı etkiyi vererek geçmişte korunur.

Ayrıntılar man zshoptionsiçin bakınız.


Harika çalışıyor! Ben bir şey eksik sürece, bu tam olarak istediğim şey :)
Lee Olayvar
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.