4.3 KiB
📫 Himalaya.vim
Vim plugin for Himalaya CLI email client.
Table of contents
Motivation
Bringing emails to the terminal is a pain. The mainstream TUI, (neo)mutt, takes time to configure. The default mapping is not intuitive when coming from the Vim environment. It is even scary to use at the beginning, since you are dealing with sensitive data!
The aim of Himalaya is to extract the email logic into a simple (yet solid) CLI API that can be used either directly from the terminal or UIs. It gives users more flexibility.
This Vim plugin is a TUI implementation for Himalaya CLI.
Installation
First you need to install and configure the himalaya
CLI. Then you can install
this plugin with your favorite plugin manager. For example with
vim-plug, add to your .vimrc
:
Plug 'soywod/himalaya', {'rtp': 'vim'}
Then:
:PlugInstall
Usage
List messages view
:Himalaya
Function | Default binding |
---|---|
Change the current mbox | gm |
Show previous page | gp |
Show next page | gn |
Read focused msg | <Enter> |
Write a new msg | gw |
Reply to the focused msg | gr |
Reply all to the focused msg | gR |
Forward the focused message | gf |
Download all focused msg attachments | ga |
They can be customized:
nmap gm <plug>(himalaya-mbox-input)
nmap gp <plug>(himalaya-mbox-prev-page)
nmap gn <plug>(himalaya-mbox-next-page)
nmap <cr> <plug>(himalaya-msg-read)
nmap gw <plug>(himalaya-msg-write)
nmap gr <plug>(himalaya-msg-reply)
nmap gR <plug>(himalaya-msg-reply-all)
nmap gf <plug>(himalaya-msg-forward)
nmap ga <plug>(himalaya-msg-attachments)
List mailboxes
Default behaviour (basic prompt):
With telescope support:
With fzf support:
Read message view
Function | Default binding |
---|---|
Write a new msg | gw |
Reply to the msg | gr |
Reply all to the msg | gR |
Forward the message | gf |
Download all msg attachments | ga |
They can be customized:
nmap gw <plug>(himalaya-msg-write)
nmap gr <plug>(himalaya-msg-reply)
nmap gR <plug>(himalaya-msg-reply-all)
nmap gf <plug>(himalaya-msg-forward)
nmap ga <plug>(himalaya-msg-attachments)
Write message view
When you exit this special buffer, you will be prompted 4 choices:
Send
: sends the messageDraft
: saves the message into theDrafts
mailboxQuit
: quits the buffer without savingCancel
: goes back to the message edition
Credits
- IMAP RFC3501
- Iris, the himalaya predecessor
- isync, an email synchronizer for offline usage
- NeoMutt, an email terminal user interface
- Alpine, an other email terminal user interface
- mutt-wizard, a tool over NeoMutt and isync
- rust-imap, a rust IMAP lib