mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-12-22 17:34:54 +01:00
make control-p go to previous message
This commit is contained in:
parent
75ae11ebd2
commit
71c9dbb71d
2 changed files with 42 additions and 11 deletions
|
@ -33,6 +33,7 @@ Buffer types:
|
|||
|
||||
Keybindings:
|
||||
^n - next message
|
||||
^p - previous message
|
||||
b - toggle folding of message bodies
|
||||
c - toggle folding of citations
|
||||
h - toggle folding of extra header lines
|
||||
|
|
|
@ -90,8 +90,8 @@ let g:notmuch_search_maps = {
|
|||
|
||||
" --- --- bindings for show screen {{{2
|
||||
let g:notmuch_show_maps = {
|
||||
\ '<C-P>': ':call <SID>NM_show_prev()<CR>',
|
||||
\ '<C-N>': ':call <SID>NM_show_next()<CR>',
|
||||
\ '<C-P>': ':call <SID>NM_show_prev(1)<CR>',
|
||||
\ '<C-N>': ':call <SID>NM_show_next(1)<CR>',
|
||||
\ 'q': ':call <SID>NM_kill_this_buffer()<CR>',
|
||||
\
|
||||
\ 'b': ':call <SID>NM_show_fold_toggle(''b'', ''bdy'', !g:notmuch_show_fold_bodies)<CR>',
|
||||
|
@ -313,26 +313,56 @@ function! s:NM_cmd_show(words)
|
|||
|
||||
endfunction
|
||||
|
||||
function! s:NM_show_prev()
|
||||
echoe "not implemented"
|
||||
endfunction
|
||||
|
||||
function! s:NM_show_next()
|
||||
function! s:NM_show_prev(can_change_thread)
|
||||
let info = b:nm_raw_info
|
||||
let lnum = line('.')
|
||||
for msg in reverse(copy(info['msgs']))
|
||||
if lnum <= msg['start']
|
||||
continue
|
||||
endif
|
||||
|
||||
exec printf('norm %dG', msg['start'])
|
||||
" TODO: try to fit the message on screen
|
||||
norm zz
|
||||
return
|
||||
endfor
|
||||
if !a:can_change_thread
|
||||
return
|
||||
endif
|
||||
call <SID>NM_kill_this_buffer()
|
||||
if line('.') != line('0')
|
||||
norm k
|
||||
call <SID>NM_search_show_thread()
|
||||
norm G
|
||||
call <SID>NM_show_prev(0)
|
||||
else
|
||||
echo 'No more messages.'
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! s:NM_show_next(can_change_thread)
|
||||
let info = b:nm_raw_info
|
||||
let lnum = line('.')
|
||||
let cnt = 0
|
||||
for msg in info['msgs']
|
||||
let cnt = cnt + 1
|
||||
if lnum >= msg['start']
|
||||
continue
|
||||
endif
|
||||
|
||||
exec printf('norm %dG', msg['start'])
|
||||
" TODO: try to fit the message on screen
|
||||
norm zz
|
||||
return
|
||||
endfor
|
||||
norm qj
|
||||
call <SID>NM_search_show_thread()
|
||||
if !a:can_change_thread
|
||||
return
|
||||
endif
|
||||
call <SID>NM_kill_this_buffer()
|
||||
if line('.') != line('$')
|
||||
norm j
|
||||
call <SID>NM_search_show_thread()
|
||||
else
|
||||
echo 'No more messages.'
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! s:NM_show_archive_thread()
|
||||
|
|
Loading…
Reference in a new issue