編集する:

編集する:

mutt次の未読メッセージを1つのキーで開く方法はありますか?next-new-then-unreadデフォルトでは、バインドされている次のコンテンツに移動を使用できますTab。ただし、現在メールボックスに未読メッセージがない場合は、next-unread-mailboxそれを使用する必要があります(デフォルトではバインドされていません)。とにかくこれは次善策です。これは、新しいメッセージがあり、終了してmutt再度mutt開くと、「新しい」メッセージを含むメールボックスに移動されないためです。 (おそらく郵便もう読んでいないものはありません。 )

また、両方のアクションはインデックスビューの次のメッセージに移動し、ポケットベルビューでメッセージを手動で開く必要があります(を使用Enter)。どのような方法がありますか?開いている次の未読メッセージは、どのメールボックスにあっても構いません。

私はneomuttを使用しているので、私が見つけた部分的な解決策はサイドバーコマンドを使用することです。

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

問題は、サイドバーで未読のメールボックスが自動的に開かれることです。したがって、現在のメールボックスと他のメールボックスに未読メッセージがある場合、このコマンドは現在のメールボックスの代わりに別のメールボックスのメッセージを開きます。

ベストアンサー1

まず、次のマクロを使用して自動的に新しいメッセージに移動できます。

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"'

編集する:

あなたは言う:

とにかくこれは次善策です。新しいメッセージがあり、mutt を終了してから mutt を再度開くと、「新しい」メッセージを含むメールボックスに移動されないためです。 (おそらく、メールボックスはもう読んでいない状態ではありません。)

この問題は次の方法で解決できます。

set mark_old=no

おすすめ記事