Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?


Failed to load latest commit information.
Latest commit message
Commit time
December 13, 2022 03:26
March 17, 2020 10:52
December 13, 2022 03:26
December 13, 2021 00:43
October 29, 2022 00:51
March 6, 2020 00:34
March 6, 2020 00:34
March 6, 2020 00:34
March 6, 2020 00:34
March 6, 2020 00:34


β€” IDE madness without overhead for 40+ languages

Vim code inspection plugin for finding definitionsβš’ and references/usagesπŸ”¬.

Any-jump can be used with any language, but definitions search only available for supported languages. This is not a problem in general, so use any-jump freely on any code project.

Based on syntax rules for 40 languages and fast regexp engines like ripgrep and ag.

On screen: jumping through source code of Discourse project


  • nvim 0.4+ or vim 8.2
  • ripgrep 11.0.0+ or ag
  • some languages requires rg with PCRE2 support


via vim-plug:

Plug 'pechorin/any-jump.vim'


In normal or visual mode.

Just place you cursor on any variable/class/constant/name/symbol and press <leader>j or execute :AnyJump in normal mode. You can also use visual mode to select proper keyword (j also works in visual mode)

With :AnyJumpArg myKeyword command you can manually write what you want to be searched for.


  • keyword definitions: find files where keyword defined

  • keyword references/usages: find files where keyword used and referenced


Default global mappings for normal and visual modes:

" Normal mode: Jump to definition under cursor
nnoremap <leader>j :AnyJump<CR>

" Visual mode: jump to selected text in visual mode
xnoremap <leader>j :AnyJumpVisual<CR>

" Normal mode: open previous opened file (after jump)
nnoremap <leader>ab :AnyJumpBack<CR>

" Normal mode: open last closed search window again
nnoremap <leader>al :AnyJumpLastResults<CR>

Disabling default any-jump keybindings:

let g:any_jump_disable_default_keybindings = 1

Mappings for popup search window

o/<CR>     open
s          open in split
v          open in vsplit
t          open in new tab
p/<tab>    preview
q/x        exit
r          references
b          back to first result
T          group by file
a          load next N results
A          load all results
L          toggle results lists ui style


" Show line numbers in search rusults
let g:any_jump_list_numbers = 0

" Auto search references
let g:any_jump_references_enabled = 1

" Auto group results by filename
let g:any_jump_grouping_enabled = 0

" Amount of preview lines for each search result
let g:any_jump_preview_lines_count = 5

" Max search results, other results can be opened via [a]
let g:any_jump_max_search_results = 10

" Prefered search engine: rg or ag
let g:any_jump_search_prefered_engine = 'rg'

" Search results list styles:
" - 'filename_first'
" - 'filename_last'
let g:any_jump_results_ui_style = 'filename_first'

" Any-jump window size & position options
let g:any_jump_window_width_ratio  = 0.6
let g:any_jump_window_height_ratio = 0.6
let g:any_jump_window_top_offset   = 4

" Customize any-jump colors with extending default color scheme:
" let g:any_jump_colors = { "help": "Comment" }

" Or override all default colors
let g:any_jump_colors = {
      \"plain_text":         "Comment",
      \"preview":            "Comment",
      \"preview_keyword":    "Operator",
      \"heading_text":       "Function",
      \"heading_keyword":    "Identifier",
      \"group_text":         "Comment",
      \"group_name":         "Function",
      \"more_button":        "Operator",
      \"more_explain":       "Comment",
      \"result_line_number": "Comment",
      \"result_text":        "Statement",
      \"result_path":        "String",
      \"help":               "Comment"

" Disable default any-jump keybindings (default: 0)
let g:any_jump_disable_default_keybindings = 1

" Remove comments line from search results (default: 1)
let g:any_jump_remove_comments_from_results = 1

" Custom ignore files
" default is: ['*.tmp', '*.temp']
let g:any_jump_ignored_files = ['*.tmp', '*.temp']

" Search references only for current file type
" (default: false, so will find keyword in all filetypes)
let g:any_jump_references_only_for_current_filetype = 0

" Disable search engine ignore vcs untracked files
" (default: false, search engine will ignore vcs untracked files)
let g:any_jump_disable_vcs_ignore = 0

Theme configuration

There are default theme configuration based on standard Vim highlight groups, you can override any setting:

let g:any_jump_colors = {
      \"plain_text":         "Comment",
      \"preview":            "Comment",
      \"preview_keyword":    "Operator",
      \"heading_text":       "Function",
      \"heading_keyword":    "Identifier",
      \"group_text":         "Comment",
      \"group_name":         "Function",
      \"more_button":        "Operator",
      \"more_explain":       "Comment",
      \"result_line_number": "Comment",
      \"result_text":        "Statement",
      \"result_path":        "String",
      \"help":               "Comment"

Background settings

You can set non-theme background by set Pmenu hl group like this:

hi Pmenu guibg=#1b1b1b ctermbg=Black

Where are also PmenuSel, PmenuSbar, PmenuThumb groups for configuring.


open definitions and references/usages list


preview definition with p or tab


group results by file


search results with line numbers


vim 8.2 inside terminal


Supported languages

  • apex
  • c++
  • clojure
  • coffeescript
  • commonlisp
  • coq
  • crystal
  • csharp
  • dart
  • elisp
  • elixir
  • erlang
  • faust
  • fennel
  • fortran
  • fsharp
  • go
  • groovy
  • haskell
  • hcl
  • java
  • javascript
  • julia
  • kotlin
  • lua
  • matlab
  • nim
  • nix
  • objc
  • ocaml
  • pascal
  • perl
  • php
  • protobuf
  • python
  • r
  • racket
  • ruby
  • rust
  • scad
  • scala
  • scheme
  • scss
  • shell
  • sml
  • solidity
  • sql
  • swift
  • systemverilog
  • tcl
  • tex
  • typescript
  • vala
  • vhdl
  • zig

Original idea

Comes from dumb-jump.el emacs package


Lang generator

You need ruby to run generator script which actually download language map, parse, extract data and then generate vim representation:

cd generator
bundle exec rake update

Issues and contributions

Please open issue on any question / problem / feedback / idea.

Guaranteed contribution feedback: 3-5 days, but it's stable.

 /~~||/~\\  /---   ||   ||/~\ /~\ |~~\
 \__||   |\/       | \_/||   |   ||__/
         _/     \__|              |