diff options
author | Tom Ryder <tom@sanctum.geek.nz> | 2017-11-11 00:59:12 +1300 |
---|---|---|
committer | Tom Ryder <tom@sanctum.geek.nz> | 2017-11-11 00:59:12 +1300 |
commit | fe8e94bea39895f2544ae83916da83a4f2affa21 (patch) | |
tree | 9c1134155cb4ed8fcd390a228315cc22fa0202de /vim/plugin | |
parent | Beginnings of a buffer-to-Mutt mailer plugin (diff) | |
download | dotfiles-fe8e94bea39895f2544ae83916da83a4f2affa21.tar.gz dotfiles-fe8e94bea39895f2544ae83916da83a4f2affa21.zip |
Add new mail_mutt.vim plugin, apply mappings
This plugin provides a shortcut for staring email messages in Mutt with
a range of lines.
Diffstat (limited to 'vim/plugin')
-rw-r--r-- | vim/plugin/mail_mutt.vim | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/vim/plugin/mail_mutt.vim b/vim/plugin/mail_mutt.vim new file mode 100644 index 00000000..67444e4d --- /dev/null +++ b/vim/plugin/mail_mutt.vim @@ -0,0 +1,41 @@ +" +" mail_mutt.vim: Start a mutt(1) message with the lines in the given range, +" defaulting to the entire buffer. +" +" Author: Tom Ryder <tom@sanctum.geek.nz> +" License: Same as Vim itself +" +if exists('g:loaded_mail_mutt') + \ || !has('user_commands') + \ || &compatible + finish +endif +let g:loaded_mail_mutt = 1 + +" Declare function +function! s:MailMutt(start, end) + + " Check we'll have mutt(1) to execute + if !executable('mutt') + echoerr 'mutt not found in $PATH' + finish + endif + + " Create a temporary file + let l:tf = tempname() + + " Write the contents of the buffer to it + let l:range = a:start . ',' . a:end + let l:command = 'write ' . fnameescape(l:tf) + execute l:range . l:command + + + " Run mutt(1) with that file as its input + execute '!mutt -i ' . shellescape(l:tf) + +endfunction + +" Create a command to wrap around that function +command -nargs=0 -range=% + \ MailMutt + \ call <SID>MailMutt(<line1>, <line2>) |