From 956c0ed4df7741e51dc9e45835373af392992aea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steven=20Barrag=C3=A1n?= Date: Sat, 31 Dec 2016 13:04:35 -0600 Subject: [PATCH 1/3] Migrate from the silver searcher to ripgrep --- README.md | 4 ++-- Rakefile | 2 +- doc/vim/utils.md | 2 +- vim/settings/ctrlp.vim | 10 +++++----- vim/settings/ripgrep.vim | 3 +++ vim/settings/search.vim | 14 +++++++------- vim/vundles/search.vundle | 2 +- 7 files changed, 20 insertions(+), 17 deletions(-) create mode 100644 vim/settings/ripgrep.vim diff --git a/README.md b/README.md index 7894fb08c7..bcc172b7af 100644 --- a/README.md +++ b/README.md @@ -96,7 +96,7 @@ Read on to learn what YADR provides! Homebrew is _the missing package manager for OSX_. Installed automatically. -We automatically install a few useful packages including ctags, git, macvim, hub, and the silver searcher ('ag') +We automatically install a few useful packages including ctags, git, macvim, hub, and RipGrep ('rg') Note that our autocomplete plugin requires a MacVim that supports Lua. The installer knows how to install it, but if you had one installed before, you may need to manually remove your old MacVim. ### ZSH @@ -190,7 +190,7 @@ of plugins above to learn more. * `,K` - Grep the current word up to next exclamation point (useful for ruby foo! methods) * `Cmd-*` - highlight all occurrences of current word (similar to regular `*` except doesn't move) * `,hl` - toggle search highlight on and off - * `,gg` or `,ag` - Grep command line, type between quotes. Uses Ag Silver Searcher. + * `,gg` or `,rg` - Grep command line, type between quotes. Uses RipGrep. * After searching with `,gg` you can navigate the results with `Ctrl-x` and `Ctrl-z` (or standard vim `:cn` and `:cp`) * `,gd` - Grep def (greps for 'def [function name]') when cursor is over the function name * `,gcf` - Grep Current File to find references to the current file diff --git a/Rakefile b/Rakefile index 3c1d29d0d0..c930b38a92 100644 --- a/Rakefile +++ b/Rakefile @@ -172,7 +172,7 @@ def install_homebrew puts "======================================================" puts "Installing Homebrew packages...There may be some warnings." puts "======================================================" - run %{brew install zsh ctags git hub tmux reattach-to-user-namespace the_silver_searcher ghi hub} + run %{brew install zsh ctags git hub tmux reattach-to-user-namespace ripgrep ghi hub} run %{brew install macvim --custom-icons --with-override-system-vim --with-lua --with-luajit} puts puts diff --git a/doc/vim/utils.md b/doc/vim/utils.md index 078a96b1da..591fe423f9 100644 --- a/doc/vim/utils.md +++ b/doc/vim/utils.md @@ -10,5 +10,5 @@ * color_highlight - use :ColorCodes to see hex colors highlighted * change-inside-surroundings - change content inside delimiters like quotes/brackets * rspec.vim - used for color highlighting rspec correctly even if specs live outside of spec/ (rails.vim doesn't handle this) -* Ag - use :Ag to search across multiple files. Faster than Grep and Ack. +* Rg - use :Rg to search across multiple files. Faster than Ag, Grep and Ack. * vim-session: use `:SaveSession` and `:OpenSession` to come back to your saved window layout diff --git a/vim/settings/ctrlp.vim b/vim/settings/ctrlp.vim index 04e4de8e20..a6ff442fe4 100644 --- a/vim/settings/ctrlp.vim +++ b/vim/settings/ctrlp.vim @@ -1,12 +1,12 @@ if exists("g:ctrlp_user_command") unlet g:ctrlp_user_command endif -if executable('ag') - " Use ag in CtrlP for listing files. Lightning fast and respects .gitignore - let g:ctrlp_user_command = - \ 'ag %s --files-with-matches -g "" --ignore "\.git$\|\.hg$\|\.svn$"' - " ag is fast enough that CtrlP doesn't need to cache +if executable('rg') + " Use rg in CtrlP for listing files. Lightning fast and respects .gitignore + let g:ctrlp_user_command = 'rg --files --smart-case %s' + + " rg is fast enough that CtrlP doesn't need to cache let g:ctrlp_use_caching = 0 else " Fall back to using git ls-files if Ag is not available diff --git a/vim/settings/ripgrep.vim b/vim/settings/ripgrep.vim new file mode 100644 index 0000000000..ccece01f55 --- /dev/null +++ b/vim/settings/ripgrep.vim @@ -0,0 +1,3 @@ +" Open the Rg command and place the cursor into the quotes +nmap ,rg :Rg "" +nmap ,rf :Rg --files "" diff --git a/vim/settings/search.vim b/vim/settings/search.vim index 1a6ae84eb6..501d70de65 100644 --- a/vim/settings/search.vim +++ b/vim/settings/search.vim @@ -11,20 +11,20 @@ function! GetVisual() endfunction "grep the current word using K (mnemonic Kurrent) -nnoremap K :Ag +nnoremap K :Rg "grep visual selection -vnoremap K :execute "Ag " . GetVisual() +vnoremap K :execute "Rg " . GetVisual() "grep current word up to the next exclamation point using ,K -nnoremap ,K viwf!:execute "Ag " . GetVisual() +nnoremap ,K viwf!:execute "Rg " . GetVisual() "grep for 'def foo' -nnoremap ,gd :Ag 'def ' +nnoremap ,gd :Rg 'def ' -",gg = Grep! - using Ag the silver searcher +",gg = Grep! - using Rg RipGrep " open up a grep line, with a quote started for the search -nnoremap ,gg :Ag "" +nnoremap ,gg :Rg "" "Grep for usages of the current file -nnoremap ,gcf :exec "Ag " . expand("%:t:r") +nnoremap ,gcf :exec "Rg " . expand("%:t:r") diff --git a/vim/vundles/search.vundle b/vim/vundles/search.vundle index 2635f88d30..43dc2bf389 100644 --- a/vim/vundles/search.vundle +++ b/vim/vundles/search.vundle @@ -1,5 +1,5 @@ Bundle "justinmk/vim-sneak" -Bundle "rking/ag.vim" +Bundle "jremmen/vim-ripgrep" Bundle "henrik/vim-indexed-search" Bundle "nelstrom/vim-visual-star-search" Bundle "skwp/greplace.vim" From 09c773df21b565090cc226a4dfdaff9e965c19de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steven=20Barrag=C3=A1n?= Date: Mon, 2 Jan 2017 22:16:33 -0600 Subject: [PATCH 2/3] Setup RipGrep for:grep --- vim/settings/grep.vim | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/vim/settings/grep.vim b/vim/settings/grep.vim index 08c7fd0971..f400d84ebc 100644 --- a/vim/settings/grep.vim +++ b/vim/settings/grep.vim @@ -1,3 +1,4 @@ -"Use the silver searcher for lightning fast Gsearch command -set grepprg=git\ grep +"Use RipGrep for lightning fast Gsearch command +set grepprg=rg\ --vimgrep\ --no-heading +set grepformat=%f:%l:%c:%m,%f:%l:%m let g:grep_cmd_opts = '--line-number' From f9519dc9f02fd8709bb63031acc8bb29e5162da1 Mon Sep 17 00:00:00 2001 From: Steven Barragan Date: Tue, 23 May 2017 15:15:04 -0700 Subject: [PATCH 3/3] Fallback to ag if rg is not present --- vim/settings/ctrlp.vim | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/vim/settings/ctrlp.vim b/vim/settings/ctrlp.vim index a6ff442fe4..5d762740ad 100644 --- a/vim/settings/ctrlp.vim +++ b/vim/settings/ctrlp.vim @@ -8,6 +8,12 @@ if executable('rg') " rg is fast enough that CtrlP doesn't need to cache let g:ctrlp_use_caching = 0 +elseif executable('ag') + " Use ag in CtrlP for listing files. Lightning fast and respects .gitignore + let g:ctrlp_user_command = 'ag %s --files-with-matches -g "" --ignore "\.git$\|\.hg$\|\.svn$"' + + " ag is fast enough that CtrlP doesn't need to cache + let g:ctrlp_use_caching = 0 else " Fall back to using git ls-files if Ag is not available let g:ctrlp_custom_ignore = '\.git$\|\.hg$\|\.svn$'