diff options
author | Bart Trojanowski <bart@jukie.net> | 2009-11-18 21:00:17 -0500 |
---|---|---|
committer | Bart Trojanowski <bart@jukie.net> | 2009-11-25 00:48:49 -0500 |
commit | 5e7df3c17e0d07d5252820beb5ef1e0bfea86498 (patch) | |
tree | c67555a1ebd3cbb4f3ee8a62446c6f11881955f7 /vim/plugin | |
parent | 0265a0030348dbed4816d0619ac8806e76640184 (diff) |
move from search to show with Enter, and back with q
Diffstat (limited to 'vim/plugin')
-rw-r--r-- | vim/plugin/notmuch.vim | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/vim/plugin/notmuch.vim b/vim/plugin/notmuch.vim index 865624fe..a15f4df5 100644 --- a/vim/plugin/notmuch.vim +++ b/vim/plugin/notmuch.vim @@ -25,18 +25,22 @@ if !exists('g:notmuch_cmd') let g:notmuch_cmd = 'notmuch' endif - " --- implement search screen function! s:NM_cmd_search(words) - let data = split(s:NM_run(['search'] + a:words), "\n") - let disp = copy(data) + let data = s:NM_run(['search'] + a:words) + "let data = substitute(data, '27/27', '25/27', '') + "let data = substitute(data, '\[4/4\]', '[0/4]', '') + let lines = split(data, "\n") + let disp = copy(lines) call map(disp, 'substitute(v:val, "^thread:\\S* ", "", "")' ) call s:NM_newBuffer('search', join(disp, "\n")) - let b:nm_raw_data = data + let b:nm_raw_data = lines nnoremap <buffer> <Enter> :call <SID>NM_search_display()<CR> + setlocal cursorline + setlocal nowrap endfunction function! s:NM_search_display() @@ -45,7 +49,7 @@ function! s:NM_search_display() echo 'no b:nm_raw_data' else let info = b:nm_raw_data[line] - let what = split(info, '\W\+')[0] + let what = split(info, '\s\+')[0] call s:NM_cmd_show([what]) endif endfunction @@ -54,10 +58,14 @@ endfunction " --- implement show screen function! s:NM_cmd_show(words) + let bufnr = bufnr('%') let data = s:NM_run(['show'] + a:words) call s:NM_newBuffer('show', data) + setlocal bufhidden=delete let b:nm_raw_data = data + + exec printf("nnoremap <buffer> q :b %d<CR>", bufnr) endfunction @@ -66,12 +74,11 @@ endfunction function! s:NM_newBuffer(ft, content) enew setlocal buftype=nofile readonly modifiable - setlocal bufhidden=delete silent put=a:content keepjumps 0d setlocal nomodifiable - setlocal cursorline - execute printf('setlocal filetype=notmuch-%s', a:ft) + execute printf('set filetype=notmuch-%s', a:ft) + execute printf('set syntax=notmuch-%s', a:ft) endfunction function! s:NM_run(args) |