
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