IdeaVim插件使用记录
记录一些IdeaVim的使用命令。
如无特殊声明,均是在命令模式Command mode)下。
1、移动光标
移动光标可以使用方向箭头,但更“正宗”的做法是:
h
:控制光标向左移动j
:控制光标向下移动k
:控制光标向上移动l
:控制光标向右移动G
:移动至文件的最后一行gg
:移动至文件的第一行b
:移动至当前单词的开始字符e
:移动至当前单词的结束字符
2、删除成对标点间的内容
di{char}
:删除一对对称标点中间的所有内容。例如,di"
表示删除""
中的全部内容,di{
表示删除{}
中的全部内容,类似地,还可以有di<
、di(
、di<
、di'
等。
ci{char}
:如果希望删除之后进入编辑模式,则用ci{char}
。
注意:光标必须放在待删除的标点上或其内部的某个字符上。
3、进入插入模式的不同方式
i
(insert):在光标所在位置之前,进入插入模式I
:在本行第一个字符之前,进入插入模式a
:在光标之后(append),进入插入模式A
:在本行最后一个字符之后,进入插入模式o
:在本行之后新增一行,并进入插入模式O
:在本行之前新增一行,并进入插入模式s
:删除当前字符,并进入插入模式S
:删除当前行的所有字符,并进入插入模式
4、行内查找字符
f{char}
:从光标开始向右查找当前行内的某个字符char
并将光标移动至第一个char
处F{char}
:从光标开始向左查找当前行内的某个字符char
并将光标移动至第一个char
处t{char}
:从光标开始向右查找当前行内的某个字符char
并将光标移动至第一个char
的左边一个字符处T{char}
:从光标开始向左查找当前行内的某个字符char
并将光标移动至第一个char
的右边一个字符处;
:重复上一个f/F/t/T
命令,
:重复上一个f/F/t/T
命令的反命令(f
与F
互为反命令,t
与T
互为反命令)
5、复制粘贴
5.1基础操作
yy
:复制当前行p
:从光标后粘贴复制的内容P
:从光标前粘贴复制的内容{n}yy
:复制从当前行开始直至向下n行内容yw
:复制光标所在处的单词y$
:从当前位置复制至行尾y0
:从当前位置复制至行头v{方向键}
:选择字符V{方向键}
:按行选择字符
5.2高阶操作
有时我会想复制一个很长的字符串并到别处粘贴,例如,从如下sql中复制表名:
insert into AVeryVeryVeryLongTableName (field1) values (123)
首先需要将目标字符串选中才行。
采用基础操作时,可以将光标移动至字符A
处,然后按一下v
,再控制方向键选中整个AVeryVeryVeryLongTableName
——这样需要按许多次方向键,未免太低效了。
一种高效的做法是,利用vim中的word的概念。
简而言之,vim中的word指仅由字母数字下划线组成的连续字符串。因此,将光标移动至AVeryVeryVeryLongTableName
的任一字符上,然后按vaw
就可以选中整个字符串了。
aw
的意思是“a word”,类似地还有iw
(“inner word”),它们的区别就在于前者会包含word前面或后面的空格,而后者只包含word本身。
注意:
vim文档已经指出,“word”要么指仅由字母数字下划线组成的连续字符串,要么指代其他的非空字符(non-blank characters)组成的字符串,这取决于当前光标所指的字符是什么。
举个例子,对于字符串abc_23&^()[]78ed_
而言:
- 如果光标放在
abc_23
的任一位置上,那么viw
将会选中abc_23
;类似地,如果光标放在78ed_
的任一位置上,那么viw
则会选中78ed_
。 - 如果光标放在
&^()[]
的任一位置上,那么viw
将会选中&^()[]
。
这个例子说明,如果word指代由字母数字下划线组成的字符串,那么其他种类的字符都是word的边界符;如果word指代由非空字符(字母数字下划线除外)组成的字符串,那么空字符以及字母数字下划线都是word的边界符。
6、全文查找与替换
本部分内容全部来自:https://harttle.land/2016/08/08/vim-search-in-file.html
6.1 常用查找
输入/
即可进入查找模式,输入想要查找的字符串,按下回车,即可跳转到(当前光标所在位置后的)第一个匹配的字符串处。再按n
则查找下一个匹配;按N
则查找上一个匹配。
如果想要从当前光标位置开始向上查询,则输入?
,然后输入字符并按回车。
上述查找方式默认是大小写敏感的,如果想要进行大小写不敏感查询,则在查找的字符串末尾输入\c
再按回车:
例如,/foo\c
会匹配foo
、Foo
、FOO
等字符串。
6.2 快速查找当前单词
将光标移至想要查找的单词上,然后按*
就可以快速查找下文中出现的单词。
这里说的「单词」,指的是5.2中说的第一种情况,即只由数字、字母及下划线组成的连续字符串。
这种方式只能匹配独立的单词,而不会匹配那些包含该单词的长字符串。例如,如果当前词为foo
,则不会匹配foobar
中的foo
——要想实现这种效果,则按g*
。
6.3 查找替换
:s
命令用于查找与替换,用法如下:
:{作用范围}s/{查找目标}/{替换后的内容}/{替换标志}
例如,:%s/foo/bar/g
表示在全局范围(%
)查找foo
并替换成bar
,要求所有的foo
均要替换(g
)。
6.3.1 作用范围
作用范围可以分为以下三类:
- 当前行
- 全文
- 部分区域
不指定作用范围时即为当前行:
:s/foo/bar/g
%
表示全文
:%s/foo/bar/g
可以通过行号来指定作用范围:
:5,12s/foo/bar/g
表示在5-12行进行查找替换。
:.,+5s/foo/bar/g
表示从当前行至后续的5行内进行查找替换。
6.3.2 替换标志
g
表示作用范围内的所有出现均被替换。
如果不指定标志符,则默认替换第一次出现。
IdeaVim插件使用记录相关推荐
- IdeaVim插件使用技巧
在 IDEA Intellij小技巧和插件 一文中简单介绍了一下IdeaVim插件.在这里详细总结一下这个插件在日常编程中的一些常用小技巧.供有兴趣使用这个插件,但对Vim还不十分熟悉的朋友参考. ...
- 关于IdeaVim插件 导致 复制按键不可用
IdeaVIm Using the Ctrl+D shortcut for Vim emulation alt+ctrl+s 然后plugins 搜索这个插件 unistall即可 . IdeaVi ...
- pdf.js插件使用记录,在线打开pdf
pdf.js插件使用记录,在线打开pdf 原文:pdf.js插件使用记录,在线打开pdf 天记录一个js库:pdf.js.主要是实现在线打开pdf功能.因为项目需求需要能在线查看pdf文档,所以就研究 ...
- slick轮播插件操作 记录
slick轮播插件操作 记录 插件说明文档 官方文档 https://kenwheeler.github.io/slick/ 中文文档 https://www.cnblogs.com/chalkbox ...
- idea IdeaVim 插件搜索中文字符会乱码
IdeaVim 插件搜索中文字符会乱码 Editor -> Font -> Fallback Font 修改为支持中文字体即可 在Terminal 插入后怎么退出来 ctrl-e / al ...
- vim常用配置及ideavim插件静音
更多详细内容见文章:http://www.shanxing.top/?p=188http://www.shanxing.top/?p=188 "提示音静音 set noerrorbells ...
- Android黄油刀插件使用记录
之前一直使用的findViewById,感觉写业务的时候逻辑比较清晰一点,时间久了其实非常烦,低版本的AS还要强转view的类型,后来想把find方法放到base类里面避免繁琐的强转,但是流程其实还是 ...
- vue3TS+Jsplumb+vuedraggable拖拽插件使用记录
安装拖拽插件 vue3需下载-@next此版本,否则会出现错误 npm i -S vuedraggable@next npm install sortablejs --save //拖拽组件依赖sor ...
- bootstrap File Input 多文件上传插件使用记录(二)删除原文件
在上一篇文章中,主要介绍了file input插件的初始化和多文件同步上传到服务器的相关配置等.这篇主要介绍file input插件的编辑等. 使用场景: 在后台管理框架中,一条数据中包含不固定的多张 ...
最新文章
- Oracle删除window服务
- Android日期对话框NumberPicker的用法教程
- cudnn下载_记录新电脑安装Ubuntu18.04,CUDA, cuDNN全过程
- springMVC分析-2
- 06-图1 列出连通集 (25 分)
- 一篇文章带你了解Cloud Native
- c语言dp算法,C++动态规划dp算法题
- python 学生管理系统 文件版
- linux ora -03113,ORA-03113解决方法
- 网络面试100道(路由交换)
- jmail的使用说明
- 用html代码写一个表白语言,HTML写代码表白 – 爱心
- java instrument_JAVA Instrument技术实战以及在QTrace中的应用
- 移动端H5页面在ios设备上软键盘顶起页面后隐藏,页面不回弹的解决方案
- js跟php增加删除信息,JavaScript动态增加节点和删除节点
- filters过滤器的简单使用
- 蜂窝网通信平台建模说明
- 简历中使用STAR法则
- 用CSS实现一个抽奖转盘(附详细代码+思路)
- 我们期望的NFC手机方案
热门文章
- python怎样设置全局变量_Python教程之全局变量用法
- Expert C Programming 阅读笔记(~CH1)
- Python循环语句(while)(for)经典简单练习题
- Java常用的修饰符关键字
- 【人工智能的数学基础】圆周率(Ratio of Circumference to Diameter)的计算
- 华为新一代关键业务云存储FusionStorage加速关键业务云化
- 联想k27装debian
- 【电子取证篇】电子数据鉴定基本原则
- C# 状态机 Stateless 3.0
- android 暗刷 流量,暗刷流量,刷点击,手机访问的一些小见解