Skip to content

Instantly share code, notes, and snippets.

@Stef16Robbe
Created June 3, 2026 11:04
Show Gist options
  • Select an option

  • Save Stef16Robbe/4d017ab1513fbb3cc6f66e3c492c8b39 to your computer and use it in GitHub Desktop.

Select an option

Save Stef16Robbe/4d017ab1513fbb3cc6f66e3c492c8b39 to your computer and use it in GitHub Desktop.
helix-ish keybindings for ideavim
" .ideavimrc - Helix-Optimized Environment for JetBrains Editors
" Maintained with standard IdeaVim action syntax for modern IntelliJ versions
"" ========================================================
"" 1. Base Editor Settings
"" ========================================================
set scrolloff=10
set history=1000
"set number relativenumber
set showmode
set showcmd
set smartcase
set incsearch
set hlsearch
set visualbell
set gdefault
" System Clipboard Integration
set clipboard+=unnamed
" Leader Key Definition (Helix Space Menu)
let mapleader="\<space>"
"" ========================================================
"" 2. IdeaVim Native Enhancements
"" ========================================================
set ideajoin
set ideamarks
set idearefactormode=keep
set ideastatusicon=gray
"" ========================================================
"" 3. Emulated Vim Plugins
"" ========================================================
set commentary
set surround
set nerdtree
" Highlighting Extensions (Requires "IdeaVim-Quickscope" from Marketplace)
set highlightedyank
set quickscope
let g:qs_highlight_on_keys = ['f', 'F', 't', 'T']
" Structural Text Objects
set textobj-entire
set argtextobj
let g:argtextobj_pairs="[:],(:),<:>"
Plug 'michaeljsmith/vim-indent-object'
" Interactive Visual Popup Menu (Requires "Which-Key" from Marketplace)
# set which-key
# set notimeout
# let g:WhichKey_FontSize = 15
# let g:WhichKey_PrefixColor = "#a403fe"
# let g:WhichKey_CommandColor = "#a403fe"
# let g:WhichKey_PrefixStyle = "bold"
# let g:WhichKey_KeyStyle = "italic"
# let g:WhichKey_SortOrder = "by_key_prefix_first"
# let g:WhichKey_ShowTypedSequence = "false"
"" ========================================================
"" 4. Key Mappings (Helix Emulation)
"" ========================================================
" --- File & Tab Navigation ---
nmap gp <Action>(PreviousTab)
nmap gn <Action>(NextTab)
nmap ge G
vmap ge G
nmap gh gg
vmap gh gg
" --- Code Navigation & AST References ---
nmap gd <Action>(GotoDeclaration)
nmap gr <Action>(FindUsages)
nmap gi <Action>(GotoImplementation)
" --- Horizontal Line Navigation ---
nmap gl $
nmap gs ^
vmap gl $
vmap gs ^
" --- Time Travel (Undo/Redo) ---
nmap u u
nmap U <C-r>
" --- Search Clean Up ---
nmap <Esc> :noh<CR>
" --- Structural Editing & Comments ---
nmap <C-c> <Plug>CommentaryLine
vmap <C-c> <Plug>Commentary
" --- Helix-Style Space Menus ---
nmap <leader>k <Action>(QuickJavaDoc)
nmap <leader>r <Action>(RenameElement)
nmap <leader>f <Action>(SearchEverywhere)
nmap <leader>/ <Action>(FindInPath)
nmap <leader>a <Action>(ShowIntentionActions)
vmap <leader>a <Action>(ShowIntentionActions)
" --- Multi-Cursor & Symbols Selection ---
" Search Symbol in active file (Normal Mode)
nmap <leader>s <Action>(FileStructurePopup)
" TODO: this doesn't work, still interprets commands like c or d
" Filter patterns inside visual selection (Visual Mode)
vmap <leader>s <Action>(SelectAllOccurrences)
" --- Continuous Indentation (Helix Style) ---
" Keep text selected after shaking left/right with > and <
vnoremap > >gv
vnoremap < <gv
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment