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