]> git.notmuchmail.org Git - notmuch/blobdiff - vim/plugin/notmuch.vim
vim: store previous buffer number when starting to compose
[notmuch] / vim / plugin / notmuch.vim
index b70c6edcb8e32c618527703e657ad499635ce5b0..63a711fdf84368af8b1300e6d3367fdfaa026f61 100644 (file)
@@ -188,7 +188,7 @@ function! s:NM_cmd_folders(words)
                 call add(searches, search)
         endfor
 
-        call <SID>NM_newBuffer('folders', join(disp, "\n"))
+        call <SID>NM_newBuffer('', 'folders', join(disp, "\n"))
         let b:nm_searches = searches
         let b:nm_timestamp = reltime()
 
@@ -236,7 +236,7 @@ function! s:NM_cmd_search(words)
         let disp = copy(lines)
         call map(disp, 's:NM_cmd_search_fmtline(v:val)')
 
-        call <SID>NM_newBuffer('search', join(disp, "\n"))
+        call <SID>NM_newBuffer('', 'search', join(disp, "\n"))
         let b:nm_raw_lines = lines
         let b:nm_search_words = a:words
 
@@ -418,7 +418,7 @@ function! s:NM_cmd_show(words)
         let info = s:NM_cmd_show_parse(lines)
 
         setlocal bufhidden=hide
-        call <SID>NM_newBuffer('show', join(info['disp'], "\n"))
+        call <SID>NM_newBuffer('', 'show', join(info['disp'], "\n"))
         setlocal bufhidden=delete
         let b:nm_words = a:words
         let b:nm_raw_info = info
@@ -886,7 +886,7 @@ function! s:NM_cmd_compose(words, body_lines)
 
         let hdrs = { }
         for word in a:words
-                let m = matchlist(word, '^\([^:]\+\):\s*\(.*\)\s*$')
+                let m = matchlist(word, '^\(\w[^:]*\):\s*\(.*\)\s*$')
                 if !len(m)
                         throw 'Eeek! bad parameter ''' . string(word) . ''''
                 endif
@@ -936,6 +936,7 @@ function! s:NM_cmd_compose(words, body_lines)
         call <SID>NM_newFileBuffer(g:notmuch_compose_temp_file_dir, '%s.mail',
                                   \ 'compose', lines)
         setlocal bufhidden=hide
+        let b:nm_prev_bufnr = prev_bufnr
 
         call <SID>NM_set_map('n', g:notmuch_compose_nmaps)
         call <SID>NM_set_map('i', g:notmuch_compose_imaps)
@@ -1013,8 +1014,12 @@ endfunction
 
 " --- notmuch helper functions {{{1
 
-function! s:NM_newBuffer(type, content)
-        enew
+function! s:NM_newBuffer(how, type, content)
+        if strlen(a:how)
+                exec a:how
+        else
+                enew
+        endif
         setlocal buftype=nofile readonly modifiable scrolloff=0 sidescrolloff=0
         silent put=a:content
         keepjumps 0d