क्या मैं एक ही कुंजी के साथ म्यूट में अगला अपठित संदेश खोल सकता हूं?


17

क्या muttएक कुंजी के साथ अगला अपठित संदेश खोलने का कोई तरीका है ? मैं अगले अपठित के साथ जा सकता हूं next-new-then-unread, जो Tabडिफ़ॉल्ट रूप से बाध्य है । हालांकि, यदि वर्तमान मेलबॉक्स में कोई अपठित संदेश नहीं हैं, तो मुझे next-unread-mailboxइसके बजाय (डिफ़ॉल्ट रूप से अनबाउंड) का उपयोग करना होगा । यह वैसे भी उप-इष्टतम है, क्योंकि अगर मेरे पास कोई नया संदेश है mutt, तो छोड़ दें , फिर खोलें mutt, यह मुझे "नए" संदेशों वाले मेलबॉक्स में नहीं ले जाएगा। (संभवतः मेलबॉक्स कोई अपठित नहीं है।)

इसके अलावा, ये दोनों अनुक्रमणिका दृश्य में अगले संदेश पर जाते हैं, और मुझे मैन्युअल रूप से पेजर दृश्य (साथ Enter) में संदेश को खोलना होगा । क्या अगला अपठित संदेश खोलने का कोई तरीका है , इससे कोई फर्क नहीं पड़ता कि यह किस मेलबॉक्स में है?

मैं neomutt का उपयोग कर रहा हूं, इसलिए मैंने जो एक आंशिक समाधान पाया है वह है साइडबार कमांड का उपयोग करना।

macro index,pager , '<sidebar-next-new><sidebar-open><enter>'

समस्या यह है कि यह स्वचालित रूप से अगले अपठित मेलबॉक्स (साइडबार से) को खोलता है। इसलिए यदि वर्तमान मेलबॉक्स और किसी अन्य में अपठित संदेश हैं, तो यह आदेश वर्तमान के बजाय अन्य मेलबॉक्स में संदेश खोल देगा।

जवाबों:


4

शुरुआत के लिए, आप इस तरह एक मैक्रो का उपयोग कर सकते हैं स्वचालित रूप से नए संदेश के लिए कूद:

macro index     .n      "<next-unread-mailbox><enter><next-new-then-unread><enter>" "Go to new mail"

ध्यान दें कि यदि कोई नया संदेश नहीं है तो केवल Enter कुंजी दबाया जाएगा और वर्तमान संदेश खोला जाएगा।

एक विकल्प के रूप में अगर Maildirप्रयोग किया जाता है तो हम एक ऐसी ~/bin/mutt-new.shस्क्रिप्ट का उपयोग कर सकते हैं जो यह जांच करेगी कि क्या नया मेल है:

#!/usr/bin/env sh

if [ "$(find "$HOME"/.muttmail/box1/new -type f -printf '\n' | wc -l)" -eq 0 ]
then
    printf "I think there's no new mail\n" >&2
    printf "Press [ENTER] to continue\n" >&2
    read -r _
    exit 1
fi

echo 'push <next-unread-mailbox><enter><next-new-then-unread><enter>'

इसे इसमें जोड़ें ~/.muttrc:

macro index     .n        "!~/bin/mutt-new.sh" "Go to new"

संपादित करें:

इसके बारे में कैसे: वर्तमान स्क्रिप्ट में नया मेल है, तो निम्न स्क्रिप्ट पहले जांच करेगी:

#!/usr/bin/env sh

cur_mbox=${1/=/}

echo "$1" >> /tmp/PAR
echo "$cur_mbox" >> /tmp/PAR

if [ ! "$(find "$HOME"/.muttmail/"$cur_mbox"/new -type f -printf '\n' | wc -l)" -eq 0 ]
then
    printf "There is new mail in this mailbox\n" >&2
    printf "Press [ENTER] to continue\n" >&2
    read -r _
    echo 'push <next-new-then-unread><enter>'
elif [ ! "$(find "$HOME"/.muttmail/ -type d -name new -exec ls {} \; | wc -l)" -eq 0 ]
then
    printf "There is new mail in other mailboxes\n" >&2
    printf "Press [ENTER] to continue\n" >&2
    read -r _
    echo 'push <next-unread-mailbox><enter><next-new-then-unread><enter>'
else
    printf "I think there's no new mail\n" >&2
    printf "Press [ENTER] to continue\n" >&2
    read -r _
    exit 1
fi

इसे इसमें जोड़ें ~/.muttrc:

folder-hook . 'set my_oldrecord=$record; set record=^; set my_folder=$record; set record=$my_oldrecord'
folder-hook . 'macro index .n "<enter-command>source \"~/bin/mutt-new.sh $my_folder |\"<return>" "Go to new"'

संपादित करें:

तुमने कहा था:

यह वैसे भी उप-इष्टतम है, क्योंकि अगर मेरे पास एक नया संदेश है, तो म्यूट को छोड़ दें, फिर दोबारा म्यूट खोलें, यह मुझे "नए" संदेशों वाले मेलबॉक्स में नहीं ले जाएगा। (संभवतः मेलबॉक्स कोई अपठित नहीं है।)

इसके द्वारा तय किया जा सकता है:

set mark_old=no

जवाब के लिए धन्यवाद। इस दृष्टिकोण के साथ एक बड़ी समस्या यह है कि यह <next-unread-mailbox>परवाह किए बिना चलता है कि क्या वर्तमान मेलबॉक्स में अपठित संदेश हैं। इस स्थिति में, यह अन्य मेलबॉक्स पर स्विच हो जाएगा, और वर्तमान मेलबॉक्स में अगला अपठित संदेश नहीं खोल सकता है। एक अन्य समस्या (मेरे प्रश्न के अनुसार) यह है कि <next-unread-mailbox>अपठित / नए संदेशों के लिए नहीं बल्कि अपठित मेलबॉक्सों की तलाश करें
स्पार्कहॉक

@ श्रावक: संपादित देखें। यह एक दिलचस्प सवाल है। दुर्भाग्य से muttपूरी तरह से स्क्रिप्ट नहीं है और यह शर्म की बात है।
अर्कादियुस डेर्बस्की

@ श्रावक: अभी तक एक और संपादन देखें। मैंने जिस मैक्रो का सुझाव दिया है वह स्वचालित रूप से वर्तमान मेलबॉक्‍स में एक नया ई-मेल खोलता है यदि अन्य maliboxes पर जाने से पहले कोई है। मैंने यह भी सुझाव दिया कि Oछोड़ने के बाद चिह्नित संदेशों को कैसे अक्षम किया जाए mutt
अर्कादिअस डेराबस्की

धन्यवाद। मैं इस समय छुट्टी पर हूं, लेकिन जब मैं वापस आऊंगा तो मैं इसका परीक्षण करूंगा। यह आशाजनक लग रहा है।
स्पार्कहॉक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.