notmuch-vim


Ⅰ. 插件描述

Plug-in for vim to use notmuch

Ⅱ. 基本信息

创建日期:  2013-10-14
使用用户:  4
Github星:  17
插件作者:  Ian Main

Ⅲ. 安装方法

使用Vundle管理器安装

在你的.vimrc下添加:
Plugin 'imain/notmuch-vim-please-everybody'
… 然后在Vim中运行以下命令:
:source %
:PluginInstall

对于Vundle版本 < 0.10.2,请用上面的Bundle替换Plugin。

使用NeoBundle管理器安装

在你的.vimrc下添加:
NeoBundle 'imain/notmuch-vim-please-everybody'
… 然后在Vim中运行以下命令:
:source %
:NeoBundleInstall

使用VimPlug管理器安装

在你的.vimrc下添加:
Plug 'imain/notmuch-vim-please-everybody'
… 然后在Vim中运行以下命令:
:source %
:PlugInstall

使用Pathogen管理器安装

在终端中运行以下命令:
cd ~/.vim/bundle
git clone https://github.com/imain/notmuch-vim

Ⅳ. 文档说明

= notmuch vim =

This is a vim plug-in that provides a fully usable mail client interface,
utilizing the notmuch framework.

I have been doing a lot of work on this version and have added a number
of features to the original:

  • URI opening support.
  • Attachment saving and opening support.
  • Better patch saving support.
  • Folded threading.
  • Folded full headers available.
  • Ability to tag all emails in a folder.
  • Saves sent mail in your notmuch db.
  • Better moving between messages in a thread.
  • Better search listing.
  • Better reply handling.
  • Automatically refresh folder index.
  • Sending of attachments.

I have been working with the upstream community to get these included but the
pace has been slow so I've made this available here.

== Install ==

Simply run 'make install'. However, check that you have the depencies below.

=== vim +ruby ===

Make sure your vim version has ruby support: check for +ruby in 'vim --version'
features.

% vim --version | grep +ruby

=== ruby bindings ===

Check if you are able to run the following command cleanly:

% ruby -e "require 'notmuch'"

If you don't see any errors, it means it's working and you can go to the next
section.

If it's not, you would need to compile it. An easy way to do that is by
downloading notmuch's source code:

% git clone --branch=0.15.2 git://notmuchmail.org/git/notmuch ~/notmuch

And then:

% make build notmuch=~/notmuch

(Note: you need to specify the notmuch source directory)

=== mail gem ===

Since libnotmuch library concentrates on things other than handling mail, we
need a library to do that, and for Ruby the best library for that is called
'mail'. The easiest way to install it is with ruby's gem. In most distro's the
package is called 'rubygems'.

Once you have gem, run:

% gem install mail

In some systems gems are installed on a per-user basis by default, so make sure
you are running as the same user as the one that installed them.

If you're planning to use PGP, you'll also need the 'mail-gpg' gem. Run:

% gem install mail-gpg

== Running ==

Simple:

% gvim -c ':NotMuch'

You might want to write a wrapper script (e.g. vnm)

#!/bin/sh
gvim -c ":NotMuch $*"

So you can run:

vnm is:inbox date:yesterday..

Enjoy ;)

== Sending and Receiving Email ==

Notmuch only operates an email database, it does not send or receive email.
This means that in addition to getting this client working you must also
figure out a way to get email and to send it.

There is more information available here: http://notmuchmail.org/howto/

I have been using offlineimap to fetch email with good results.

In recent versions we changed the sending to use the mail rubygem. By default
this still uses the 'sendmail' program to send email but you can now easily
change it to use your ISPs mail relay. For example, with Telus I can use:

let g:notmuch_sendmail_method = 'smtp'

let g:notmuch_sendmail_param = {

  \ 'address': 'smtp.telus.net',
  \ }

Unfortunately documentation on the rubygem delivery methods is not very good.
You can refer to doc/notmuch.txt for more detailed documentation on how to set
this up.

== Tutorial ==

=== Searches ===

Once you have notmuch-vim up and running, you will likely want to change the
default search results. We call them folders but really they are just search

  1. To configure these, make an entry in your vimrc:
let g:notmuch_folders = [
    \ [ 'inbox', 'tag:inbox' ],
    \ [ 'unread', 'tag:unread' ],
    \ [ '', '' ],
    \ [ 'to me', 'tag:unread and to:me@me.com' ],
    \ [ 'from bigboss', 'tag:unread and from:bigboss@me.com' ],
    \ [ 'important', 'tag:important' ],
    \ [ 'to-do', 'tag:to-do' ],
    \ [ 'to-me', 'to:john.doe and tag:new' ],
    \ ]

As you can see you can define any search terms that notmuch supports. You can
read the notmuch search documentation here:

http://notmuchmail.org/searching/

These are predefined searches and show up in the 'notmuch-folders' buffer on

  1. Notmuch is incredibly fast at searching so feel free to add as many
  2. to your home folder screen as needed. In addition to these you can at

any time hit 's' and input your own search.

You can move through selections using normal vim movement keys. To view the
results of a search term you can press 'Enter' on the given line.

=== Search View ===

Once you have selected or performed a search a list of results will be
displayed as a list of threads. In this screen you can do a number of things
including tagging threads, searching, composing new email etc. Pressing
'Enter' on the selected thread will display that thread. Pressing 'q' will
close that buffer and display the previous one, which is usually the folder
view.

=== Thread View ===

If you have selected a single email, the entire email will come up in a new

  1. If you have selected a thread they will be shown 'folded'. To open a
  2. you can press move to the email you wish to read and press 'Enter'. In

this case 'Enter' is a special key binding that opens the fold and moves the
email to the top of the screen. You can also simply press 'l' to move into a
fold and this will also cause it to open. To close a fold you can use the
default vim binding 'zc'. Notice that the full headers of the email are also
available in a fold.

To quickly move to the next unread email in a thread, you can use the 'Tab'

  1. This will not open the fold by default but move you to the line with the
    fold.

To reply to an email, use 'r'.

To save all the patches in a thread, you can press 'p'.

To view perform an action on a URI you can use the 'Enter' key when on that

  1. If more than one URI is on a line it will open the one under the cursor
  2. the first one on the line. With this you can open website URLs, mailto: and

id: URIs etc.

If there are attachments in an email or the email is a multipart message
containing HTML and text, a 'Part:' line will exist in the header. Pressing
'Enter' on this will display the attachment or open the html email in the
default web browser. By default this is done using 'xdg-open' which on most
modern linux machines does the right thing based on your desktop default
application settings. You can also save an attachment using the 'e' (extract)

  1. Using 'e' on a line without a 'Part:' will cause all attachments to be
  2. in the current working directory.

=== Archiving ===

By default the 'a' key is used to archive emails. All this really does is
remove the 'unread' and 'inbox' tags. Generally when using notmuch you never
delete email, you simply tag it as read and then you can search for it later.
If an email is somehow important to you then you should tag it with some tag
that you can remember, preferably one that is in your default search terms.

In the folders view you can use the 'A' key to tag all messages as read.

=== Tagging ===

In both the thread and search result views you can use 't' to add or remove
arbitrary tags to an email or thread. To add a 'todo' tag you would simply hit
't' and then type in 'todo' when prompted. To remove the 'todo' tag you would
enter '-todo'

=== Composing ===

At any time you can press 'c' to compose a new email. This will bring up a new
buffer with headers available for you to fill out. Most of this is pretty self
explanatory except perhaps the 'Attach:' header.

The 'Attach:' header lets you specify a filename afterwards which will be
added as an attachment to the email. I use VimFiler which allows you to press
'y' on a file, yanking the complete path which I then paste after the 'Attach:'

  1. You can add as many 'Attach:' lines as you need.

Once completed you can use '<Leader>s' or '<Leader>q' to either send the email
or quit. Quitting does not save changes for you. Of course this is still vim
so you can save the draft as a file anywhere you like. Note that you do not
need to save the buffer in order to send the email.

Replying is basically identical except that some of the headers will be filled
in for you and the old message will be quoted in the body.

== Reference Documentation ==

Now that you have a general sense of how to use notmuch-vim, I recommend you
check out the reference documentation and see about configuring your vimrc with
custom searches and possibly custom key bindings. Refer to the doc/notmuch.txt
for more information.

添加新评论