- Notifications
You must be signed in to change notification settings - Fork3
yousefakbar/notmuch.nvim
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
A powerful and flexible mail reader interface for NeoVim. This plugin bridgesyour email and text editing experiences directly within NeoVim by interfacingwith theNotmuch mail indexer.
Notmuch.nvim is a NeoVim plugin that serves as a front-end for the Notmuchmail indexer, enabling users to read, compose, and manage their emails fromwithin NeoVim. It facilitates a streamlined workflow for handling emails usingthe familiar Vim interface and motions.
- 📧Email Browsing: Navigate emails with Vim-like movements.
- 🔍Search Your Email: Leverage
notmuch
to search your email interactively. - 🔗Thread Viewing: Messages are loaded with folding and threading intact.
- 📎Attachment Management: View and save attachments easily.
- ⬇️Offline Mail Sync: Supports
mbsync
for efficient sync processes. - 🔓Async Search: Large mailboxes with thousands of email? No problem.
- 🏷️Tag Management: Conveniently add, remove, or toggle email tags.
- 🔭 (WIP)
Telescope.nvim Integration: Search interactively, extract URL's, jumpefficiently, with the powerful file picker of choice.
- NeoVim: Version 0.5 or later isrequired due to LuaJIT support.
- Notmuch: Ensure Notmuch and libnotmuch libraryare installed
- (WIP)
Telescope.nvim: Filepicker of choice for many use cases.
You can install Notmuch.nvim using your favorite NeoVim plugin manager.
{'yousefakbar/notmuch.nvim',config=function()-- Configuration goes herelocalopts= {}require('notmuch').setup(opts)end,}
Clone the repository and add the directory to yourruntimepath
:
git clone https://github.com/yousefakbar/notmuch.nvim.git
Here are the core commands within Notmuch.nvim:
:Notmuch
: Lists available tags in your Notmuch database in a buffer.Setup key bindings for easy access. Example:-- Define a keymap to run `:Notmuch` and launch the plugin landing pagevim.keymap.set("n","<leader>n","<CMD>Notmuch<CR>")
:NmSearch <query>
: Executes an asynchronous search based on providedNotmuch query terms." Loads the threads in your inbox received today:NmSearchtag:inboxand date:today
You can configure several global options to tailor the plugin's behavior:
Option | Description | Default value |
---|---|---|
notmuch_db_path | Directory containing the.notmuch/ dir | $HOME/Mail |
maildir_sync_cmd | Bash command to run for syncing maildir | mbsync -a |
open_cmd | Bash command for opening attachments | xdg-open |
keymaps | Configure any (WIP) command's keymap | Seeconfig.lua 1 |
Example in plugin manager (lazy.nvim):
{"yousefakbar/notmuch.nvim",opts= {notmuch_db_path="/home/xxx/Documents/Mail"maildir_sync_cmd="mbsync personal"keymaps= {sendmail="<C-g><C-g>", }, },},
This project is licensed under the MIT License, granting you the freedom to use,copy, modify, merge, publish, distribute, sublicense, and/or sell copies. TheMIT License's full text can be found in theLICENSE
section of the project'sdocumentation.
For more details on usage and advanced configuration options, please refer tothe in-depth plugin help within NeoVim::help notmuch
.