X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=vim%2Fplugin%2Fnotmuch.vim;h=181e626e628d2a15b4bfb1756da30bc2deed79c9;hb=bcb17491b5f9f303b853a9797dfbb4f60279ece9;hp=6b82abedbfe2b9a655021bd6e7d99735f25356fa;hpb=e7899b00d0948f5d8e75b22b9ce82037593ebcdd;p=obsolete%2Fnotmuch-old diff --git a/vim/plugin/notmuch.vim b/vim/plugin/notmuch.vim index 6b82abed..181e626e 100644 --- a/vim/plugin/notmuch.vim +++ b/vim/plugin/notmuch.vim @@ -58,7 +58,7 @@ let s:notmuch_defaults = { \ \ 'g:notmuch_compose_insert_mode_start': 1 , \ 'g:notmuch_compose_header_help': 1 , - \ 'g:notmuch_compose_temp_file_dir': '~/.notmuch/compose/' , + \ 'g:notmuch_compose_temp_file_dir': '~/.notmuch/compose' , \ } " defaults for g:notmuch_initial_search_words @@ -120,8 +120,10 @@ let g:notmuch_search_maps = { \ '': ':call NM_search_show_thread(0)', \ '': ':call NM_search_show_thread(1)', \ '': ':call NM_search_expand('''')', + \ 'I': ':call NM_search_mark_read_thread()', \ 'a': ':call NM_search_archive_thread()', \ 'A': ':call NM_search_mark_read_then_archive_thread()', + \ 'D': ':call NM_search_delete_thread()', \ 'f': ':call NM_search_filter()', \ 'm': ':call NM_new_mail()', \ 'o': ':call NM_search_toggle_order()', @@ -149,8 +151,11 @@ let g:notmuch_show_maps = { \ 'h': ':call NM_show_fold_toggle(''h'', ''hdr'', !g:notmuch_show_fold_headers)', \ 'i': ':call NM_show_fold_toggle(''s'', ''sig'', !g:notmuch_show_fold_signatures)', \ + \ 'I': ':call NM_show_mark_read_thread()', \ 'a': ':call NM_show_archive_thread()', \ 'A': ':call NM_show_mark_read_then_archive_thread()', + \ 'D': ':call NM_show_delete_thread()', + \ 'd': ':call NM_show_delete_message()', \ 'N': ':call NM_show_mark_read_then_next_open_message()', \ 'v': ':call NM_show_view_all_mime_parts()', \ '+': ':call NM_show_add_tag()', @@ -309,6 +314,11 @@ function! s:NM_search_edit() endif endfunction +function! s:NM_search_mark_read_thread() + call NM_tag([], ['-unread']) + norm j +endfunction + function! s:NM_search_archive_thread() call NM_tag([], ['-inbox']) norm j @@ -319,6 +329,11 @@ function! s:NM_search_mark_read_then_archive_thread() norm j endfunction +function! s:NM_search_delete_thread() + call NM_tag([], ['+delete','-inbox','-unread']) + norm j +endfunction + function! s:NM_search_filter() call NM_search_filter_helper('Filter: ', '', '') endfunction @@ -496,6 +511,11 @@ function! s:NM_show_next_thread() endif endfunction +function! s:NM_show_mark_read_thread() + call NM_tag(b:nm_search_words, ['-unread']) + call NM_show_next_thread() +endfunction + function! s:NM_show_archive_thread() call NM_tag(b:nm_search_words, ['-inbox']) call NM_show_next_thread() @@ -506,6 +526,16 @@ function! s:NM_show_mark_read_then_archive_thread() call NM_show_next_thread() endfunction +function! s:NM_show_delete_thread() + call NM_tag(b:nm_search_words, ['+delete', '-inbox', '-unread']) + call NM_show_next_thread() +endfunction + +function! s:NM_show_delete_message() + let msg = NM_show_get_message_for_line(line('.')) + call NM_tag([msg['id']], ['+delete', '-inbox', '-unread']) +endfunction + function! s:NM_show_mark_read_then_next_open_message() echo 'not implemented' endfunction @@ -735,7 +765,7 @@ function! s:NM_cmd_show_parse(inlines) if part_end " FIXME: this is a hack for handling two folds being added for one line - " we should handle addinga fold in a function + " we should handle adding a fold in a function if len(foldinfo) && foldinfo[1] < foldinfo[2] call add(info['folds'], foldinfo[0:3]) let info['foldtext'][foldinfo[1]] = foldinfo[4] @@ -962,7 +992,16 @@ function! s:NM_compose_send() exec printf(':0,%dd', hdr_starts) write - let cmdtxt = g:notmuch_sendmail . ' -t < ' . fname + let line = getline(1) + let m = matchlist(line, '^From:\s*\(.*\)\s*<\(.*\)>$') + if (len(m) >= 2) + let from = m[2] + else + let m = matchlist(line, '^From:\s*\(.*\)$') + let from = m[1] + endif + + let cmdtxt = g:notmuch_sendmail . ' -t -f ' . from . ' < ' . fname let out = system(cmdtxt) let err = v:shell_error if err @@ -1275,7 +1314,7 @@ endfunction function! s:NM_tag(filter, tags) let filter = len(a:filter) ? a:filter : [NM_search_thread_id()] if !len(filter) - throw 'Eeek! I couldn''t find the thead id!' + throw 'Eeek! I couldn''t find the thread id!' endif let args = ['tag'] call extend(args, a:tags)