[PATCH] VIM: Make an option to save sent mail locally

Tomi Ollila tomi.ollila at iki.fi
Mon Oct 6 11:28:55 PDT 2014


On Mon, Oct 06 2014, Ian Main <imain at stemwinder.org> wrote:

> Add an option to use 'notmuch insert' to save your sent mail.
> ---
>
> Add -inbox as well.
>
>  vim/notmuch.vim | 17 +++++++++++++++++
>  1 file changed, 17 insertions(+)
>
> diff --git a/vim/notmuch.vim b/vim/notmuch.vim
> index 331e930..a9044c4 100644
> --- a/vim/notmuch.vim
> +++ b/vim/notmuch.vim
> @@ -58,6 +58,7 @@ let s:notmuch_date_format_default = '%d.%m.%y'
>  let s:notmuch_datetime_format_default = '%d.%m.%y %H:%M:%S'
>  let s:notmuch_reader_default = 'mutt -f %s'
>  let s:notmuch_sendmail_default = 'sendmail'
> +let s:notmuch_save_sent_locally_default = 1
>  let s:notmuch_folders_count_threads_default = 0
>  
>  function! s:new_file_buffer(type, fname)
> @@ -108,6 +109,18 @@ EOF
>  		echohl None
>  		return
>  	endif

AFAIU looks mmm. readable ;)

> +
> +	if g:notmuch_save_sent_locally
> +		let out = system('cat ' . fname . ' | notmuch insert --create-folder --folder=Sent +sent -unread -inbox')

as this is (looks like) shell invocation, this could be in format

let out = system('notmuch insert --create-folder --folder=Sent +sent -unread -inbox < ' . fname)

or even 

let out = system('exec notmuch insert --create-folder --folder=Sent +sent -unread -inbox < ' . fname)

(well, the latter would be out of the status quo)

Ok, I looked a bit into the notmuch.vim -code, and noticed sometimes
system() command lines use "notmuch" and sometimes g:notmuch_cmd 
-- I think the latter should be used in new code and the previous ones
should be fixed.

i.e. system ( g:notmuch_cmd . ' insert ... ' < . fname)

Totally untested from my part...

When the change alike this lands to the notmuch repository this needs NEWS
item which informs that from now sent mails are notmuch-inserted to
user's mail store (as this seems to be the default...) -- well, let's see
that when there are real reviewers (i.e. those who are interested to and can
test this).


Tomi


> +		let err = v:shell_error
> +		if err
> +			echohl Error
> +			echo 'Eeek! unable to save sent mail'
> +			echo out
> +			echohl None
> +			return
> +		endif
> +	endif
>  	call delete(fname)
>  	echo 'Mail sent successfully.'
>  	call s:kill_this_buffer()
> @@ -388,6 +401,10 @@ endfunction
>  "" root
>  
>  function! s:set_defaults()
> +	if !exists('g:notmuch_save_sent_locally')
> +		let g:notmuch_save_sent_locally = s:notmuch_save_sent_locally_default
> +	endif
> +
>  	if !exists('g:notmuch_date_format')
>  		if exists('g:notmuch_rb_date_format')
>  			let g:notmuch_date_format = g:notmuch_rb_date_format
> -- 
> 1.9.3
>
> _______________________________________________
> notmuch mailing list
> notmuch at notmuchmail.org
> http://notmuchmail.org/mailman/listinfo/notmuch


More information about the notmuch mailing list