Bisakah saya membuka pesan yang belum dibaca berikutnya di mutt dengan satu tombol?

16

Apakah ada cara untuk membuka pesan yang belum dibaca berikutnya muttdengan satu tombol? Saya dapat pindah ke yang belum dibaca berikutnya next-new-then-unread, yang terikat Tabsecara default. Namun, jika tidak ada pesan yang belum dibaca di kotak surat saat ini, maka saya harus menggunakan next-unread-mailbox(tidak terikat secara default). Ini tidak optimal, karena jika saya memiliki pesan baru, berhenti mutt, lalu buka muttlagi, ini tidak akan memindahkan saya ke kotak surat yang berisi pesan "baru". (Mungkin kotak suratnya tidak lagi dibaca.)

Selain itu, keduanya pindah ke pesan berikutnya dalam tampilan indeks, dan saya harus secara manual membuka pesan dalam tampilan pager (with Enter). Apakah ada cara untuk membuka pesan yang belum dibaca berikutnya, tidak peduli di kotak surat mana?

Saya menggunakan neomutt, jadi salah satu solusi parsial yang saya temukan adalah menggunakan perintah sidebar.

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

Masalahnya adalah ini secara otomatis membuka kotak surat yang belum dibaca berikutnya (dari bilah samping). Oleh karena itu jika ada pesan yang belum dibaca di kotak surat saat ini dan yang lain, perintah ini akan membuka pesan di kotak surat lain alih-alih saat ini.

Sparhawk
sumber

Jawaban:

3

Sebagai permulaan, Anda dapat menggunakan makro seperti ini untuk secara otomatis beralih ke pesan baru:

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

Namun perlu dicatat bahwa jika tidak ada pesan baru hanya Enter tombol yang akan ditekan dan pesan saat ini akan dibuka.

Sebagai alternatif jika Maildirdigunakan, kami dapat menggunakan ~/bin/mutt-new.shskrip yang akan memeriksa apakah ada email baru:

#!/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>'

Tambahkan ini ke ~/.muttrc:

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

EDIT:

Bagaimana dengan ini: skrip berikut pertama-tama akan memeriksa apakah ada email baru di kotak surat saat ini:

#!/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

Tambahkan ini ke ~/.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"'

EDIT:

Kamu berkata:

Ini tidak optimal, karena jika saya memiliki pesan baru, keluar dari mutt, kemudian buka mutt lagi, ini tidak akan memindahkan saya ke kotak surat yang berisi pesan "baru". (Mungkin kotak suratnya tidak lagi dibaca.)

Ini dapat diperbaiki dengan:

set mark_old=no
Arkadiusz Drabczyk
sumber
Terima kasih atas jawabannya. Masalah utama dengan pendekatan ini adalah bahwa itu berjalan <next-unread-mailbox>terlepas dari apakah ada pesan yang belum dibaca di kotak surat saat ini. Dalam hal ini, itu akan beralih ke kotak surat lain, dan tidak membuka pesan yang belum dibaca berikutnya di kotak surat saat ini. Masalah lain (sesuai pertanyaan saya) adalah yang <next-unread-mailbox>tidak mencari pesan yang belum dibaca / baru tetapi kotak surat yang belum dibaca .
Sparhawk
@Sparhawk: lihat edit. Itu pertanyaan yang menarik. Sayangnya mutttidak sepenuhnya bisa skrip dan itu memalukan.
Arkadiusz Drabczyk
@Sparhawk: lihat lagi suntingan. Makro yang saya sarankan secara otomatis membuka email baru di kotak surat saat ini jika ada sebelum pindah ke malibox lainnya. Saya juga menyarankan cara menonaktifkan menandai pesan Osetelah meninggalkan mutt.
Arkadiusz Drabczyk
Terima kasih. Saya sedang berlibur saat ini, tetapi saya akan mengujinya ketika saya kembali. Itu terlihat menjanjikan.
Sparhawk