aboutsummaryrefslogtreecommitdiff
path: root/grep.vim
diff options
context:
space:
mode:
authorCharles <sircharlesaze@gmail.com>2020-05-15 12:53:02 +0200
committerCharles <sircharlesaze@gmail.com>2020-05-15 12:53:02 +0200
commit8bf3a3166a147adeee5094cfcfc8646ba2e96803 (patch)
treefe1e62dcded75767003cefe04548a4381762258f /grep.vim
parent9279d013bb1ce88860c560a04dbc926ce55f3093 (diff)
parente9530ee0b4e9706fb0fcb82fa3cb87d57a5b540d (diff)
downloaddotfiles-8bf3a3166a147adeee5094cfcfc8646ba2e96803.tar.gz
dotfiles-8bf3a3166a147adeee5094cfcfc8646ba2e96803.tar.bz2
dotfiles-8bf3a3166a147adeee5094cfcfc8646ba2e96803.zip
Merge branch 'master' into carbon
Diffstat (limited to 'grep.vim')
-rw-r--r--grep.vim23
1 files changed, 23 insertions, 0 deletions
diff --git a/grep.vim b/grep.vim
new file mode 100644
index 0000000..32181f7
--- /dev/null
+++ b/grep.vim
@@ -0,0 +1,23 @@
+nnoremap <leader>g :set operatorfunc=<SID>GrepOp<CR>g@
+vnoremap <leader>g :<C-u>call <SID>GrepOp(visualmode())<CR>
+
+function! s:GrepOp(type)
+ let saved = @@
+
+ if a:type ==# 'v'
+ execute "normal! `<v`>y"
+ elseif a:type ==# 'char'
+ execute "normal! `[v`]y"
+ else
+ return
+ endif
+
+ silent execute "grep! -R " . shellescape(@@) . " ."
+ silent redraw!
+ let g:quickfix_is_open = 1
+ copen
+ let @@ = saved
+endfunction
+
+nnoremap <leader>gn :cnext<CR>
+nnoremap <leader>gp :cprevious<CR>