Search Ruby Method Declarations in vim

pradyumna2905

Pradyumna Shembekar

Posted on January 21, 2019

Search Ruby Method Declarations in vim

While searching method declarations in vim can be tricky and you can use ctags, I found that using ag or the silver searcher yields great results.

I've been an active vim user for almost 3 years now and primarily develop Rails apps. I started using vim because I really liked the idea of having your entire development environment on one screen.

Run your server, tests, install gems, write code, without leaving or Alt + Tab'ing out.

As developers, we occasionally find the need to search for the method declaration. Here are a couple vimscript functions you can use along with <Leader> commands to efficiently search for the method declarations and increase productivity.

function! SearchForDeclarationCursor()
  let searchTerm = expand("<cword>")
  call SearchForDeclaration(searchTerm)
endfunction
Enter fullscreen mode Exit fullscreen mode

Here we just expand and capture the word where the cursor is.

function! SearchForDeclaration(term)
  let definition = 'def ' . a:term
  cexpr system('ag -w ' . shellescape(definition))
endfunction
Enter fullscreen mode Exit fullscreen mode

This function prepends the word def with the search term. This will give you a string like def some_method. system function executes any bash commands provided to it. The -w option matches the exact search term, thereby giving us accurate results.

And finally, we can map this to a <Leader> command.

map <Leader>cd :call SearchForDeclarationCursor()<CR>
Enter fullscreen mode Exit fullscreen mode

Hope this helps ya'll!

💖 💪 🙅 🚩
pradyumna2905
Pradyumna Shembekar

Posted on January 21, 2019

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related