zsh, ऊपर तीर केवल अद्वितीय आदेशों को दोहराता है?


21

मैं एक ऐसी सेटिंग की तलाश कर रहा हूं जो इसे बनाएगी ताकि जब मैं ऊपर तीर मारूं, तो zsh कमांड दिखाता है जिसे मैंने हाल ही में संपादित किया है। पकड़ है, मैं केवल अद्वितीय आदेश चाहता हूं । वर्तमान में, यदि मैं echo "hello world"50 बार टाइप करता हूं, तो मुझे इको कमांड टाइप करने से पहले उपयोग की गई कमांड प्राप्त करने के लिए 50 बार तीर को दबाना होगा । यह कम से कम कहने के लिए कष्टप्रद है।

सक्षम करने / अक्षम करने के लिए मुझे किस सेटिंग पर कोई विचार करना है?

जवाबों:


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विवरण के लिए देखें।


बहुत अच्छा काम करता है! जब तक मैं कुछ याद कर रहा हूँ, यह वही है जो मैं चाहता था :)
ली ओलयवार
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.