dots/Configs/jetbrains/.config/ideavim/ideavimrc
2025-04-25 12:26:47 -04:00

136 lines
No EOL
3.2 KiB
Text

" .ideavimrc is a configuration file for IdeaVim plugin. It uses
" the same commands as the original .vimrc configuration.
" You can find a list of commands here: https://jb.gg/h38q75
" Find more examples here: https://jb.gg/share-ideavimrc
" UI/UX
set scrolloff=15
set autoindent
set relativenumber
set showcmd
set showmode
set ideajoin
set startofline
" search
set hlsearch
set incsearch
set smartcase
let mapleader=" "
let g:mapleader=" "
" system clipboard
set clipboard+=unnamedplus
set ideaput
"" Plugins
" --- Enable IdeaVim plugins https://jb.gg/ideavim-plugins
" set sneak
set highlightedyank
" set exchange
set commentary
set matchit
set mini-ai
set vim-paragraph-motion
set peekaboo
set surround
" More text objects
set argtextobj
set functiontextobj
set textobj-indent
set which-key
set notimeout
let g:WhichKey_ShowVimActions = "true"
let g:WhichKey_SortOrder = "by_key_prefix_first"
set NERDTree
let g:NERDTreeMapActivateNode = "l"
let g:NERDTreeMapPreview = "<Tab>"
let g:NERDTreeMapJumpParent = "h"
nmap <leader>e :NERDTree<CR>
" surround
Plug "tpope/vim-surround"
" Mappings
" Choose if vim or ide will handle the mapping
" Allows to set text formatting in markdown
sethandler <C-b> n:vim i-v:ide
sethandler <C-i> n:vim i-v:ide
" Don't use Ex mode, use Q for formatting.
map Q gq
" Prevent movement
nmap <Space> <nop>
vmap <Space> <nop>
vmap p "_dP
let g:WhichKeyDesc_Nop = "<Space>"
"" find
let g:WhichKeyDesc_Find = "<leader>f Find"
nmap <leader>fF <Action>(SearchEverywhere)
let g:WhichKeyDesc_Find_Everywhere = "<leader>fF Everywhere"
nmap <leader>ff <Action>(GotoFile)
let g:WhichKeyDesc_Find_Files = "<leader>ff Files"
nmap <leader>fr <Action>(RecentFiles)
let g:WhichKeyDesc_Find_Recents = "<leader>fr Recent"
"" code jump
" nmap gd <Action>(GotoSuperMethod)
" nmap gD <Action>(GotoDeclaration)
" nmap gy <Action>(GotoTypeDeclaration)
" nmap gri <Action>(GotoImplementation)
" nmap grr <Action>(FindUsages)
" nmap <leader>lR <Action>(FindUsages)
"" editing
let g:WhichKeyDesc_Commentary = "<leader>gc Comment"
" nmap gco o<Action>(CommentByLineComment)<ESC>
" nmap gcO O<Action>(CommentByLineComment)<ESC>
" nmap <leader>lf <Action>(ReformatCode)
" vmap <leader>lf <Action>(ReformatCode)<ESC>
" nmap <leader>lr <Action>(RenameElement)
"" git operation
nmap <leader>gt <Action>(ActivateCommitToolWindow)
" nmap <leader>gC <Action>(Vcs.ShowTabbedFileHistory)
nmap <leader>gr <Action>(Vcs.RollbackChangedLines)
nmap <leader>gR <Action>(ChangesView.Revert)
" nmap <leader>gl <Action>(Annotate)
"" tabs
nmap H <Action>(PreviousTab)
nmap L <Action>(NextTab)
" nmap <leader>bc <Action>(CloseAllEditorsButActive)
" nmap <leader>bC <Action>(CloseAllEditors)
" nmap <leader>c <Action>(CloseContent)
"" panels
nmap <C-h> <C-w>h
nmap <C-l> <C-w>l
nmap <C-k> <C-w>k
nmap <C-j> <C-w>j
nmap <Bar> <Action>(SplitVertically)
nmap ° <Action>(SplitHorizontally)
"" debug
" nmap <leader>dc <Action>(Debug)
" nmap <leader>dq <Action>(Stop)
" nmap <leader>db <Action>(ToggleLineBreakpoint)
" nmap <leader>do <Action>(StepOver)
" nmap <leader>di <Action>(StepInto)
" nmap <leader>dO <Action>(StepOut)
" nmap <leader>dE <Action>(EvaluateExpression)
"" 快速关闭上次搜索结果高亮
nmap <ESC> :nohlsearch<CR>