]> git.notmuchmail.org Git - notmuch/blobdiff - vim/plugin/notmuch.vim
vim: make insert in compose mode configurable
[notmuch] / vim / plugin / notmuch.vim
index d3e313533060fca8728d899083a7ed7d0fc046b9..3c9c3162aa6a33c00725a6f298c8883df83d03de 100644 (file)
@@ -53,6 +53,8 @@ let s:notmuch_defaults = {
         \
         \ 'g:notmuch_show_citation_regexp':          '^\s*>'                      ,
         \
+        \ 'g:notmuch_compose_insert_mode_start':     1                            ,
+        \ 'g:notmuch_compose_header_help':           1                            ,
         \ 'g:notmuch_compose_temp_file_dir':         '~/.notmuch/compose/'        ,
         \ }
 
@@ -161,6 +163,7 @@ let g:notmuch_show_maps = {
 " --- --- bindings for compose screen {{{2
 let g:notmuch_compose_nmaps = {
         \ ',s':         ':call <SID>NM_compose_send()<CR>',
+        \ ',a':         ':call <SID>NM_compose_attach()<CR>',
         \ ',q':         ':call <SID>NM_kill_this_buffer()<CR>',
         \ '<Tab>':      ':call <SID>NM_compose_next_entry_area()<CR>',
         \ }
@@ -875,7 +878,13 @@ endfunction
 " --- implement compose screen {{{1
 
 function! s:NM_cmd_compose(words, body_lines)
-        let lines = []
+        let lines = !g:notmuch_compose_header_help ? [] : [
+                  \ 'Notmuch-Help: Type in your message here; to help you use these bindings:',
+                  \ 'Notmuch-Help:   ,a    - attach a file',
+                  \ 'Notmuch-Help:   ,s    - send the message (Notmuch-Help lines will be removed)',
+                  \ 'Notmuch-Help:   ,q    - abort the message',
+                  \ 'Notmuch-Help:   <Tab> - skip through header lines',
+                  \ ]
         let start_on_line = 0
 
         let hdrs = { }
@@ -931,22 +940,24 @@ function! s:NM_cmd_compose(words, body_lines)
                                   \ 'compose', lines)
         setlocal bufhidden=hide
 
-        call <SID>NM_cmd_compose_mksyntax()
         call <SID>NM_set_map('n', g:notmuch_compose_nmaps)
         call <SID>NM_set_map('i', g:notmuch_compose_imaps)
 
-        exec printf('norm %dG', start_on_line)
-        startinsert!
+        call cursor(start_on_line, strlen(start_on_line) + 1)
+        if g:notmuch_compose_insert_mode_start
+                startinsert!
+        endif
         echo 'Type your message, use <TAB> to jump to next header and then body.'
 endfunction
-function! s:NM_cmd_compose_mksyntax()
-        silent! setlocal syntax=mail
-endfunction
 
 function! s:NM_compose_send()
         echo 'not implemented'
 endfunction
 
+function! s:NM_compose_attach()
+        echo 'not implemented'
+endfunction
+
 function! s:NM_compose_next_entry_area()
         let lnum = line('.')
         let hdr_end = <SID>NM_compose_find_line_match(1,'^$',1)
@@ -968,7 +979,6 @@ function! s:NM_compose_next_entry_area()
                 call cursor(lnum+1, strlen(getline(lnum+1)) + 1)
                 return ''
         endif
-        echo 'mode=' . mode()
         if mode() == 'i'
                 if !getbufvar(bufnr('.'), '&et')
                         return "\t"