" --- --- bindings for show screen {{{2
let g:notmuch_show_maps = {
- \ '<C-P>': ':call <SID>NM_show_prev(1)<CR>',
+ \ '<C-P>': ':call <SID>NM_show_previous(1)<CR>',
\ '<C-N>': ':call <SID>NM_show_next(1)<CR>',
\ 'q': ':call <SID>NM_kill_this_buffer()<CR>',
\
endfunction
-function! s:NM_show_prev(can_change_thread)
+function! s:NM_show_previous(can_change_thread)
let info = b:nm_raw_info
let lnum = line('.')
for msg in reverse(copy(info['msgs']))
norm k
call <SID>NM_search_show_thread()
norm G
- call <SID>NM_show_prev(0)
+ call <SID>NM_show_previous(0)
else
echo 'No more messages.'
endif
if (outlnum - mode_start) > g:notmuch_show_signature_lines_max
let mode_type = ''
elseif part_end
- let foldinfo = [ mode_type, mode_start, outlnum,
- \ printf('[ %d-line signature. Press "s" to show. ]', outlnum - mode_start) ]
+ if mode_start != outlnum
+ let foldinfo = [ mode_type, mode_start, outlnum-1,
+ \ printf('[ %d-line signature. Press "s" to show. ]', outlnum - mode_start) ]
+ endif
let mode_type = ''
endif
endif
let hdr_start = msg['hdr_start']+1
let hdr_end = len(info['disp'])
let foldinfo = [ 'hdr', hdr_start, hdr_end,
- \ printf('[ %d-line headers. Press "h" to show. ]', hdr_end - hdr_start) ]
+ \ printf('[ %d-line headers. Press "h" to show. ]', hdr_end + 1 - hdr_start) ]
let msg['header'] = hdr
let in_header = 0
let hdr = {}
" --- assign keymaps {{{1
function! s:NM_set_map(maps)
+ nmapclear
for [key, code] in items(a:maps)
exec printf('nnoremap <buffer> %s %s', key, code)
endfor
+ " --- this is a hack for development :)
+ nnoremap ,nmr :source ~/.vim/plugin/notmuch.vim<CR>:call NotMuch('')<CR>
endfunction
" --- command handler {{{1
command! -nargs=* -complete=customlist,CompleteNotMuch NotMuch call NotMuch(<q-args>)
cabbrev notmuch <c-r>=(getcmdtype()==':' && getcmdpos()==1 ? 'NotMuch' : 'notmuch')<CR>
-" --- hacks, only for development :) {{{1
-
-nnoremap ,nmr :source ~/.vim/plugin/notmuch.vim<CR>:call NotMuch('')<CR>
-
" vim: set ft=vim ts=8 sw=8 et foldmethod=marker :