blob: 67444e4d68e4f7e1f8c725b0cc1607f2aa4b6fe5 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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>)
|