diff options
author | Tom Ryder <tom@sanctum.geek.nz> | 2017-11-11 01:07:14 +1300 |
---|---|---|
committer | Tom Ryder <tom@sanctum.geek.nz> | 2017-11-11 01:07:14 +1300 |
commit | aaf04871d944646225875d5e9cc31a967947c3fe (patch) | |
tree | 787efb73dabb6b9cda660ccde51e838b507a3dbd /vim/plugin/mail_mutt.vim | |
parent | Merge branch 'hotfix/v0.12.2' (diff) | |
parent | Bump version number to 0.13.0 (diff) | |
download | dotfiles-aaf04871d944646225875d5e9cc31a967947c3fe.tar.gz dotfiles-aaf04871d944646225875d5e9cc31a967947c3fe.zip |
Merge branch 'release/v0.13.0'v0.13.0
* release/v0.13.0: (30 commits)
Bump version number to 0.13.0
Move mutt_mail.vim line select logic into plugin
Add new mail_mutt.vim plugin, apply mappings
Sort 'shortmess' flag settings alphabetically
Add 'o' and 'O' back into 'shortmess'
Set up individual flags for 'shortmess'
Fix oii(1df) so it works as a pipe
Use exists+ test rather than exists&
Adjust some whitespace and comment layout
Move matchit.vim sourcing into plugin.vim
Rename netrw.vim to plugin.vim
Remove 'shellslash' setting
Move fedora.vim into os.vim
Remove 'tildeop' setting
Rearrange three smaller files into display.vim
Move 'paste' options into terminal.vim
Move wildmenu config into completion.vim
Rename complete.vim to completion.vim
Rename term.vim to terminal.vim
Rename yank.vim to registers.vim
...
Diffstat (limited to 'vim/plugin/mail_mutt.vim')
-rw-r--r-- | vim/plugin/mail_mutt.vim | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/vim/plugin/mail_mutt.vim b/vim/plugin/mail_mutt.vim new file mode 100644 index 00000000..9bb4abd4 --- /dev/null +++ b/vim/plugin/mail_mutt.vim @@ -0,0 +1,56 @@ +" +" 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>) + +" Mapping to mail current line in normal mode +nnoremap <silent> <unique> + \ <Plug>MailMuttLine + \ :<C-U>.MailMutt<CR> + +" Mapping to mail whole buffer in normal mode +nnoremap <silent> <unique> + \ <Plug>MailMuttBuffer + \ :<C-U>%MailMutt<CR> + +" Mapping to mail selected lines in visual/select mode +vnoremap <silent> <unique> + \ <Plug>MailMuttSelected + \ :MailMutt<CR> |