高效编程:在IntelliJ IDEA中使用VIM
硬核干货分享,欢迎关注【Java补习课】成长的路上,我们一起前行 !
《高可用系列文章》 已收录在专栏,欢迎关注!
概述
Vim是一个功能强大、高度可定制的文本编辑器; 具体有多强大,我现在还没体会到(orz)。在日新月异的互联网时代中,vim 可以算是一个历史悠久的产物,从诞生到现在都没有别的编辑器能替代(感兴趣可了解一下 Emacs)。目前主流的VSCode、Intellij 全家桶和Chrome等,都支持/提供了 vim plugin。
学习材料
- # Vim 从入门到精通 :
Github8kVim 学习教程 - # 简明 VIM 练级攻略:
陈皓的VIM存活攻略 - # 游戏:VIM 大冒险: 通过
游戏的方式学习VIM
准备工作
vim 功能强大,相信计算机行业的各位大佬都清楚。但是在我们的工作中,没有vim一样能够进行工作,能够排查问题,能过编辑页面等。
学习 vim 是一个枯燥且难熬的过程,你需要2周时间的苦练,而不是3天热度。希望大家能够坚持下来,摆脱 CV工程师 的 title,起码也得多个h,j,k,l。
附一张超清 VIM 键位图 ,原图地址:http://cenalulu.github.io/linux/all-vim-cheatsheat/
IDEA 安装 VIM
IntelliJ IDEA -> Perferences -> Plugins
网络不好的情况下,可在官网直接下载 Plugin: https://plugins.jetbrains.com/plugin/164-ideavim
VIM 移动命令
初阶移动
h,j,k,l: 左,下,上,右 移动0,^,$:行首,行首字母,行尾gg,G,50G:文件头,文件尾,跳转到指定行
演示操作:
h-> j->k->l->0->^->$
进阶移动
w & W:w右移一个单词(标点分割),W右移一个字串(空格/换行分割)b & B:b左移一个单词(标点分割),B右移一个字串(空格/换行分割){ & }: 移动到段首,尾部 ,换行符分割Ctrl + u/d:上/下翻页
演示操作:
w -> b -> W -> B
实际开发中移动操作
比如,查看41行的 initialize() 方法的实现。
41G -> 2w -> ⌘+⌥+B
VIM 编辑命令
选中命令
v:可视化模式,通过移动命令,选中相应的内容。
插入命令
i & I:i在光标字符前插入,I在行首插入。a & A:a在光标字符后添加,A在行尾添加。
删除命令
d+motion:删除指令
常用操作:
v选中后删除ddd:删除当前行,并把删除的行存到剪贴板里db/w:删除上/下一个单词
操作演示:
v -> d -> dd -> db -> dw -> dd
修改命令
c [number] motion:更改类操作符的工作方式跟删除类是一致。
常用指令: cw 修改当前整个单词,删除当前单词后,编辑正确内容
- 除了上一节所说的
cw,我也可以键入c$,用来修改当前字符到行末的所有内容
撤销命令
u撤销最近的一个修改动作;U撤销当前行上的所有修改。ctrl + R:重放命令- 回退撤销操作
复制粘贴命令
y [number] motion: 复制命令,常用的有yy复制一行,yw复制下一个单词,y$复制到行尾。[number] p: 粘贴复制内容 , 可粘贴多次5p
VIM 命令模式
在普通模式下,输入:即可进入
s/executor/asyncExecutor/g:替换当前行所有executor为asyncExecutor:g/^\s*$/d: 删除空行以及只有空格的行%s/#.*//g: 删除#之后的字符
宏录制
qa把你的操作记录在寄存器a。- 于是
@a会replay被录制的宏。 @@是一个快捷键用来replay最新录制的宏。
示例
在一个只有一行且这一行只有“1”的文本中,键入如下命令:
qaYp<C-a>q→qa开始录制Yp复制行.<C-a>增加1.q停止录制.
@a→ 在1下面写下 2@@→ 在2 正面写下3现在做
100@@会创建新的100行,并把数据增加到 103.
点关注,不迷路
本文带大家手把手学习了一波 VIM 的入门教学,通过结合 IDEA,来让我们在开发过程中,不断熟悉 VIM的语发,拒绝 Ctrl + C/V 工程师,由现在做起~
好了各位,以上就是这篇文章的全部内容了,我后面会每周都更新几篇高质量的大厂面试和常用技术栈相关的文章。感谢大伙能看到这里,如果这个文章写得还不错, 求三连!!! 感谢各位的支持和认可,我们下篇文章见!
我是 九灵 ,有需要交流的童鞋可以关注公众号:Java 补习课! 如果本篇博客有任何错误,请批评指教,不胜感激 !
高效编程:在IntelliJ IDEA中使用VIM的更多相关文章
- 在IntelliJ IDEA中使用VIM
IdeaVim(下载)插件可以让你在IntelliJ IDEA中键盘敲的飞起. 安装 打开IDEA的设置,在Plugins里,你可以选择在线搜索Vim安装,当然如果不行,就可以选择单独下载后安装,以下 ...
- 教你在 IntelliJ IDEA 中使用 VIM!
Java技术栈 www.javastack.cn 优秀的Java技术公众号 IdeaVim(下载)插件可以让你在IntelliJ IDEA中键盘敲的飞起. 安装 打开IDEA的设置,在Plugins里 ...
- Python 高效编程技巧实战(2-1)如何在列表,字典, 集合中根据条件筛选数据
Python 高效编程技巧实战(2-1)如何在列表,字典, 集合中根据条件筛选数据 学习目标 1.学会使用 filter 借助 Lambda 表达式过滤列表.集合.元组中的元素: 2.学会使用列表解析 ...
- C# 高效编程笔记2
C# 高效编程笔记2 1.理解GetHashCode()的陷阱 (1)作用:作为基于散列集合定义键的散列值,如:HashSet<T>,Dictionary<K,V>容器等 (2 ...
- C# 高效编程笔记1
C# 高效编程笔记1 1.使用属性而不是可访问的数据成员 (1).NET Framework中的数据绑定类仅支持属性,而不支持共有数据成员 (2)属性相比数据成员更容易修改 2.用运行时常量(read ...
- Python高效编程的19个技巧
初识Python语言,觉得python满足了我上学时候对编程语言的所有要求.python语言的高效编程技巧让我们这些大学曾经苦逼学了四年c或者c++的人,兴奋的不行不行的,终于解脱了.高级语言,如果做 ...
- 架构师速成-如何高效编程 for java
引子 赵云大喝一声,挺枪骤马杀入重围,左冲右突,如入无人之境.那枪浑身上下,若舞梨花:遍体纷纷,如飘瑞雪. 赵云是所有历史人物中我最喜欢的一个,如果放到现代,他走了it的道路,一定可以成为一个编程高手 ...
- centos shell编程6一些工作中实践脚本 nagios监控脚本 自定义zabbix脚本 mysql备份脚本 zabbix错误日志 直接送给bc做计算 gzip innobackupex/Xtrabackup 第四十节课
centos shell编程6一些工作中实践脚本 nagios监控脚本 自定义zabbix脚本 mysql备份脚本 zabbix错误日志 直接送给bc做计算 gzip innobacku ...
- C语言高效编程的几招(绝对实用,绝对经典)
编写高效简洁的C语言代码,是许多软件工程师追求的目标.废话不说,走起! 第一招:以空间换时间 计算机程序中最大的矛盾是空间和时间的矛盾,那么,从这个角度出发逆向思维来考虑程序的效率问题 eg.字符串的 ...
随机推荐
- LVM磁盘管理实战案例
前言:这是关于centos/linux上的LVM磁盘上的扩容,缩减,磁盘类型等收集做的案例 至于ubuntu系统的磁盘扩容参考:https://www.jianshu.com/p/5dcfcec687 ...
- Flask(10)- 标准类视图
前言 前面文章讲解 Flask 路由的时候,都是将 URL 路径和一个视图函数关联 当 Flask 框架接收到请求后,会根据请求 URL,调用响应的视图函数进行处理 Flask 不仅提供了视图函数来处 ...
- 流媒体传输协议(rtp/rtcp/rtsp/rtmp/mms/hls)转
常用的流媒体协议主要有HTTP渐进下载和基于RTSP/RTP的实时流媒体协议两类.在流式传输的实现方案中,一般采用HTTP/TCP来传输控制信息,而用RTP/UDP来传输实时多媒体数据. 1 实时传输 ...
- varnish配置语言(2)
目录 1. Backend servers 2. 多个后端 3. Varnish 中的后端服务器和虚拟主机 4. 调度器 5. 健康检查 6. Hashing 7. 优雅模式 Grace mode 和 ...
- python使用笔记23--面向对象编程
1.面向对象编程概念 面向对象是包含面向过程 面向过程编程 买车: 1.4s看车,买车 2.上保险 保险公司 3.交税 地税局 4.交管所 上牌 面向对象编程 卖车处: 1.4s 2.保险 3.交税 ...
- [001] - JavaSE面试题(一):面向对象
第一期:Java面试 - 100题,梳理各大网站优秀面试题.大家可以跟着我一起来刷刷Java理论知识 [001] - JavaSE面试题(一):面向对象 第1问:面向对象和面向过程的区别? 面向过程 ...
- [刘阳Java]_BeanNameViewResolver视图解析器_第8讲
BeanNameViewResolver:这个视图解析器跟XmlViewResolver有点类似,也是通过把返回的逻辑视图名称去匹配定义好的视图bean对象.它要求视图bean对象都定义在Spring ...
- Nacos源码分析-Distro协议概览
温馨提示: 本文内容基于个人学习Nacos 2.0.1版本代码总结而来,因个人理解差异,不保证完全正确.如有理解错误之处欢迎各位拍砖指正,相互学习:转载请注明出处. 什么是Distro协议 今天来分析 ...
- Kettle——简介
Kettle是一款国外开源的ETL工具,纯java编写,可以在Window.Linux.Unix上运行,数据抽取高效稳定 Kettle 的主作者是 Matt ,他在 2003 年就开始了这个项目,在 ...
- python之数据驱动yaml操作
Mail163.yaml配置文件如下: login_data: url : 'https://mail.163.com/'case1: user : '' passwd : '' errorText ...