Once you have Mutt up and running with the basic tools that will allow you to fetch, index, view, edit and send email, there are a couple of things that you probably need in your .muttrc, no matter what.

I left out all things which are about visual taste, use with external programs, etc. These are really about correcting some defaults which I think are not sane.

  • In Mutt, even if you are on the pager that lets you read a selected email, the <up> and <down> keys will not help you navigate inside the email; instead they will bring you to the previous or to the next email in the index.

    That’s rather weird and unexpected. One of the first thing I did was trying to scroll inside an email, and Mutt suddenly browsed dozens of emails from the index (even marking them as read…). That’s quite unhelpful. To solve this, add:

    bind pager <up> previous-line #scroll inside the message rather than the index
    bind pager <down> next-line
    

    That way, you can scroll, or use the arrow keys to read an email inside the pager.

    When the pager is not opened, the up and down keys will behave as usual in the index.

  • To make Mutt faster

    set sleep_time = 0 # be fast
    

    Don’t worry, this does not affect anything, it will just be faster. Here’s the doc about sleep_time:

    Specifies time, in seconds, to pause while displaying certain informational messages, while moving from folder to folder and after expunging messages from the current folder. The default is to pause one second, so a value of zero for this option suppresses the pause.

  • When you display email in the pager, it can look ugly when the lines are too long and that Mutt, by default, is not very nice about line-wrapping because it can cut words in the middle. You probably want to add:

    set smart_wrap
    
  • Changing between mailboxes can be a pain by default in Mutt. You need to tell Mutt where to find your several mailboxes, so you’ll be able to switch between them more easily (for instance by pressing y or with the sidebar). Add:

    mailboxes $Mail
    

    I have seen on some Mutt configs that y sometimes does not toggle the list of mailboxes. In that case, you can add something like:

    macro index y "<change-folder>?<toggle-mailboxes>" "show incoming mailboxes list"