发布时间:2025-05-15
浏览次数:0
点击上方“芋道源码”,选择“”
管她前浪,还是后浪?
能浪的浪,才是好浪!
每天 8:55 更新文章,每天掉亿点点头发...
源码精品专栏
来源:.com/2016/01/13/
在先前关于 IDEA 小技巧与插件的探讨中,我曾简要提及了插件的相关内容。现在,我将对此插件在日常编程中的应用中的一些实用小窍门进行详尽的总结。
针对那些对Vim插件感兴趣但对其操作尚不熟练的用户,这里提供了一份参考指南。当然,关于Vim的基本操作,如使用hjkl键移动光标以及几种常见的编辑模式等基础内容,此处将不予赘述。
为确保所述方法仅涵盖日常所需操作,这些技巧并非直接摘自现有文献,而是根据个人记忆逐一记录(不常使用的操作自然难以回忆)。
估计会有所遗漏,慢慢再补充。
1. 切换Vim模拟器状态
此插件支持通过指定快捷键快速地开启或关闭功能,并且在模式切换时能够自动完成这一操作,极大地方便了用户的使用。预设的快捷键组合为Ctrl+Alt+V,然而这一组合与“提取局部变量”这一常用功能冲突,因此建议用户进行重新设置。用户可以在相应的菜单中搜索“VIM”来找到并修改这一键位。
因为开启与关闭各需独立操作,所以必须对这两套系统进行配置。可以选择将两套系统共用一个按键来实现切换,然而,我倾向于采用不同的按键,以便更直观地识别当前所处的操作模式。此外,若在Vim的编辑状态中关闭了模拟器,那么在下次启动Vim时,系统会自动切换回编辑模式,这可能会导致操作上的混乱——因为关闭模拟器的初衷是为了执行大量代码,而重新启用模拟器则是为了执行命令模式下的操作。
因此,建议将Vim编辑器中的退出模式设定为与另一个Vim编辑器相同的按键,即进入Vim模拟器的快捷键。
例如,我使用的设定是:
如此一来,无论何时,只需连续两次按下Ctrl键和分号键,便能在Vim模拟器的常规操作模式下确保实现。
2. 参数
启动后在Vim模拟器下输入命令 :
在屏幕滚动过程中,能够确保光标上下方各保留5行代码预览,即当光标达到第5行时,屏幕将向上滚动,反之,当光标降至倒数第5行时,屏幕则向下滚动。
当代码编辑区相对狭窄时,如在进行单步跟踪调试,这种设计显得尤为实用。然而,这一便利性仅限于Vim模拟器处于开启状态的情况下。
3. 行号定位
普通模式下输入 行号G 或 :行号 都能快速定位到某一行。
前者在输入行号时,屏幕上并无任何提示信息出现;而后者在Vim命令输入框中,却能观察到输入的全过程。
题外之言:Text 2同样采用了行号定位功能,这或许是在延续Vim编辑器的使用习惯。
4. 进入修改
采用多种途径可以进入插入状态,直接选取恰当的方法进入插入模式,相较于先进入模式后再使用方向键调整光标位置,这种方式更为高效。其中,常见的方法包括:
5. 范围操作
某些常规操作指令之后,可以附加一些指定范围的指示,用以表明该操作将在整个指定区域内执行。此类指令中,常用的包括:
常用的范围指令有:
在执行基于/或?的搜索操作时,正则表达式默认是区分大小写的。若要实现不区分大小写的搜索效果,您可以在正则表达式的开头位置添加一个\c符号。
例如,/\cabc这一模式能够识别出ABC。此处的s命令亦遵循相同规则。
6. 选择文本
在Vim编辑器里,若要挑选文本内容,需切换至“可视模式”。这个模式的名称显得颇为古怪,其由来据说是源自Vim的前身Vi,因为在Vi中,选定的文本区域是看不见的。
在Vim中选择区域会高亮显示,因此称为“可视模式”。
激活对应状态,将光标定位后,您便能够选择文本内容。在此操作中,若需调整光标在选区两端的移动,请轻按“o”键。
在块选择模式下,若要向多行文本中添加内容,先选中这些行,接着按I键或A键,随后输入所需文本,完成输入后退出插入状态,此时输入的文本便会自动添加至每行的起始或末端。
7. 复制粘贴
在Vim编辑器中,复制和粘贴操作并非直接依赖系统剪贴板,而是通过Vim自带的“寄存器”功能实现。这些寄存器通过特定的字符标识,以便用户进行数据的管理和传输。
关于寄存器的详细信息,您可以通过访问任意一个网页进行查阅,在此处,我仅简要列举了一些实用的操作方法。
请注意,在vim编辑器中intellij idea设置中文,双引号(”)被用来执行选择寄存器的操作,因此文中提到的双引号均指的是在常规操作模式下按下双引号键所产生的内容。
执行y命令将文本存入寄存器之后,若需在别处替换先前的内容,需先通过v命令选取该内容,随后再使用p命令进行粘贴。
粘贴操作一旦进行,原先占用的寄存器便会自动被新粘贴的内容所取代。若需恢复先前复制的数据,则必须通过执行“0p”这一命令组合来完成复制任务。
在进入编辑状态后,您可以执行Ctrl+r 0的操作来复制内容,比如使用ciw0这样的命令组合,它可以将粘贴的内容替换掉光标位置的一个单词,并且使您保持在编辑状态中。
在此处,无论是“+”还是“*”符号,均指示着系统剪贴板的功能,二者可以相互替换,您可以根据个人习惯选择任意一个来使用。
使用“*”命令可以替换字符串内部的文本,而“ci”命令则能将系统剪贴板中的内容复制到文本内部。
寄存器1到9分别保存了前九次删除的大段文本信息,每当执行一次超过一行的删除操作,这九个寄存器中的内容都会相应地发生移动,而最新被删除的文本内容则会自动存入寄存器1中。
若删除内容超过一行,将对寄存器1至9造成影响;而行内删除的部分,则会被存储于寄存器负号(减号)中。
在执行q命令以录制宏操作时,若过程中不涉及跨行删除操作,您可以直接在宏脚本中运用这九个寄存器进行文本的临时存储。
在Vim编辑器里,复制操作和宏录制功能共用一个寄存器空间,因此我通常会将字母寄存器专用于宏录制。
在普通操作模式下,小写字母p用于将寄存器中的数据复制至当前指令指针所指的位置,而大写字母P则是在此位置之前进行复制操作。
e) 使用 :regs 命令可以列出当前所有寄存器的内容
8.一些插入模式下的常用快捷键
9. 退出插入模式
退出插入模式时,请按ESC键,不过该键位置较远。实际上,您也可以通过按下Ctrl+[组合键来结束插入模式。
当然,您也可以采用第1点提到的自定义快捷键Ctrl+;,然而这并非Vim的标准按键设置,长期使用可能会形成不良的操作习惯,因此并不推荐。
10. 重复操作
普通模式下按. (小数点)可重复上一次的修改操作
11. 跳转
参照前述第5点,你或许已经留意到,在设定特定区域时,通过执行跳转指令,可以指定一个从光标所在位置至跳转目标点的范围。
12 书签
在常规操作中intellij idea设置中文,轻触“m”键能够设定书签,按下键可以精准定位至指定书签,而按击键则能迅速跳转至书签所在行的起始位置(这对于录制宏操作尤为便捷)。
最为普遍的,无疑是mm、mn、mj、mk、ml这些便于操作的按键组合。
在当前版本的真正vim中,全局书签m并未得到有效应用。若需设定全局书签,您可以通过Idea自带的F11键加数字的方式来完成。
13 文本替换
在当前行内,可以通过正则表达式进行文本替换,以实现首次出现的匹配项的更替。
在本行中,应用正则表达式对文本进行替换,执行全局匹配操作。
在当前文件中,通过正则表达式:%s/原文本/目标文本/g对全文进行全局替换操作。
在可视操作界面中,一旦选中特定文本,便可通过执行“将指定文本替换为正则表达式所匹配内容”的命令,对所选区域内的文字进行批量替换处理。
在可视模式下,用户只需输入“s”命令,系统便会自动在冒号后添加“部分”。然而,请注意,有效操作区域是以行为单位划分的。
真正Vim中的 %V 标志在中不生效。
11 代码折叠
14 宏定义
在中定义宏比Idea自带的宏功能要轻量许多。
在普通操作状态下,按下“q”键便可以启动按键序列的录制,并存储至指定的寄存器(具体寄存器信息请参照前述第7条内容)。完成录制后,若需结束录制操作,请重新切换回普通模式,并再次按下“q”键。
录制宏时需留意,宏与复制粘贴功能共享同一组寄存器。因此,在录制过程中,应避免将正在使用的寄存器用于复制操作。之后,只需使用 @ 符号即可重新启动宏。
寄存器中的数据会自动保存,即便重启Idea后也能继续生效。然而,它并没有提供导出宏以便独立保存的功能。鉴于此,建议将用于保存宏的寄存器与用于复制粘贴的寄存器区分开来,避免同一个寄存器在记录宏和复制粘贴之间频繁切换使用。我通常将键盘的左侧区域用于存放那些频繁使用的宏命令,例如,我设置了一个宏,它可以将pom.xml文件中的版本信息提取出来,并将该位置替换为${}引用。
右手区域的按键主要用于储存若干临时宏指令。yuiop这五个寄存器则被保留,专用于复制和粘贴操作。除非录制的宏指令中包含删除大量代码的操作,否则寄存器1至9同样可以用于复制和粘贴功能。
执行一次宏后,可以用@@命令重复上一次执行的宏。
在Idea软件中录制宏时,若操作过程中激活了代码自动补全功能,那么在自动补全列表激活期间输入的字符将不会被记录下来。鉴于此,建议在“-> Code -> code”这一路径中将延迟时间设置在500毫秒以上,或者直接将其关闭。此外,在录制宏的过程中,应尽量避免触发代码自动补全功能。
录制若干个能够持续使用的宏时,启动录制后,建议首先使用0、^、T、F、$等指令将光标调整至行首、行尾或某个特定起始点,例如利用F指令跳转至字符串左侧的引号处,随后再使用f或/指令定位至操作所需的位置,这样设置后的宏便无需将光标置于特定字符上即可正常使用。
15. 一些常用组合技
16. 一些在目前版本已知没有实现的一些常用Vim功能
(如果对Vim不熟悉可以跳过这节)
哎,差点儿忽略了,在常规操作中,通过按下u键可以撤销前一个所做的修改,而这与在多数集成开发环境中按Ctrl+z的功能相似;同时,若想恢复刚才撤销的更改,只需按Ctrl+r键即可。
诚挚邀请您加入我的知识星球,共同深入研究架构知识,分享源码心得。您可以通过扫描下方的二维码进行加入,只需长按即可。
已在知识星球更新源码解析如下:
近期对《芋道 2.X 入门》教程进行了更新,该系列教程已发布超过20篇,内容涉及Redis、ES、数据库分片与分表、读写分离策略、权限管理、Dubbo框架以及Kafka消息队列等多个方面。
附赠了约三万行代码的示例,同时还包括了一个超过四万行代码的电子商务微服务项目。
如有侵权请联系删除!
Copyright © 2023 江苏优软数字科技有限公司 All Rights Reserved.正版sublime text、Codejock、IntelliJ IDEA、sketch、Mestrenova、DNAstar服务提供商
13262879759
微信二维码