Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >python中的ideavim有什么作用_IdeaVim插件施用技巧

python中的ideavim有什么作用_IdeaVim插件施用技巧

作者头像
全栈程序员站长
发布于 2022-11-10 02:24:19
发布于 2022-11-10 02:24:19
1.6K0
举报

大家好,又见面了,我是你们的朋友全栈君。

IdeaVim插件使用技巧在 IDEA Intellij小技巧和插件 一文中简单介绍了一下IdeaVim插件。在这里详细总结一下这个插件在日常编程中的一些常用小技巧。供有兴趣使用这个插件,但对Vim还不十分熟悉的朋友参考。当然基本的hjkl移动光标和几种常见模式等等基本概念就略过不提了。为了确保只包含常用操作,这里提到的技巧都没有从现成文档里抄,而是凭记忆列出(不常用自然就不记得了)。估计会有所遗漏,慢慢再补充。1. 切换Vim模拟器状态这个插件允许设置一个快捷键一键开启或关闭,在切换模式时会同时自动切换keymap,十分方便。默认键位是Ctrl+Alt+V,但这个键位覆盖了很常用的“抽取局部变量”功能,建议重设,在setting->keymap中查找VIM Emulator即可。由于开启和关闭状态分别使用两套keymap,因此两套都需要设定。可以把两套keymap下的都设为一样的键,也就是用同一个键切换。但个人建议设为不同的键,这样能清楚知道当前处于那种模式中。并且,如果在开启Vim的插入模式下关闭Vim模拟器,下次进入时仍然是插入模式,比较混乱(因为你关闭模拟器就是为了使用默认keymap输入大段代码,重新开启Vim模拟器就是为了使用普通模式下的命令)。因此建议把Vim keymap中的Exit Insert Mode设为与另一个keymap的Vim Emulator相同的键(也就是进入Vim模拟器的快捷键)。例如,我使用的设定是:Default keymap -> Vim Emulator : Ctrl+;     (用Ctrl+分号开启Vim模拟器)Vim keymap -> Vim Emulator : Ctrl+,    (用Ctrl+逗号关闭Vim模拟器)Vim keymap -> Vim Emulator : Ctrl+;    (用Ctrl+分号退出插入模式,进入普通模式)这样,在任何时候只要连按两下ctrl+分号,就能保证必定在Vim模拟器的普通模式中。2. ScrollOff 参数启动Intellij后在Vim模拟器下输入命令 :set so=5 可以令屏幕滚动时在光标上下方保留5行预览代码(也就是光标会在第5行触发向上滚动,或者在倒数第5行触发向下滚动)。在代码窗口比较狭小时(例如单步跟踪调试时)非常方便。可惜仅在Vim模拟器开启时有效。3. 行号定位普通模式下输入 行号G 或 :行号 都能快速定位到某一行。区别在于前者在输入行号时屏幕上没有任何提示,后者则在Vim命令输入框中可以看到输入过程。(题外话:Sublime Text 2也是用 :行号 来快速定位到某行,应该是沿用了Vim的习惯)4. 进入修改进入插入模式的方式有很多,直接选用合适的方式进入插入模式比进入后再用箭头键移动光标要好。常用的有:o – 在当前行下方插入新行并自动缩进O – 在当前行上方插入新行并自动缩进 (普通模式下的大写字母命令用 shift+字母键 输入,下同)i – 在当前字符左方开始插入字符a – 在当前字符右方开始插入字符I – 光标移动到行首并进入插入模式A – 光标移动到行尾并进入插入模式s – 删除光标所在字符并进入插入模式S – 删除光标所在行并进入插入模式c – 删除光标所在位置周围某个范围的文本并进入插入模式。关于范围请看第5点,常用的组合有:caw – 删除一个单词包括它后面的空格并开始插入; ciw – 删除一个单词并开始插入; ci” – 删除一个字符串内部文本并开始插入; c$ – 从光标位置删除到行尾并开始插入; ct字符 – 从光标位置删除本行某个字符之前(保留该字符)并开始插入。等等。C – 删除光标位置到行尾的内容并进入插入模式 (相当于c$)r – 修改光标所在字符,然后返回普通模式R – 进入覆盖模式5. 范围操作某些普通模式的动作命令后面可以追加一些表示范围的指令,表示该动作将作用在整个范围上。这类命令常用的有:d – 删除一定范围内的文本c – 删除一定范围内的文本并进入插入模式y – 将范围内的文本放入0号和”号注册栏v – 选择范围内的文本= – 自动缩进范围内的文本gU – 将范围内的字符转换为大写gu – 将范围内的字符转换为小写> – 将范围中的内容缩进一格< – 将范围中的内容取消缩进一格常用的范围指令有:空格 – 光标所在位置字符。(例如 gU空格 – 将光标位置字符转为大写)重复某些动作命令 – 光标所在行。 (例如dd删除一行,yy复制一行,cc删除一行文本并开始插入,>> 当前行缩进一格,==自动缩进当前行)$ – 从光标位置到行尾^ – 从光标位置到行首,不包含缩进空白0 – 从光标位置到行首,包含缩进空白gg – 从光标位置到文件开头G – 从光标位置到文件结尾% – 从光标位置到另一边匹配的括号f – 从光标位置到光标右边某个字符首次出现的位置,包括该字符F – 从光标位置到光标左边某个字符首次出现的位置,包括该字符t – 从光标位置到光标右边某个字符首次出现的位置,包括该字符F – 从光标位置到光标左边某个字符首次出现的位置,包括该字符/正则表达式 – 从光标位置到下一个匹配正则表达式的位置(跨行)?正则表达式 – 从光标位置到上一个匹配正则表达式的位置(跨行)aw – 一个单词加一个空格 (a可理解为“一个”,下同)iw – 一个单词 (i可理解为in,下同)a” – 一个字符串包括双引号i” – 一个字符串内部文本a< – 一组< >包含的文本,包括< >号本身同理类推: i0 命令组合将用粘贴内容替换光标处的一个单词,并停留在插入模式。b)在Windows下,寄存器 + 和 * 都代表系统剪贴板,可以互换使用,选一个顺手的即可。例如”+yy命令组合可将当前行复制到系统剪贴板。ci”*命令组合则将系统剪贴板的内容替换字符串的内部文本。c) 寄存器1至9记录之前九次的删除大段文本,每次超过一行的删除操作都会导致这9个寄存器的内容发生位移,最近删除的文本会存入寄存器1。但只有删除超过1行时才会影响寄存器1至9,行内的删除内容则会被存入寄存器-(减号)。如果用q命令录制宏时不涉及跨行删除,可以在宏中直接使用这9个寄存器来暂存文本。(在Vim中,复制内容与录制宏共享同一套寄存器,因此我习惯把字母寄存器留给宏使用)d) 普通模式下小写p把寄存器内容复制到当前位置之后,大写P把寄存器内容复制到当前位置之前。e) 使用 :regs 命令可以列出当前所有寄存器的内容8.  一些插入模式下的常用快捷键Ctrl+h – 删除光标左边字符Ctrl+w – 删除光标左边的单词Ctrl+y – 复制上方的一个字符Ctrl+e – 复制下方的一个字符Ctrl+r 0 – 插入前一次用y命令寄存的内容Ctrl+r * – 插入系统剪贴板的内容Ctrl+r – 插入指定寄存器的内容Ctrl+a – 插入前一次插入模式所键入的内容Ctrl+o – 执行一个普通模式下的命令然后返回插入模式。 例如 Ctrl+o A 相当于按 End键, Ctrl+o I相当于按Home键9. 退出插入模式退出插入模式可以用 ESC 键,但键位太远。其实也可以用 Ctrl+[ 键退出插入模式 。当然也可以用第1点自定义的Ctrl+;快捷键,但这不是标准vim按键,会养成不良习惯,不建议使用。10. 重复操作普通模式下按. (小数点)可重复上一次的修改操作& – 重复上一次的:s替换命令@@ – 重复上一次执行的宏11. 跳转Ctrl+] 跳转到当前标识符的定义位置 (相当于在当前光标位置的单词上按住ctrl用鼠标点击)Ctrl+o 回退一步 (go back)Ctrl+i 前进一步 (go forward)`. 跳转到之前修改位置“ 在前一次跳转位置与当前位置间切换行号G 或 :行号  跳转到某一行gg 跳转到文件开头G  跳转到文件末尾H  跳转到屏幕顶端(如果设置了set so=n,则跳转到第n行)L  跳转到屏幕底端(如果设置了set so=n,则跳转到倒数第n行)M  跳转到屏幕中间f 或 F 跳转到本行某个字符,小写f向右查找,大写F向左查找。用;或,在匹配间切换t 或 T 跳转到本行某个字符之前,小写t向右查找,大写T向左查找。用;或,在匹配间切换/正则表达式  跳转到下一个匹配。用n或N在匹配间切换。?正则表达式  跳转到上一个匹配。用n或N在匹配间切换。(结合前面第5点,你也许注意到了,在指定范围时,使用跳转命令将指定一个从光标位置到跳转目标的区域)12 书签在普通模式下按 m 即可定义书签,按 ` 则可跳转到某个书签的精确位置,按 ‘可跳转到某个书签所在行的行首(用来录制宏时比较有用)。最常用的自然是mm, mn, mj, mk, ml这几个顺手的键位。真正的vim中的全局书签 m 在目前IdeaVim版本中不生效。需要定义全局书签可以使用Idea原本的 F11 + 数字 方式13 文本替换使用 :s/正则表达式/替换文本/ 可在本行内替换首次出现的匹配使用 :s/正则表达式/替换文本/g 在本行内替换所有出现的匹配使用 :%s/正则表达式/替换文本/g 在当前文件内替换所有出现的匹配在可视模式下选中文本后,使用:’s/正则表达式/替换文本/g 命令可在选中区域中替换文本。其中’部分在可视模式下,按:冒号后自动加入,直接输入s命令即可。但有效区域只能以行为单位。真正Vim中的 \%V 标志在IdeaVim中不生效。11 代码折叠zo – 打开折叠zc – 关闭折叠14 宏定义在IdeaVim中定义宏比Idea自带的宏功能要轻量许多。按在普通模式下 q 即可开始把后续按键序列录制到指定寄存器中(寄存器参考前面第7条)。录制完毕进入普通模式再按q键即可停止录制。之后用 @ 即可重放。需要注意的是宏和复制粘贴共用一套寄存器,因此在录制宏时就注意不要把当前宏正在使用的寄存器用来复制了。寄存器内容是自动保存的,重启Idea仍然生效。但IdeaVim没有导出宏独立保存的功能。因此最好把用来保存宏的寄存器和用来复制粘贴的寄存器分开,不要同一个寄存器有时用来记录宏,有时用来复制粘贴。我的习惯是键盘左手区用来保存一些长期使用的宏(比如说我有一个宏专门用来把pom.xml中的版本号抽取到property区域,原来的位置则改用${property}引用)。右手区的hjklnm键用来保存一些临时宏。yuiop五个寄存器保留用来复制粘贴。如果录制的宏不涉及删除大段代码,寄存器1至9也可以用来进行复制粘贴。执行一次宏后,可以用@@命令重复上一次执行的宏。在Idea中录制宏时,如果触发了代码自动完成,在自动完成列表启动的状态输入的字符不会被记录。因此最好在Setting -> Code Completion -> Autopopup code completion中把延迟设为500ms以上或干脆关掉。在录制宏的过程中避免触发代码自动完成功能。录制一些长期有效的宏时,开始录制后,最好先用0,^,T, F, $等命令把光标对齐到行首行末或某个特定起始位置(比如说用 F” 跳转到字符串的左边引号),再用一个f或/指令跳转到操作位置,这样的宏就不用必须把光标放在某个特定字符才能使用了。15. 一些常用组合技全选: ggvG调换两个字符位置: xp复制一行: yyp调换两行位置: ddp插入模式下到行尾继续输入(相当于End键): Ctrl+o A 或 Ctrl+[ A插入模式下到行首继续输入(相当于Home键): Ctrl+o I 或 Ctrl+[ I到类定义位置(适用于正确缩进的public,protected类) : ?^p回车16. 一些在目前版本已知没有实现的一些常用Vim功能(如果对Vim不熟悉可以跳过这节)a)let命令 (没有let命令就无法导出/导入寄存器内容,也就是无法导入宏)b):g命令 (在文本处理中很有用的一个命令,在编程中倒是不那么常用)c)!命令 (执行shell命令)d)大部分正则表达式标记 (例如 \%V, \v 等等)e) 某些多键命令双击最后一个字符表示作用于当前行。例如在Vim中gUU可以把当前行转换为大写,在IdeaVim中无效,实现同样功能可以先用V命令选中当前行,再用gU转换为大写。f)关于窗口操作的大部分命令 (Ctrl+w系列命令, :split等)g)所有Vim脚本插件 (不过大部分可以用Idea自身的功能和插件来补偿)嗯,差点忘了,在普通模式下按u撤销上一个修改(相当于其他IDE的Ctrl+z),按Ctrl+r重做被撤销的修改。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/187057.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月1日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
说实话,Intellij IDEA 自带的 Vim 插件真心不错。。。
在 IDEA Intellij小技巧和插件 一文中简单介绍了一下IdeaVim插件。在这里详细总结一下这个插件在日常编程中的一些常用小技巧。
芋道源码
2020/06/17
14K0
IDEA + Vim,竟可以这么牛逼!!
本教程并不是单纯的vim操作介绍,更多的是与Intellj Idea进行配合。需要同时具备Intellj Idea和vim使用基础的同学学习。
终码一生
2022/04/15
3.2K0
IDEA +  Vim,竟可以这么牛逼!!
IDEA Intellij小技巧和插件
使用IDEA Intellij已有两年,在此罗列一下在实践中觉得能有效提升开发效率的一些小技巧和插件。  1. 重设移动键 方向键和Home/End键离基键太远,经常把手移过去其实很费时。所以建议重设到主键盘上。考虑到后面会提到的IdeaVim插件,所以最好使用类似Vim的方案。我个人的设定是:  Ctrl+H  ←  Ctrl+J  ↓  Ctrl+K  ↑  Ctrl+L  →  Ctrl+A  End (Vim中Shift+A是在行尾插入)  Ctrl+I  Home (Vim中Shift+I是在行首插入)  被冲掉的原本的快捷键可以设到Alt上(最常用的Ctrl+A全选和Ctrl+J Live Template)。当然你也可以把移动键设在Alt上,不过使用标准键盘时,左Ctrl可以用手掌来按(使用emacs的必备技能),非常方便。所以我个人喜欢把常用操作设到Ctrl上。  2. 好用的Select Word at Caret快捷键 在IDEA的Keymap中有Select Word at Caret这个动作,字面意思是“选中光标所在的单词”,默认快捷键是Ctrl+W。但事实上,这个动作的实际操作是选中更上一层的语法结构。例如,如果你在一个字符串的一个单词中,按一下Ctrl+W,会选中光标所在单词。再按一下,会选中整个字符串的内容,不包括引号。再按一下,会选中包括引号的字符串。再按一下,会选中整个表达式(如果表达式含有括号,会逐层选中)。再按一下,会选中整个语句块。再按一下,会选中整个方法。再按一下,会选中整个类。  3. Ace Jump插件 可以说Ace Jump和IdeaVim这两个插件是我使用了Intellij后再也不想用eclipse的最主要原因。Ace Jump是一种从emacs上借鉴过来的快速光标跳转方式,操作方式是:你用某个快捷键进入Ace Jump模式后,再按任一个键,当前屏幕中所有该字符都被打上一个字母标记,你只要按这个字母,光标就会跳转到这个字符上。这种跳转方式非常实用,你根本不用管当前光标在什么位置,眼睛只需要盯着需要跳转到的位置,最多三四下按键就能准确把光标定位,开始编辑。按道理这种功能非常容易实现,但偏偏到目前为止我没有在eclipse上找到类似插件。  安装与使用:  在Intellij的Setting -> Plugins -> Browse repositories中查找acejump,可以找到两个插件,AceJump和emacsIDEAs。AceJump是最纯正的Ace Jump插件,功能单一,也比较稳定,但我个人感觉没有emacsIDEAs好用。两者最大的差异是,Ace Jump是先按键调出跳转标记,再通过不同功能键(Ctrl,Shift,Alt等)配合书签按键追加额外功能(例如从当前位置选中文本至书签位置)。而emacsIDEAs是使用不同的快捷键进入不同的功能模式(例如跳转到字符,跳转到单词,选中到标签等)同时调出书签标记,然后再按书签按钮实现跳转。感觉emacsIDEAs的方式比较符合我的思维习惯。  如果选择了AceJump插件,重启Intellij后即可使用,默认快捷键是Ctrl+;(分号)。但我习惯将它重设到Alt+K。下面是使用AceJump的效果 
bear_fish
2018/09/19
2.7K0
IDEA Intellij小技巧和插件
【总结】vim命令使用总结,该来的还是躲不掉啊晕
曾经我也天真的觉得如今很多软件都可以充当文本编辑器,像vim上手这么麻烦的可以替代
自学气象人
2023/06/20
7880
【总结】vim命令使用总结,该来的还是躲不掉啊晕
Linux学习笔记之vim操作指令大全
Vim是款强大的文本编辑器,但是众多指令需要学习,这次记录了指令大全方便以后翻阅。
Jetpropelledsnake21
2019/07/01
3.2K0
Linux学习笔记之vim操作指令大全
vim从安装到熟练,这篇文章就够了
一简单介绍一下 下载分享的文件 链接: https://pan.baidu.com/s/1t8yS9jzjewSiGiawBEKcIg?pwd=y4wz 提取码: y4wz  压缩包里面有两个文件,一
sinnoo
2022/12/02
4.8K0
vim从安装到熟练,这篇文章就够了
vim配置即.vimrc文件的配置及vim操作技巧
1.下载vim(略)。让vi命令也可以使用vim的配置,需要修改 vi /etc/bashrc 增加如下一行内容
Twcat_tree
2022/11/30
4.3K0
Vim实用技巧
1.*进行查找,一是光标会跳到下一个匹配项上,二是所有出现这个词的地方都会被高亮显示出来。如果没有高亮,运行:set hls
硬核项目经理
2019/08/06
2.8K0
一篇就学会vim
学会一个软技能,总结一篇文章就够了。 剩下要做的就是不停的练习,不停的尝试,本文是在学习这个仓库之后的极简总结中。 主要作为一个备忘录使用。
六个周
2022/10/28
3.5K0
一篇就学会vim
Vim操作指令全解析
Vim是我们在Linux日常工作中不可或缺的文本编辑器。它强大的功能和高效的编辑方式可以极大提升工作效率。本文将全面解析Vim的各种操作指令,从基础操作到高级技巧。
云惑雨问
2025/04/03
4610
Vim操作指令全解析
IdeaVim 基本操作
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/10
2.4K0
IdeaVim 基本操作
vim的快捷键大全
vim中Nyy可以复制光标后的N行。有时我们不容易得出行数,这时可以用做标记的方法来制定复制范围:
王小雷
2019/05/26
2.2K0
学会这21条,你离Vim大神就不远了
导语:作者本人是 Vim 的重度使用者,就因为喜欢上这种双手不离键盘就可以操控一切的feel,Vim 可以让人对文本的操作更加精准、高效。对于未使用过 Vim 的朋友来说,可能还无法体会到这种感觉。由于使用 Vim 有一定的学习成本,只有做到非常熟练的程度才能感受到它带来的快捷。
AI科技大本营
2019/08/20
1.8K0
学会这21条,你离Vim大神就不远了
Mac之vim普通命令使用
稍微解释一下,当在normal模式下输入:qx后,你对文本的所有编辑动作将会被记录下来,再次输入q即退出了记录模
用户3621210
2020/09/08
6.4K1
日常记录(2)vim操作查询手册
退出vim 按键 功能 :wq 保存退出 :w filename 保存到指定文件 :q 退出,如果文件修改但没有保存,会提示无法退出 :q! 退出,不保存 进入插入模式 按键 功能 a 光标位置右边插入文字 i 光标位置当前处插入文字 o 光标位置下方开启新行 O 光标位置上方开启新行 I 光标所在行首插入文字 A 光标所在行尾插入文字 进入可视化模式 按键 功能 Ctrl+v 进入可视化编辑模式 其它 按键 功能 :set expandtab tab展开为空格 cc/S 清除整行,进入插入模式 d$
嘘、小点声
2021/12/07
1K0
Mac之vim普通命令使用「建议收藏」
高级一些的编辑器,都会包括宏功能,vim当然不能缺少了,在vim中使用宏是很方便的: :qx 開始记录宏。并将结果存入寄存器x q 退出记录模式 @x 播放记录在x寄存器中的宏命令 略微解释一下。当在normal模式下输入:qx后,你对文本的全部编辑动作将会被记录下来。再次输入q即退出了记录模 式,然后输入@x对刚才记录下来的命令进行反复。此命令后可跟数字。表示要反复多少次。比方@x20,能够反复20次。这个在文本的批处理中是很实用的。
全栈程序员站长
2022/07/10
2.3K0
日拱一卒,麻省理工YYDS,一节课让我学会vim
今天我们继续聊聊麻省理工的missing smester,消失的学期,讲解那些不会在课上提及的工具和技术。
TechFlow-承志
2022/09/21
5520
日拱一卒,麻省理工YYDS,一节课让我学会vim
vim使用-常用命令
vim里操作的是寄存器,不是系统剪贴板,默认我们使用d删除或者y复制的内容都是放到了“无名寄存器”。 比如交换字符小技巧:可以使用x将一个字符放到无名寄存器,然后p将无名寄存器里的内容进行粘贴,可以达到交换字符位置的一个目的。
茶半香初
2021/11/26
1.6K0
vim使用-常用命令
听说,撸代码,ide与vim更配哦vim折腾记vim常用命令
在选择编辑器上面,我是一个纠结的人,曾经年少的我执着地追求一款万能的编辑器,可以支持所有编辑语言,灵活可定制,可纯粹用键盘操作。符合这种条件的编辑器,非vim莫属。
章鱼喵
2018/08/02
6390
听说,撸代码,ide与vim更配哦vim折腾记vim常用命令
Sublime Text 3中文破解版
Sublime Text 3中文版是一款跨平台代码编辑器(Code Editor)软件。Sublime Text 3既可以编写代码还可以编辑文本,是程序员必不可少的工具,相比之前的版本Sublime Text有了很大的改进,支持代码补全、代码折叠,自定义皮肤等功能,Sublime Text跨 OS X、Linux 和 Windows 三大平台,拥有高效、没有干扰的界面,在编辑方面的多选、宏、代码片段等功能,以及很有特色的Minimap。
萌海无涯
2019/09/17
2.5K0
Sublime Text 3中文破解版
相关推荐
说实话,Intellij IDEA 自带的 Vim 插件真心不错。。。
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档