zsh, ลูกศรขึ้นซ้ำคำสั่งที่ไม่ซ้ำเท่านั้น?


21

ฉันกำลังมองหาการตั้งค่าที่จะทำให้เมื่อฉันกดปุ่มลูกศรขึ้น zsh แสดงคำสั่งที่ฉันเพิ่งแก้ไข ที่จับคือฉันต้องการเพียงคำสั่งที่ไม่ซ้ำกัน ปัจจุบันถ้าฉันพิมพ์echo "hello world"50 ครั้งฉันต้องกดลูกศรขึ้น 50 ครั้งเพื่อรับคำสั่ง i ที่ใช้ก่อนพิมพ์คำสั่ง echo นี่เป็นเรื่องที่น่ารำคาญที่จะพูดน้อยที่สุด

มีความคิดใดเกี่ยวกับการตั้งค่าที่ฉันต้องเปิด / ปิดใช้งานหรือไม่

คำตอบ:


23

HIST_IGNORE_ALL_DUPSจะโยนการแข่งขันก่อนหน้าทั้งหมดของคำสั่งซึ่งอาจสร้างความสับสนเมื่อใช้ประวัติเป็นบันทึกของสิ่งที่คุณทำในภายหลัง

ความพอดีที่ใกล้กับความต้องการของคุณน่าHIST_IGNORE_DUPSจะเป็นHIST_FIND_NO_DUPSตัวเลือกหรือแม้กระทั่งตัวเลือก

ดูman zshoptions | less -p History:

HIST_FIND_NO_DUPS: เมื่อค้นหารายการประวัติในตัวแก้ไขบรรทัดอย่าแสดงรายการที่ซ้ำกันของบรรทัดที่พบก่อนหน้านี้แม้ว่ารายการที่ซ้ำกันจะไม่ต่อเนื่องกัน

HIST_IGNORE_ALL_DUPS: หากมีการเพิ่มบรรทัดคำสั่งใหม่ลงในรายการประวัติที่ซ้ำกันคำสั่งเก่าจะถูกลบออกจากรายการ (แม้ว่าจะไม่ใช่เหตุการณ์ก่อนหน้า)

HIST_IGNORE_DUPS: อย่าป้อนบรรทัดคำสั่งลงในรายการประวัติหากมันซ้ำซ้อนกับเหตุการณ์ก่อนหน้า


1
HIST_FIND_NO_DUPS เป็นคำตอบที่ดีกว่าที่ฉันคิด
มิเคล

3

ฉันไม่เห็นวิธีใดที่จะทำอย่างแท้จริง แต่ถ้าคุณตั้งค่าHIST_IGNORE_ALL_DUPSตัวเลือกเฉพาะเวอร์ชันล่าสุดของคำสั่งจะถูกเก็บไว้ในประวัติให้คุณมีผลเหมือนกัน

ดูman zshoptionsรายละเอียดที่


ใช้งานได้ดี! นี่คือสิ่งที่ฉันต้องการ :)
Lee Olayvar
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.