[PATCH 3/4] VIM: save sent message to maildir

Bartosz telenczuk at unic.cnrs-gif.fr
Sat Jan 10 04:03:03 PST 2015


maildir folder is slected based on the address in
from header and it is configurable via notmuch
config.
---
 vim/notmuch.vim | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/vim/notmuch.vim b/vim/notmuch.vim
index 4f90d79..e95db4d 100644
--- a/vim/notmuch.vim
+++ b/vim/notmuch.vim
@@ -110,6 +110,9 @@ EOF
 		echohl None
 		return
 	endif
+
+	call s:save_to_sent(fname)
+
 	call delete(fname)
 	echo 'Mail sent successfully.'
 	call s:kill_this_buffer()
@@ -257,6 +260,20 @@ function! s:folders_refresh()
 	setlocal nomodifiable
 endfunction
 
+function! s:save_to_sent(fname)
+ruby << EOF
+    if $sent_dirs
+		fname = VIM::evaluate('a:fname')
+		m = Mail.read(fname)
+		from_address = m.from[0]
+		sent_box = $sent_dirs[from_address]
+		if sent_box
+			system "notmuch insert --folder:#{sent_box} +sent < #{fname}"
+		end
+	end
+EOF
+endfunction
+
 "" basic
 
 function! s:show_cursor_moved()
@@ -505,6 +522,8 @@ ruby << EOF
 		$email_address = get_config_item('user.primary_email')
 		$email_name = get_config_item('user.name')
 		$email = "%s <%s>" % [$email_name, $email_address]
+		sent_dirs_config = get_config_item('vim.sent_dirs')
+		$sent_dirs = Hash[sent_dirs_config.split("\n").collect{|x| x.strip.split("=>")}]
 	end
 
 	def vim_puts(s)
@@ -698,6 +717,7 @@ ruby << EOF
 		end
 	end
 
+
 	module DbHelper
 		def init(name)
 			@name = name
-- 
1.9.3 (Apple Git-50)



More information about the notmuch mailing list