+ call <SID>NM_search_filter_helper('Filter: ', '')
+endfunction
+
+function! s:NM_search_filter_by_tag()
+ call <SID>NM_search_filter_helper('Filter Tag(s): ', 'tag:')
+endfunction
+
+function! s:NM_search_filter_helper(prompt, prefix)
+ " TODO: input() can support completion
+ let text = input(a:prompt)
+ if !strlen(text)
+ return
+ endif
+
+ let tags = split(text)
+ map(tags, 'a:prefix . v:val')
+ let tags = b:nm_search_words + tags
+ echo tags
+
+ let prev_bufnr = bufnr('%')
+ setlocal bufhidden=hide
+ call <SID>NM_cmd_search(tags)
+ setlocal bufhidden=delete
+ let b:nm_prev_bufnr = prev_bufnr