mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-12-22 09:24:54 +01:00
vim: have ? show details of what's under cursor in search/show views
This commit is contained in:
parent
251ec73587
commit
0210f960f1
2 changed files with 34 additions and 4 deletions
|
@ -36,6 +36,7 @@ Buffer types:
|
||||||
+ - add tag(s) to selected message
|
+ - add tag(s) to selected message
|
||||||
- - remove tag(s) from selected message
|
- - remove tag(s) from selected message
|
||||||
= - refresh display
|
= - refresh display
|
||||||
|
? - reveal the thread ID of what's under cursor
|
||||||
^] - search using word under cursor
|
^] - search using word under cursor
|
||||||
|
|
||||||
[notmuch-show]
|
[notmuch-show]
|
||||||
|
@ -49,5 +50,6 @@ Buffer types:
|
||||||
h - toggle folding of extra header lines
|
h - toggle folding of extra header lines
|
||||||
s - toggle folding of signatures
|
s - toggle folding of signatures
|
||||||
q - return to search display
|
q - return to search display
|
||||||
|
? - reveal the message and thread IDs of what's under cursor
|
||||||
^] - search using word under cursor
|
^] - search using word under cursor
|
||||||
|
|
||||||
|
|
|
@ -104,6 +104,7 @@ let g:notmuch_search_maps = {
|
||||||
\ '+': ':call <SID>NM_search_add_tags([])<CR>',
|
\ '+': ':call <SID>NM_search_add_tags([])<CR>',
|
||||||
\ '-': ':call <SID>NM_search_remove_tags([])<CR>',
|
\ '-': ':call <SID>NM_search_remove_tags([])<CR>',
|
||||||
\ '=': ':call <SID>NM_search_refresh_view()<CR>',
|
\ '=': ':call <SID>NM_search_refresh_view()<CR>',
|
||||||
|
\ '?': ':echo <SID>NM_search_thread_id()<CR>',
|
||||||
\ }
|
\ }
|
||||||
|
|
||||||
" --- --- bindings for show screen {{{2
|
" --- --- bindings for show screen {{{2
|
||||||
|
@ -129,6 +130,7 @@ let g:notmuch_show_maps = {
|
||||||
\
|
\
|
||||||
\ 'r': ':call <SID>NM_show_reply()<CR>',
|
\ 'r': ':call <SID>NM_show_reply()<CR>',
|
||||||
\ 'm': ':call <SID>NM_new_mail()<CR>',
|
\ 'm': ':call <SID>NM_new_mail()<CR>',
|
||||||
|
\ '?': ':echo <SID>NM_show_thread_id() . '' '' . <SID>NM_show_message_id()<CR>',
|
||||||
\ }
|
\ }
|
||||||
|
|
||||||
|
|
||||||
|
@ -226,7 +228,7 @@ endfunction
|
||||||
" --- --- search screen action functions {{{2
|
" --- --- search screen action functions {{{2
|
||||||
|
|
||||||
function! s:NM_search_show_thread()
|
function! s:NM_search_show_thread()
|
||||||
let id = <SID>NM_search_find_thread_id()
|
let id = <SID>NM_search_thread_id()
|
||||||
if id != ''
|
if id != ''
|
||||||
call <SID>NM_cmd_show([id])
|
call <SID>NM_cmd_show([id])
|
||||||
endif
|
endif
|
||||||
|
@ -324,7 +326,7 @@ endfunction
|
||||||
|
|
||||||
" --- --- search screen helper functions {{{2
|
" --- --- search screen helper functions {{{2
|
||||||
|
|
||||||
function! s:NM_search_find_thread_id()
|
function! s:NM_search_thread_id()
|
||||||
if !exists('b:nm_raw_lines')
|
if !exists('b:nm_raw_lines')
|
||||||
echoe 'no b:nm_raw_lines'
|
echoe 'no b:nm_raw_lines'
|
||||||
return ''
|
return ''
|
||||||
|
@ -363,6 +365,7 @@ function! s:NM_cmd_show(words)
|
||||||
setlocal bufhidden=hide
|
setlocal bufhidden=hide
|
||||||
call <SID>NM_newBuffer('show', join(info['disp'], "\n"))
|
call <SID>NM_newBuffer('show', join(info['disp'], "\n"))
|
||||||
setlocal bufhidden=delete
|
setlocal bufhidden=delete
|
||||||
|
let b:nm_words = a:words
|
||||||
let b:nm_raw_info = info
|
let b:nm_raw_info = info
|
||||||
let b:nm_prev_bufnr = prev_bufnr
|
let b:nm_prev_bufnr = prev_bufnr
|
||||||
|
|
||||||
|
@ -475,7 +478,32 @@ function! s:NM_show_pipe_message()
|
||||||
echo 'not implemented'
|
echo 'not implemented'
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" --- --- search screen helper functions {{{2
|
" --- --- show screen helper functions {{{2
|
||||||
|
|
||||||
|
function! s:NM_show_thread_id()
|
||||||
|
if !exists('b:nm_words')
|
||||||
|
echoe 'no b:nm_words'
|
||||||
|
return ''
|
||||||
|
endif
|
||||||
|
return b:nm_words[0]
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! s:NM_show_message_id()
|
||||||
|
if !exists('b:nm_raw_info')
|
||||||
|
echoe 'no b:nm_raw_info'
|
||||||
|
return ''
|
||||||
|
endif
|
||||||
|
let info = b:nm_raw_info
|
||||||
|
let lnum = line('.')
|
||||||
|
for msg in info['msgs']
|
||||||
|
if lnum < msg['start']
|
||||||
|
continue
|
||||||
|
endif
|
||||||
|
|
||||||
|
return msg['id']
|
||||||
|
endfor
|
||||||
|
return ''
|
||||||
|
endfunction
|
||||||
|
|
||||||
function! s:NM_show_fold_toggle(key, type, fold)
|
function! s:NM_show_fold_toggle(key, type, fold)
|
||||||
let info = b:nm_raw_info
|
let info = b:nm_raw_info
|
||||||
|
@ -766,7 +794,7 @@ function! s:NM_search_expand(arg)
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:NM_add_remove_tags(prefix, tags)
|
function! s:NM_add_remove_tags(prefix, tags)
|
||||||
let id = <SID>NM_search_find_thread_id()
|
let id = <SID>NM_search_thread_id()
|
||||||
if id == ''
|
if id == ''
|
||||||
echoe 'Eeek! I couldn''t find the thead id!'
|
echoe 'Eeek! I couldn''t find the thead id!'
|
||||||
endif
|
endif
|
||||||
|
|
Loading…
Reference in a new issue