# IdeaVimSetting **Repository Path**: stileswang/idea-vim-setting ## Basic Information - **Project Name**: IdeaVimSetting - **Description**: idea vim 懒人包配置拿来即用。 配置了常用映射。 毕竟是模拟vim和原生还是有很大差别。vim用习惯后。部分ui操作很绊手。有些ui无法通过action来模拟快捷,所以还是需要鼠标。只是编码的话没有影响 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-13 - **Last Updated**: 2025-10-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # IdeaVimSetting #### 介绍 idea vim 懒人包配置拿来即用。 配置了常用映射。 毕竟是模拟vim和原生还是有很大差别。vim用习惯后。部分ui操作很绊手。有些ui无法通过action来模拟快捷,所以还是需要鼠标。只是编码的话没有影响 #### 配置 ```vimrc "=================================================== "= IdeaVim Plugins = "=================================================== " 目录树 set NERDTree " 环绕 set surround " 简单移动 set easymotion " 文本对象 set argtextobj " 函数对象 set functiontextobj " 缩进对象 set textobj-indent " 注释 set commentary " 寄存器 set peekaboo " 用寄存器的内容替换文本。 set ReplaceWithRegister "=================================================== "= IdeaVim Setting = "=================================================== "对选中的字符串,进行相同字符串多选 vmap (SelectNextOccurrence) "跳过当前选中的字符串 vmap (FindNext) " 跳转实现 nmap gi (GotoImplementation) " 跳转父 类/接口 nmap gs (GotoSuperMethod) " 跳转最后一次修改位置 nmap gj (JumpToLastChange) " 跳转下一个错误 nmap gen (GotoNextError) " 跳转上一个错误 nmap gep (GotoPreviousError) " 最近修改 nmap (RecentLocations) " 最近修改文件 nmap (RecentFiles) " 函数操作 " 函数环绕 vmap ms (SurroundWith) " 函数创建 nmap mg (Generate) " 函数提取 vmap me (ExtractMethod) "关闭标签 nmap q (CloseContent) " 关闭其他标签 nmap qa (CloseAllEditorsButActive) " Q 是“格式化选中文本”的命令(替换为gq避免误触),例如 gqip 会格式化当前段落。 " 在 IDE 中使用时,可能触发 IDE 的代码格式化功能(与具体语言支持相关)。 map Q gq "=================================================== "= Vim Setting = "=================================================== "将jk配置为ESC imap jk " 配置键位,推荐: "空格" ";" "\" "-" "," let mapleader=" " "忽略大小写 set ignorecase "如果包含大写,区分大小写 set smartcase " 行号显示 ----> 左侧显示绝对行号(当前行)其他行显示相对行号(便于 5j 这类跳转命令) set number "显示相对行号 set relativenumber " 滚动边界 ----> 保持光标距离窗口顶部/底部 30 行时自动滚动.阅读代码时上下文更连贯,不会让光标贴边 set scrolloff=30 "使用系统剪切板 set clipboard=unnamedplus "命令历史记录; set history=200 "快捷延迟 set timeoutlen=400 "移动 最右侧/最左侧 nmap L $ vmap L $ nmap H ^ vmap H ^ "标签快捷 "下一个标签 nmap gl gt "上一个标签 nmap gh gT " 向右拆分 nmap :vs " 向下拆分 nmap :sp "窗口快速移动 nmap h nmap j nmap k nmap l " ====================================================== " = Idea Leader Keymaps = " =============================)======================== "锁定/解锁标签 nmap tl (PinActiveEditorTab) " 重载vim配置 nmap vs (IdeaVim.ReloadVimRc.reload) " 打开vimrc文件 nmap ve :e ~/.ideavimrc " 全屏 nmap wf (ToggleZenMode) " maven 操作 " maven 依赖搜索(需要idea插件maven search) nmap ms (coderead.maven.search) " maven pom重载 nmap mr (ExternalSystem.ProjectRefreshAction) " git 操作 " 提交 nmap gk (CheckinProject) " 提交推送 nmap gps (Vcs.Push) " 拉取 nmap gpl (Vcs.UpdateProject) " project 工程操作 " 启动项目 nmap pr (Run) " 调试项目 nmap pd (Debug) " 停止项目 nmap ps (Stop) " 断点调试 " 添加/解除断点 nmap da (ToggleLineBreakpoint) " 添加/解除断点,并附加断点条件 nmap df (AddConditionalBreakpoint) " 忽略断点 nmap dm (XDebugger.MuteBreakpoints) " 恢复程序 nmap dr (Resume) " 步过 nmap dsr (StepOver) " 步入 nmap dsi (StepInto) " 步出 nmap dst (StepOut) " 重置帧 nmap dp (Debugger.PopFrame) "=================================================== "= Easymotion Plugins = "=================================================== " AceJump 的快捷键映射到 IdeaVim-EasyMotion 中 "智能判断忽略大小写 let g:EasyMotion_smartcase = 1 "使acejmp与easy motion快捷统一 (暂时失效) let g:EasyMotion_override_acejump = 0 "禁用easy motion默认快捷 (暂时失效) let g:EasyMotion_do_mapping=0 " 禁用快捷失效的 替代方案。(修复后删除此配置) map (easymotion-prefix) "全局模匹配搜索移动 nmap sf (easymotion-sn) vmap sf (easymotion-sn) "单词首字母移动 nmap w (easymotion-w) vmap w (easymotion-w) "=================================================== "= NERDTree KeyMap = "=================================================== " 在当前窗口打开NERDTree。 nmap n :NERDTree " 关闭NERDTree 窗口。 nmap nc :NERDTreeClose " 打开NERDTree 并定位到当前编辑的文件 nmap nf :NERDTreeFind