" You can find a list of commands here: https://jb.gg/h38q75 " Find more examples here: https://jb.gg/share-ideavimrc " Examples to map IDE actions to IdeaVim -- https://jb.gg/abva4t " Enable IdeaVim plugins https://jb.gg/ideavim-plugins "source ~/.vimrc """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Set Tabs to 4 characters set expandtab set tabstop=4 set shiftwidth=4 " Searches set hlsearch " highlight search occurrences set ignorecase " ignore case in search patterns set smartcase " no ignore case when pattern is uppercase set incsearch " show search results while typing set wrapscan " searches wrap around the end of the file " Common settings set number " Show current line number set relativenumber " Show relative line numbers set gdefault " substitute all occurrences in line set history=10000 " command line history set scrolloff=5 sidescrolloff=10 " Keep some line before and after the cursor visible set clipboard^=unnamed,unnamedplus,ideaput " Copy to and from system clipboard set nrfomats+=alpha,bin,octal,hex " Useful for auto incrementing """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Enabled plugins set ideajoin Plug 'easymotion/vim-easymotion' " j or J [2 characters] Plug 'preservim/nerdtree' " e Plug 'tpope/vim-surround' " ys or cs or ds [motion] Plug 'tpope/vim-commentary' " gc [motion] Plug 'machakann/vim-highlightedyank' Plug 'dbakker/vim-paragraph-motion' Plug 'chrisbra/matchit' Plug 'tpope/vim-repeat' " Repeat for Surround " Plug 'terryma/vim-multiple-cursors' " mc (selects), mx (skips), mp (previous) """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " To see a list of all available :actions -> :actionlist " Or select "IdeaVim: Track Action Ids" -> Copy the action id required " Keymaps let mapleader = " " " Don't use Ex mode, use Q for formatting map Q gq " Map d to start debug "map d (Debug) " Map \b to toggle breakpoint "map \b (ToggleLineBreakpoint) " Center the cursor when doing 1/2 page down and page up nnoremap zz nnoremap zz " Multiple Cursors map mc map mx map mp " Clear search highlighting nnoremap / :nohls " Find/Open file nmap of :action GotoFile nmap or :action RecentFiles " Find/Navigate to different parts of code nmap gf :action FindInPath nmap gr :action ShowUsages nmap gi :action GotoImplementation nmap gs :action GotoSuperMethod " Tabs nmap tn :action NextTab nmap tp :action PreviousTab " NerdTree nmap e :NERDTreeToggle " When in the tree use the below default keybindings " j, k - To go down and up " p - Go to the parent directory " P - Go the root directory " s - open file in vertical split " i - open in horizontal split " t - open in a new tab " o - Open the selected file or Expand the selected directory. " - Also collapse the same directory. " - Moves the cursor to the file. " go - Opens the file but keeps the cursor on the file tree " A - expand the file tree " x - close the file tree nmap :action ParameterInfo imap :action ParameterInfo nmap n :action GotoNextError map gh (ShowErrorDescription) " Code refactoring nmap ri :action Inline nmap rr :action RenameElement nmap rev :action IntroduceVariable vmap rev :action IntroduceVariable nmap rem :action ExtractMethod vmap rem :action ExtractMethod nmap rm :action Move nmap ro :action OptimizeImports nmap rG :action Generate nmap rf :action ReformatCode " Easy motion map j (easymotion-s) nmap gr :action Vcs.RollbackChangedLines