]> git.notmuchmail.org Git - notmuch/blobdiff - vim/plugin/notmuch.vim
vim: allow for different types of mappings not just normal mode ones
[notmuch] / vim / plugin / notmuch.vim
index ade2e45df9a168d4fc09f611e4b04e05be94d4c9..15958f18c02c407d93056717aa858b825c4cfc47 100644 (file)
@@ -161,7 +161,7 @@ function! s:NM_cmd_folders(words)
         let b:nm_timestamp = reltime()
 
         call <SID>NM_cmd_folders_mksyntax()
-        call <SID>NM_set_map(g:notmuch_folders_maps)
+        call <SID>NM_set_map('n', g:notmuch_folders_maps)
         setlocal cursorline
         setlocal nowrap
 endfunction
@@ -209,7 +209,7 @@ function! s:NM_cmd_search(words)
         let b:nm_search_words = a:words
 
         call <SID>NM_cmd_search_mksyntax()
-        call <SID>NM_set_map(g:notmuch_search_maps)
+        call <SID>NM_set_map('n', g:notmuch_search_maps)
         setlocal cursorline
         setlocal nowrap
 endfunction
@@ -254,7 +254,7 @@ function! s:NM_search_prompt()
                 let tags = s:notmuch_initial_search_words_defaults
         endif
         let prev_bufnr = bufnr('%')
-        if b:nm_type == 'search'
+        if b:nm_type == 'search' && exists('b:nm_prev_bufnr')
                 " TODO: we intend to replace the current buffer,
                 "       ... maybe we could just clear it
                 let prev_bufnr = b:nm_prev_bufnr
@@ -395,7 +395,7 @@ function! s:NM_cmd_show(words)
 
         call <SID>NM_cmd_show_mkfolds()
         call <SID>NM_cmd_show_mksyntax()
-        call <SID>NM_set_map(g:notmuch_show_maps)
+        call <SID>NM_set_map('n', g:notmuch_show_maps)
         setlocal foldtext=NM_cmd_show_foldtext()
         setlocal fillchars=
         setlocal foldcolumn=6
@@ -979,10 +979,10 @@ endif
 
 " --- assign keymaps {{{1
 
-function! s:NM_set_map(maps)
+function! s:NM_set_map(type, maps)
         nmapclear
         for [key, code] in items(a:maps)
-                exec printf('nnoremap <buffer> %s %s', key, code)
+                exec printf('%snoremap <buffer> %s %s', a:type, key, code)
         endfor
         " --- this is a hack for development :)
         nnoremap ,nmr :source ~/.vim/plugin/notmuch.vim<CR>:call NotMuch('')<CR>
@@ -1000,6 +1000,7 @@ function! NotMuch(args)
         if words[0] == 'folders'
                 let words = words[1:]
                 call <SID>NM_cmd_folders(words)
+
         elseif words[0] == 'search'
                 if len(words) > 1
                         let words = words[1:]