]> git.notmuchmail.org Git - notmuch/blobdiff - vim/plugin/notmuch.vim
vim: have '?' show search words in search mode
[notmuch] / vim / plugin / notmuch.vim
index b63417b8bf0464ae693f3c5913a773540431a7dd..d406a7eb79525ce86767018b664d35325d8cbfa4 100644 (file)
@@ -127,7 +127,7 @@ let g:notmuch_search_maps = {
         \ '+':          ':call <SID>NM_search_add_tags([])<CR>',
         \ '-':          ':call <SID>NM_search_remove_tags([])<CR>',
         \ '=':          ':call <SID>NM_search_refresh_view()<CR>',
-        \ '?':          ':echo <SID>NM_search_thread_id()<CR>',
+        \ '?':          ':echo <SID>NM_search_thread_id() . ''  @ '' . join(<SID>NM_get_search_words())<CR>',
         \ }
 
 " --- --- bindings for show screen {{{2
@@ -157,7 +157,7 @@ let g:notmuch_show_maps = {
         \
         \ 'r':          ':call <SID>NM_show_reply()<CR>',
         \ 'm':          ':call <SID>NM_new_mail()<CR>',
-        \ '?':          ':echo <SID>NM_show_message_id() . ''  @ '' . join(<SID>NM_show_search_words())<CR>',
+        \ '?':          ':echo <SID>NM_show_message_id() . ''  @ '' . join(<SID>NM_get_search_words())<CR>',
         \ }
 
 " --- --- bindings for compose screen {{{2
@@ -175,7 +175,7 @@ let g:notmuch_compose_imaps = {
 
 function! s:NM_cmd_folders(words)
         if len(a:words)
-                echoe 'Not exapecting any arguments for folders command.'
+                throw 'Not exapecting any arguments for folders command.'
         endif
         let cmd = ['count']
         let disp = []
@@ -387,7 +387,6 @@ function! s:NM_search_thread_id()
         if len(b:nm_raw_lines) <= mnum
                 return ''
         endif
-        echo 'len=' . string(len(b:nm_raw_lines)) . '  mnum=' . string(mnum)
         let info = b:nm_raw_lines[mnum]
         let what = split(info, '\s\+')[0]
         return what
@@ -420,7 +419,7 @@ function! s:NM_cmd_show(words)
         setlocal bufhidden=hide
         call <SID>NM_newBuffer('', 'show', join(info['disp'], "\n"))
         setlocal bufhidden=delete
-        let b:nm_words = a:words
+        let b:nm_search_words = a:words
         let b:nm_raw_info = info
         let b:nm_prev_bufnr = prev_bufnr
 
@@ -539,7 +538,7 @@ function! s:NM_show_advance_marking_read_and_archiving()
 
         let msg_top = <SID>NM_show_get_message_for_line(vis_top)
         if !has_key(msg_top,'id')
-                echo "No top visible message."
+                throw "No top visible message."
         endif
 
         " if the top message is the last message, just expunge the entire thread and move on
@@ -562,7 +561,7 @@ function! s:NM_show_advance_marking_read_and_archiving()
 
         let msg_bot = <SID>NM_show_get_message_for_line(vis_bot)
         if !has_key(msg_bot,'id')
-                echo "No bottom visible message."
+                throw "No bottom visible message."
         endif
 
         " if entire message fits on the screen, read/archive it, move to the next one
@@ -629,13 +628,6 @@ function! s:NM_show_message_id()
         return ''
 endfunction
 
-function! s:NM_show_search_words()
-        if !exists('b:nm_words')
-                throw 'Eeek! no b:nm_words'
-        endif
-        return b:nm_words
-endfunction
-
 function! s:NM_show_fold_toggle(key, type, fold)
         let info = b:nm_raw_info
         let act = 'open'
@@ -1051,7 +1043,6 @@ endfunction
 function! s:NM_compose_next_entry_area()
         let lnum = line('.')
         let hdr_end = <SID>NM_compose_find_line_match(1,'^$',1)
-        echo 'header end = ' . string(hdr_end)
         if lnum < hdr_end
                 let lnum = lnum + 1
                 let line = getline(lnum)
@@ -1229,6 +1220,13 @@ endfunction
 
 " --- other helpers {{{1
 
+function! s:NM_get_search_words()
+        if !exists('b:nm_search_words')
+                throw 'Eeek! no b:nm_search_words'
+        endif
+        return b:nm_search_words
+endfunction
+
 function! s:NM_kill_this_buffer()
         if exists('b:nm_prev_bufnr')
                 let prev_bufnr = b:nm_prev_bufnr
@@ -1251,7 +1249,7 @@ endfunction
 function! s:NM_add_remove_tags(filter, prefix, tags)
         let filter = len(a:filter) ? a:filter : [<SID>NM_search_thread_id()]
         if !len(filter)
-                echoe 'Eeek! I couldn''t find the thead id!'
+                throw 'Eeek! I couldn''t find the thead id!'
         endif
         call map(a:tags, 'a:prefix . v:val')
         let args = ['tag']