mirror of
https://git.notmuchmail.org/git/notmuch
synced 2025-01-08 17:51:42 +01:00
Merge remote branch 'jukie/vim'
This commit is contained in:
commit
c835e2a505
7 changed files with 1617 additions and 0 deletions
24
vim/Makefile
Normal file
24
vim/Makefile
Normal file
|
@ -0,0 +1,24 @@
|
|||
.PHONY: all help install link symlink
|
||||
|
||||
FILES = plugin/notmuch.vim \
|
||||
$(wildcard syntax/notmuch-*.vim)
|
||||
|
||||
PREFIX = $(shell ls -d ~/.vim/)
|
||||
|
||||
OUT_FILES = $(FILES:%=${PREFIX}/%)
|
||||
|
||||
all: help
|
||||
|
||||
help:
|
||||
@echo "I don't actually build anything, but I will help you install"
|
||||
@echo "notmuch support for vim."
|
||||
@echo
|
||||
@echo " make install - copy plugin scripts and syntax files to ~/.vim"
|
||||
@echo " make symlink - create symlinks in ~/.vim (useful for development)"
|
||||
|
||||
install: ${OUT_FILES}
|
||||
link symlink:
|
||||
${MAKE} SYMLINK=1 install
|
||||
|
||||
${OUT_FILES}: ${PREFIX}/%: %
|
||||
$(if ${SYMLINK},ln -fs,cp) `pwd`/$< $@
|
90
vim/README
Normal file
90
vim/README
Normal file
|
@ -0,0 +1,90 @@
|
|||
This directory contains a vim script that allows reading notmuch mail
|
||||
through vim.
|
||||
|
||||
NOTE: this is a work in progress. Patches welcome. <bart@jukie.net>
|
||||
|
||||
Dependencies:
|
||||
notmuch:
|
||||
Naturally, it expects you have notmuch installed and configured.
|
||||
|
||||
mail:
|
||||
To send mail, notmuch.vim uses the UNIX mail command.
|
||||
|
||||
git-diff:
|
||||
The vim interface makes use of the git-diff.vim syntax file
|
||||
which is available from
|
||||
http://github.com/motemen/git-vim/blob/master/syntax/git-diff.vim
|
||||
|
||||
|
||||
To install:
|
||||
make install
|
||||
|
||||
|
||||
To run:
|
||||
vim -c ':NotMuch'
|
||||
|
||||
from vim:
|
||||
:NotMuch
|
||||
:NotMuch new to:bart@jukie.net 'subject:this is a test'
|
||||
|
||||
|
||||
Buffer types:
|
||||
[notmuch-folders]
|
||||
Folder list, or technically a list of saved searches.
|
||||
|
||||
Keybindings:
|
||||
<Enter> - show the selected search
|
||||
m - compose a new message
|
||||
s - enter search criteria
|
||||
= - refresh display
|
||||
|
||||
[notmuch-search]
|
||||
You are presented with the search results when you run :NotMuch.
|
||||
|
||||
Keybindings:
|
||||
<Space> - show the selected thread colapsing unmatched items
|
||||
<Enter> - show the entire selected thread
|
||||
a - archive message (remove inbox tag)
|
||||
f - filter the current search terms
|
||||
o - toggle search screen order
|
||||
m - compose a new message
|
||||
r - reply to thread
|
||||
s - enter search criteria
|
||||
,s - alter search criteria
|
||||
t - filter the current search terms with tags
|
||||
q - return to folder display, or undo filter
|
||||
+ - add tag(s) to selected message
|
||||
- - remove tag(s) from selected message
|
||||
= - refresh display
|
||||
? - reveal the thread ID of what's under cursor
|
||||
^] - search using word under cursor
|
||||
|
||||
[notmuch-show]
|
||||
This is the display of the message.
|
||||
|
||||
Keybindings:
|
||||
<Space> - mark read, archive, go to next matching message
|
||||
^n - next message
|
||||
^p - previous message
|
||||
b - toggle folding of message bodies
|
||||
c - toggle folding of citations
|
||||
h - toggle folding of extra header lines
|
||||
i - toggle folding of signatures
|
||||
m - compose a new message
|
||||
r - reply to the message
|
||||
s - enter search criteria
|
||||
q - return to search display
|
||||
? - reveal the message and thread IDs of what's under cursor
|
||||
^] - search using word under cursor
|
||||
|
||||
[notmuch-compose]
|
||||
When you're writing an email, you're in this mode.
|
||||
|
||||
Insert-mode keybindings:
|
||||
<Tab> - go to the next header line
|
||||
|
||||
Normal-mode keybindings:
|
||||
<Tab> - go to the next header line
|
||||
,s - send this message
|
||||
,q - abort this message
|
||||
|
1435
vim/plugin/notmuch.vim
Normal file
1435
vim/plugin/notmuch.vim
Normal file
File diff suppressed because it is too large
Load diff
7
vim/syntax/notmuch-compose.vim
Normal file
7
vim/syntax/notmuch-compose.vim
Normal file
|
@ -0,0 +1,7 @@
|
|||
runtime! syntax/mail.vim
|
||||
|
||||
syntax region nmComposeHelp contains=nmComposeHelpLine start='^Notmuch-Help:\%1l' end='^\(Notmuch-Help:\)\@!'
|
||||
syntax match nmComposeHelpLine /Notmuch-Help:/ contained
|
||||
|
||||
highlight link nmComposeHelp Include
|
||||
highlight link nmComposeHelpLine Error
|
12
vim/syntax/notmuch-folders.vim
Normal file
12
vim/syntax/notmuch-folders.vim
Normal file
|
@ -0,0 +1,12 @@
|
|||
" notmuch folders mode syntax file
|
||||
|
||||
syntax region nmFoldersCount start='^' end='\%10v'
|
||||
syntax region nmFoldersName start='\%11v' end='\%31v'
|
||||
syntax match nmFoldersSearch /([^()]\+)$/
|
||||
|
||||
highlight link nmFoldersCount Statement
|
||||
highlight link nmFoldersName Type
|
||||
highlight link nmFoldersSearch String
|
||||
|
||||
highlight CursorLine term=reverse cterm=reverse gui=reverse
|
||||
|
24
vim/syntax/notmuch-search.vim
Normal file
24
vim/syntax/notmuch-search.vim
Normal file
|
@ -0,0 +1,24 @@
|
|||
" notmuch search mode syntax file
|
||||
|
||||
" TODO: I cannot figure out why nmSearchTags is not matching anything :(
|
||||
|
||||
syntax region nmSearchDate start='^' end='\%13v' oneline
|
||||
syntax region nmSearchCountAndFrom start='\%14v\[' end='|' oneline contains=nmSearchCount,nmSearchFrom
|
||||
syntax region nmSearchCount start='\[' end='\]' oneline contained contains=nmSearchCountZero,nmSearchCountSome,nmSearchCountAll
|
||||
syntax region nmSearchFrom start='\]\@<=' end='|' oneline contained
|
||||
syntax match nmSearchCountZero '0/\(\d\+\)' contained
|
||||
syntax match nmSearchCountSome '\([1-9]\d*\)/\(\d\+\)' contained
|
||||
syntax match nmSearchCountAll '\(\d\+\)/\1' contained
|
||||
syntax match nmSearchSquareBracketText '\(\[\w\+\]\)'
|
||||
syntax match nmSearchTags /([^)]\+)$/
|
||||
|
||||
highlight link nmSearchDate Statement
|
||||
"highlight link nmSearchCount Comment
|
||||
highlight link nmSearchCountZero Function
|
||||
highlight link nmSearchCountSome Special
|
||||
highlight link nmSearchCountAll Type
|
||||
highlight link nmSearchFrom Include
|
||||
highlight link nmSearchSquareBracketText Special
|
||||
highlight link nmSearchTags String
|
||||
|
||||
highlight CursorLine term=reverse cterm=reverse gui=reverse
|
25
vim/syntax/notmuch-show.vim
Normal file
25
vim/syntax/notmuch-show.vim
Normal file
|
@ -0,0 +1,25 @@
|
|||
" notmuch show mode syntax file
|
||||
|
||||
syntax cluster nmShowMsgDesc contains=nmShowMsgDescWho,nmShowMsgDescDate,nmShowMsgDescTags
|
||||
syntax match nmShowMsgDescWho /[^)]\+)/ contained
|
||||
syntax match nmShowMsgDescDate / ([^)]\+[0-9]) / contained
|
||||
syntax match nmShowMsgDescTags /([^)]\+)$/ contained
|
||||
|
||||
syntax cluster nmShowMsgHead contains=nmShowMsgHeadKey,nmShowMsgHeadVal
|
||||
syntax match nmShowMsgHeadKey /^[^:]\+: / contained
|
||||
syntax match nmShowMsgHeadVal /^\([^:]\+: \)\@<=.*/ contained
|
||||
|
||||
syntax cluster nmShowMsgBody contains=@nmShowMsgBodyMail,@nmShowMsgBodyGit
|
||||
syntax include @nmShowMsgBodyMail syntax/mail.vim
|
||||
|
||||
" git-diff.vim marks up diffs in emails, see README for details
|
||||
silent! syntax include @nmShowMsgBodyGit syntax/git-diff.vim
|
||||
|
||||
highlight nmShowMsgDescWho term=reverse cterm=reverse gui=reverse
|
||||
highlight link nmShowMsgDescDate Type
|
||||
highlight link nmShowMsgDescTags String
|
||||
|
||||
highlight link nmShowMsgHeadKey Macro
|
||||
"highlight link nmShowMsgHeadVal NONE
|
||||
|
||||
highlight Folded term=reverse ctermfg=LightGrey ctermbg=Black guifg=LightGray guibg=Black
|
Loading…
Reference in a new issue