vi/vim常用按键
最近这段时间坚持了vim的使用,我在我的IDEA里面加了一个插件,可以支持vim。
然后不管是IDEA还是Vim都有自己的按键,而且都很好用,所以我就总结下在IDEA下的vim使用命令
当然,都是原生命令,我总结的是我自己经常用到的,我也是刚开始使用,还不太熟练。
记载在博客以后就不用去搜索去查了。
所以本文不是vim命令教学,而是介绍IDEA和VIM的混用。
本文关于Vim的几个模式就不介绍了,如果有读者想借鉴我的习惯,肯定是有vim基础的。
我所介绍的都是根据我实际情况所需要用的,不会介绍完全部。
1. 常用的插入命令

其实这几个都不是必须的,但也是要会用的,因为你大可以在正常情况下移动到想要编辑的地方,然后再打开VIM编辑器。
像在光标下插入新行,你用IDEA的shift+Enter也可以,所以我想说的是IDEA和VIM的东西你可以混着用,对自己效率有提升就可以了
2. 常用的定位命令
- 设置行号开启,不过在IDEA里面肯定是开有行号的,所以也不必用vim来控制
:set nu //取消行号
:set nonu
行的移动,关于行的移动还是会用到,一般像移动到第n行,或者视图选择时想做全选操作
- 移动到第一行
gg
- 移动到最后一行
G
- 移动到n行
nG
- 移动到行首
0 //其实你也可以用Home键 所以说我买的键盘至少是87键的,不是说非要什么都用vim的命令,只要能达到目的都ok
- 移动到行尾
$
单词的移动,单词的移动也用的比较多
- 移动到下一个单词的开头,比如 i love you,它会移动到i l y这几个字母上
w
- 移动到上一个单词的开头,比如 i love you,它会移动到y l i这几个字母上
b
- 移动到下一个单词的结尾,比如 i love you,它会移动到i e u这几个字母上
e
在一行代码里,可以定位到某个字母,比如

上面的代码里,光标在行首,我想定位到node那个单词,我可以按两下w,也可以输入2w,这两者的意思都是一样的
但是,还有一种方法,就是直接定位到某个字母上,那就是
f字母
//比如在上面的例子中,我想移动到n,所以就输入
fn

- 移动匹配括号
//你先把光标移动到括号上
%
//然后按住%就可以匹配到对应的另一半
3.常用的剪切粘贴复制命令
在这里你也是可以混着用,比如删除一行代码,你可以用IDEA的快捷键也可以用vim的dd,都可以,看你用哪个爽罢了
- 复制一行代码
yy
- 复制n行代码,在vim里有个比较有趣的设定是你想一个操作执行多少遍,可以在操作命令前加上数字,比如3yy,就是复制3行代码
nyy
同理,你也可以粘贴5次,命令就是5p
有时复制多行时,由于行数相差大,不容易算出来要复制多少行,这时就用视图来帮忙,比如下边的示例
先输入命令 v ,代表开启可以视模式选择
然后再输入 272G 代表定位到272行

然后再输入y,就可以快速的复制多行了。这可比你算出272-251+1快多了吧。
- 复制多行还有一个也比较有趣的用法,比如我要将5到13行的代码复制到58行下方
:, copy 58
//或者也可以复制单行,这样的写法前提都是光标不移动的,更方便
:5 copy - 复制多行(只复制) 其它命令可参考这种格式
:, y //复制24到36行而不做其它事 同理删除剪切可以是:24,36 d
- 删除命令
//删除一行,虽然看起来是删除,但其实说是剪切更准确,因为你输入p就会把它粘贴出来了
dd
//删除n行,同理也可以参考多行复制一样实现大范围删除
ndd
//删除第n行
:nd
4. 替换和查找
这里介绍一个命令:c命令,c的作用可以理解为:删除->剪切->进入插入模式
所以我经常用到c命令的组合是 cw 或者 ce,顾名思义,就是删除了一个单词然后准备写一个新的单词,比如

这里我想把node换成别的,输入cw

这样就进入插入模式,就可以输入新的单词了

还有一种情况是,当一串字符串,你想修改中间部分时,cw行不通,这时可以利用前面学的f命令来组合,比如

我已经移动到l字母,如果我输入cw,它会直接把loveyou都删掉,而我只是想改掉love这个单词,可以输入cfe

这时就会把love删除并进入插入模式了。从这里可以看出vim的命令组合真的很强大,想要熟练就要多使用。
- 查找命令 ,你可以用IDEA的查找,也可以用vim的查找,都随便的
/查找内容
//然后输入n就代表跳转到下一个匹配的内容,输入N跳转到上一个匹配的内容 - 替换
:{作用范围}s/{目标}/{替换}/{替换标志}
//例如:%s/love/hate/g会在全局范围(%)查找love并替换为hate,所有出现都会被替换(g)。作用范围分为 当前行 , 全文 , 选区 三个范围
当前行
:s/love/hate/g 全文
:%s/ove/hate/g 选区
在Visual模式下选择好区域后,输入 : ,vim就会自动补全为 :'<,'>
:'<,>'s/love/hate/g也可以指定行范围,比如4到80行
:,80s/love/hate/g
或者在当前行以及接下来的5行
:.,+5s/love/hate/g
甚至能根据需求寻找解决方案,比如我写markdown时需要给选择题的选项后面都加上两个空格以便换行
//光标在A选项的行
:.,+3s/$/空格空格
//上面的$代表末尾,然后后一个/的内容代表插入的内容
//由此可以得知,将$换成^就是在开头插入内容了不过说实话,一般用得多的是 当前行 全文 指定行范围 这三种,因为这三种已经可以满足其余几种方式了
至于命令最后面的/g的意思是替换标志,g代表全局(global)其余替换标识
i表示大小写不敏感查找,I表示大小写敏感
c表示需要确认
当你替换标志包含c时,每匹配一次单词,都会弹出replace with 所更改的单词 (y/n/a/q/l/^E/^Y)?按下
y表示替换,n表示不替换,a表示替换所有,q表示退出查找模式,l表示替换当前位置并退出。^E与^Y是光标移动快捷键 所以你可以输入:4,80s/love/hate/gci
这句命令的意思是,在4到80行内,不分大小写的查找love这个单词,并每次找到后,让你输入确认命令以便于替不替换成hate这个单词
5. 其它一些用到的命令
- 撤销(undo)
u
- 防撤销,总之就是把撤销的东西再放回去(redo)
ctrl+r
- 列操作,列操作在IDEA中也有,不过区别是IDEA的列操作主要是操作相同单词的列,而vim的列操作是操作范围内的所有列,比如
IDEA的列操作,操作的是同一个部分

vim的列操作,是你选中的区域内都会被更改

所以两者用哪一个取决于你的需求了
//vim的列操作
.光标定位到你想要操作的地方。
.CTRL+v 进入Visual模式,选取操作范围
.SHIFT+i(I) 输入要插入的内容。
.ESC 按两次,会在你选中的操作范围内出现你插入的内容
- 打开历史文件
在idea里面的话,打开历史文件可以不用vim的功能。
但是我用gvim有时编辑了文件,想重新编辑,还得重新去找,用这个历史文件的功能就好多了ctrl+o
目前我常用的vim命令就是以上的命令,这只是vim的冰山一角,然而却能让我脱离鼠标好多了,
所以可见vim的强大,当然,vim很强大,IDEA也很强大,所以两者结合就更强大了。
我也正在坚持使用vim,掌握百分百的vim命令是不可能的,vim的使用方式实在是太多了,
但是仅仅是我上面写的那几点命令就已经够用好多了,我也将会不断的学习更高级的vim操作,
总之就是要变成一个vim党,冲鸭!鼠标什么的扔掉好吧哈哈哈哈
vi/vim常用按键的更多相关文章
- Linux(Ubuntu)常用命令(五)—— vi/vim常用操作
vi/vim常用命令 vim其实就是vi的升级版,vi里的所有命令vim里都可以用,一般使用来说几乎没什么差别. 注:本篇文章区分大小写! vi / vim三级模式的关系: 命令行模式 任何时候,不管 ...
- 想法子记忆Vi/Vim常用操作及指令
本笔记有特殊目录,点击开启: 专有目录 在Linux系统中编辑文本总是离不开一位老帮手--Vi.而因为其诞生的年代有些久远,有些操作在现在看来可能有点"反直觉". 于是我决定写这样 ...
- VI/VIM 常用命令
VI/VIM 常用命令=========== 整理自鸟哥的私房菜 ---------- - 移动光标 命令 | 描述----------------------- ...
- -Git Linux vi/vim 命令 按键 MD
目录 目录 Linux vi/vim 简介 vi/vim 的使用 命令模式 输入模式 底线命令模式 vi/vim 使用实例 使用 vi/vim 进入一般模式 按下 i 进入输入模式,开始编辑文字 按下 ...
- vi/vim 常用命令总结
目录 Linux vi/vim编辑 vim键盘图 vim的三种模式 命令模式.输入模式.输出模式 vim使用实例 vi/vim按键说明 第一部分:一般模式可用的光标移动.复制粘贴.搜索替换等 第二部分 ...
- Vim常用按键大全
Vim完全可以用键盘进行操作.本文将常用的按键归纳总结. 第一部分:一般模式可用的按钮,如光标移动.复制粘贴.查找替换等 移动光标的方法 h, j, k, l 光标向左,下,上,右移动 Ctrl + ...
- Vi/Vim常用命令(附快捷切换方法)
vi/vim有两种模式,正常(命令行)模式 和编辑模式,在命令行模式下,任何键盘输入都是命令,在编辑模式下,键盘输入的才是字符. 启动/关闭Vi/Vim 启动:vi 打开 Vi/Vim编辑器vi 文件 ...
- vi/vim常用操作
什么是vim? Vim是从 vi 发展出来的一个文本编辑器.代码补全.编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用,和Emacs并列成为类Unix系统用户最喜欢的文本编辑器. vim的 ...
- vi/vim常用命令总结
vim是vi的升级模式,完全兼容vi 解决vim打开中文乱码问题 编辑/etc/vim/vimrc配置文件,添加下面的内容: ''' set fileencodings=utf-8,ucs-bom,g ...
随机推荐
- InfluxDB+Grafana大数据监控系列之基础环境部署(一)
一.单节点环境部署 机器节点信息及 InfluxDB.Grafana 版本选择: 节点 Linux版本 部署服务 10.223.1.198 Centos 6.8 InfluxDB 1.7.7 10.2 ...
- Docker 跨主机网络 overlay(十六)
目录 一.跨主机网络概述 二.准备 overlay 环境 1.环境描述 2.创建 consul 3.修改 docker 配置文件 4.准备就绪 三.创建 overlay 网络 1.在 host1 中创 ...
- (转)华为 安卓手机在MAC系统下 ADB 识别
使用MACOS发现在Android开发环境完整的情况下,接入小米,SAMSUNG,HTC,ZTE等手机都可以自动识别,如果暂时不能识别,只需要在 adb_usb.ini 中设置之后也可以识别,并可以在 ...
- 《CNCF × Alibaba云原生技术公开课》知识点自测(一):第一堂“云原生”课
(单选)1.容器启动后,我会时常 SSH 进入到容器里然后写很多文件.请问这破坏了云原生理念了吗? A. 否 B. 是 (单选)2.云原生架构必须选型 Kubernetes 方案. A. 否 B ...
- vue-cli2.0项目的搭建
1.第一步:安装vue-cli 命令行输入cmd或按住shift鼠标右键打开powershell 输入命令 npm install --global vue-cli 按enter键 2.第二步:创建项 ...
- php csv 简单的导入
if($act == 'user_upload_do'){ global $db; $filename = $_FILES['file']['tmp_name']; if (empty ($filen ...
- 最新 草花互动java校招面经(含整理过的面试题大全)
从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.草花互动等10家互联网公司的校招Offer,因为某些自身原因最终选择了草花互动.6.7月主要是做系统复习.项目复盘.Leet ...
- Redis 常用命令学四:有序集合类型命令
1.增加元素,修改存在元素的分数 127.0.0.1:6379> zadd score 99 a 88 b 66 c (integer) 3 127.0.0.1:6379> ZADD sc ...
- Linux下的静态库与动态库的生成与调用
静态库与动态库 静态函数库 这类库的名字一般是libxxx.a,xxx为库的名字.利用静态函数库编译成的文件比较大,因为整个函数库的所有数据都会被整合进目标代码中,他的优点就显而易见了,即编译后的执行 ...
- WUSOJ 1293: Fibonacci数列(Java)
题目: