편집하다:

편집하다:

mutt읽지 않은 다음 메시지를 하나의 키로 여는 방법이 있습니까? 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

관련 정보