Skip to content

Instantly share code, notes, and snippets.

@Salanoid
Created November 14, 2024 12:33
Show Gist options
  • Select an option

  • Save Salanoid/3e00846a3ee9abb8786ffab8f3c305e3 to your computer and use it in GitHub Desktop.

Select an option

Save Salanoid/3e00846a3ee9abb8786ffab8f3c305e3 to your computer and use it in GitHub Desktop.
IdeaVim config
" vim settings
set scrolloff=5
set history=1000
set clipboard+=unnamedplus
" status bar
set showmode
" leader
map <space> <nop>
let mapleader="\<space>"
" find and replace
set hlsearch
set incsearch
set ignorecase
set smartcase
set gdefault
nmap <leader>nh :noh<CR>
" ideavim settings
set ideajoin
set ideamarks
set idearefactormode=normal
set ideastatusicon=gray
" better HJKL
map H ^
map L $
map J }
map K {
" better escape
imap jk <Esc>
" location
nmap <C-i> <Action>(Back)
nmap <C-o> <Action>(Forward)
" buffer (buffer < window < tab)
nmap <leader>xx <Action>(CloseContent)
" window
nmap <C-Tab> <Action>(PreviousTab)
nmap <Tab> <Action>(NextTab)
nmap <leader>1 <Action>(GoToTab1)
nmap <leader>2 <Action>(GoToTab2)
nmap <leader>3 <Action>(GoToTab3)
nmap <leader>4 <Action>(GoToTab4)
nmap <leader>5 <Action>(GoToTab5)
nmap <leader>6 <Action>(GoToTab6)
nmap <leader>7 <Action>(GoToTab7)
nmap <leader>8 <Action>(GoToTab8)
nmap <leader>9 <Action>(GoToTab9)
" menu
nmap <leader>mm <Action>(MainMenu)
nmap <leader>mc <Action>(CodeMenu)
nmap <leader>mf <Action>(FindMenuGroup)
" file
nmap <leader>rf <Action>(RecentFiles)
nmap <leader>sg <Action>(FindInPath)
nmap <leader>sr <Action>(ReplaceInPath)
" tag
nmap <leader>fu <Action>(FindUsages)
nmap <leader>fs <Action>(FileStructurePopup)
nmap <leader>su <Action>(ShowUsages)
nmap <leader>hl <Action>(HighlightUsagesInFile)
nmap <leader>qp <Action>(QuickPreview)
nmap <leader>qd <Action>(QuickDefinition)
nmap <leader>qD <Action>(QuickTypeDefinition)
" code
nmap <leader>fc <Action>(ReformatCode)
" zen
nmap <leader>z <Action>(ToggleZenMode)
" goto
nmap <leader>a <Action>(GotoAction)
nmap ga <Action>(GotoAction)
nmap gc <Action>(GotoClass)
nmap gf <Action>(GotoFile)
nmap gs <Action>(GotoSymbol)
nmap gt <Action>(GoToTest)
nmap gT <Action>(TextSearchAction)
nmap go <Action>(GotoSuperMethod)
nmap gd <Action>(GotoDeclaration)
nmap gD <Action>(GotoTypeDeclaration)
nmap gi <Action>(GotoImplementation)
nmap gI <Action>(QuickImplementations)
nmap gn <Action>(ShowNavBar)
" terminal
nmap <leader>tt <Action>(ActivateTerminalToolWindow)
nmap <leader>tc <Action>(Terminal.OpenInTerminal)
" todo
nmap <leader>to <Action>(ActivateTODOToolWindow)
" task
nmap <leader>ts <Action>(tasks.goto)
" idea join
nmap \\jl <Action>(EditorJoinLines)
" vcs
nmap <leader>v <Action>(VcsGroups)
" open IdeaVim settings
nmap \\v <Action>(VimActions)
" text-object (bundle plugin)
set vim-paragraph-motion
set textobj-indent
set textobj-entire
set argtextobj
" set relativenumber
set number relativenumber
" jump-motion (required idea plugin: IdeaVim-EasyMotion, AceJump)
set easymotion
" highlight yank (bundle plugin)
set highlightedyank
let g:highlightedyank_highlight_duration = "1000"
let g:highlightedyank_highlight_color = "rgba(57, 197, 187, 155)"
" surround (bundle plugin)
" usage: https://github.com/tpope/vim-surround
set surround
" exchange (bundle plugin)
" usage: https://github.com/tommcdo/vim-exchange
set exchange
" nerdtree (bundle plugin)
set NERDTree
" replace with register (bundle plugin)
" usage: https://github.com/vim-scripts/ReplaceWithRegister
set ReplaceWithRegister
" continuous shift
xnoremap < <gv
xnoremap > >gv
" alias
nmap <C-a> ggVG"+y
" required idea plugin: Fuzzier
nmap <leader>ff <Action>(com.mituuz.fuzzier.Fuzzier)
nmap <leader>fm <Action>(com.mituuz.fuzzier.FuzzyMover)
nmap <leader>gg <Action>(com.mituuz.fuzzier.FuzzierVCS)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment