IDEA中如何使用Vim?看完本教程,让你用IDEA用到爽~(建议收藏)

news2024/9/23 11:23:05

目录

前言

Vim有什么特点?

为什么我要安利你在 IEAD 中使用Vim?

Vim

一、环境配置

二、Vim的使用

2.1、方向键 hjkl

2.2、​编辑复制&粘贴

2.3、选择代码块并删除

2.4、块级删除

2.5、各种插入模式

2.5.1、以下是gif演示

2.6、jump(解放鼠标~)


前言

Vim有什么特点?

        vim是一个高度可配置的文本编辑器,非常稳定,可以高效的创建任何文本、持久的、多级撤销树、支持数百种变成语言和格式、与许多工具集成;

为什么我要安利你在 IEAD 中使用Vim?

        1、首先,高效!!!让你体会到什么是 IDEA + Vim = 起飞 这种感觉~

        2、如果你使用过 Linux ,修改过服务器上的系统配置文件,就必不可免的使用 vim 编译器;如果不熟练,操作起来是很麻烦的;

        3、IDEA 中安装了 vim 插件后,就是一个互补的状态,各自发挥优势,大大提升编程效率~

Vim

        Vim 还是有一部分学习成本的,入门稍微有一点难,如果你能坚持看完本文,一旦入门以后就会对她爱不释手(像不像你们的女朋友 doge~);


一、环境配置

在 IDEA 中需要以下三个插件:

  • IeadVim
  • IdeaVim-EasyMotion
  • IdeaVimExtension

步骤如下:

当你的光标变成了小方块后,就说明你的 vim 插件安装好了~,如下图


二、Vim的使用

2.1、方向键 hjkl

这也是刚开始上手使用Vim最不习惯的操作,没有什么好说的,克服这一关,多练就行~

以下为视频演示:

vim方向键

2.2、复制&粘贴

程序员自嘲:我是CV工程师~; 复制粘贴还是要第一时间学会滴~

yy 复制当前行

p 粘贴

如下:

2.3、选择代码块并删除

使用键v k d

补充:也可以使用dd删除一行

gif步骤如下:

1. v 进入内容选择模式(选择代码块);

2. kkk 向上移动3行,并选中;

3. d 删除选中部分;

2.4、块级删除

 常用di* 和 da*,这里的*表示边界字符,可以是 双引号,小括号,大括号 等;

        比如你要删除双引号中的内容:"hello world";你就可以通过 di" 进行删除,如果不仅想删除双引号里的内容,还想把双引号一起删除,就可以使用 da" 来完成;删除完双引号里的内容想立即切换到 插入模式 也可以使用 ci" 来完成;

用 di" 删除 双引号 里的内容,删除后想立即进入 插入模式 可以用 ci"  如下:

 用 di( 删除 括号里的内容,删除后想立即进入 插入模式 可以用 ci(   如下:

用 di{ 删除 { 里的内容,删除后想立即进入 插入模式 可以用 ci{  如下:

2.5、各种插入模式

汇总如下:

  • a 在光标后,进入插入模式;
  • A 在本行结尾,进入插入模式;
  • i 在光标前,进入插入模式;
  • I 在本行开头,进入插入模式
  • o 在本行之后新增一行,并进入插入模式;
  • O 在本行之前新增一行,并进入插入模式;
  • s 删除当前字符,并进入插入模式;
  • S 删除当前行中的所有文本,并进入插入模式;

2.5.1、以下是gif演示

a 在光标后,进入插入模式,如下:

A 在本行结尾,进入插入模式,如下:

i 在光标前,进入插入模式,如下:

I 在本行开头,进入插入模式,如下:

o 在本行之后新增一行,并进入插入模式,如下:

O 在本行之前新增一行,并进入插入模式,如下:

2.6、jump(解放鼠标~)

通过vim真的是减少了很多鼠标操作,接下来再来看看一些更加便利的方案!

1、  f{word}  是用来查找 当前行,当前光标后,是否存在某个字符 {word}  若存在光标就会自动移动过去;

2、  $ 跳转到行尾,^ 跳转到行首;

3、  % 括号匹配跳转 () [] {}

4、  *跳转到i上一个字符定位处;

5、  [n]h/j/k/l  数字加上方向键 代表重复运行多少次;

  • 例如 10h 向左移动10个字符,3j 向下移动三行;

6、  G移动到最后一行,gg移动到第一行;

7、  H 移动到当前页的第一行,M 移动到编辑器的中部,L 移动到当前页的最后一行;

8、  [n]w 移动到后面的 第[n]个单词 的开始位置;

  • e 移动到下一个单词末尾
  • b 移动到上一个单词的开头


三、Action配置

IDEA中很多操作都可以抽象为一个Action,如下:

  • Rename File 文件重命名;
  • RenameElement 重命名变量 或者 类名;
  • GotoImplementation 去接口实现;
  • 复制Class引用 CopyReference;
  • ......

例如,Vim中可以通过插入命令模式直接调用action,如下,调用 RenameElement 重命名:


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/98621.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

毕业设计 stm32智能电子秤系统 - 物联网 嵌入式 单片机

文章目录0 前言1 简介2 主要器件3 实现效果4 设计原理4.1 STM32F103C8T64.2 HX711压力传感器5 部分核心代码6 最后0 前言 🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求&…

【OpenCV】Ubuntu配置OpenCV环境

1.从官网下载opencv包拷贝到虚拟机Ubuntu中, 虚拟机与主机传输文件可以采用 vmware tool、共享文件夹或者远程连接工具 2.解压得到对应版本号文件夹,我的是opencv-3.4.2 3.修改文件权限chmod -R 777 opencv-3.4.2 从win10进入Ubuntu中的文件压缩包解…

2022年云南省—信息安全管理与评估赛项竞赛规程

2022年云南省职业院校技能大赛 信息安全管理与评估赛项竞赛规程 一、赛项名称 赛项编号:No.11 赛项名称:信息安全管理与评估 英语翻译:Information Security Management and Evaluation 赛项组别:高职组 赛项归属产业&a…

本周大新闻|John Carmack从Meta离职,OPPO发布双目AR一体机仅38g

本周大新闻,AR方面,微软已向客户承诺新款HoloLens;NASA成立Joint AR项目,计划在宇航服头盔中加入AR功能;OPPO Air Glass 2发布,双目光波导仅38g;Rokid开设全球首家品牌旗舰店;谷歌为…

【数据结构】二叉树的节点总个数、叶子节点个数、第K层节点个数、二叉树的深度

目录 1.结点总个数 1.1 局部静态变量法 思维 代码 不足之处 2.传指针法 程序代码 3.递归法 思想 程序代码 详细过程 2.叶子节点个数 思想 程序代码 3.第K层节点个数 思想 程序代码 4.二叉树深度 思想 程序代码 求二叉树节点总个数、叶子节点个数、第k层节点…

汀丶的创作纪念日

机缘 csdn的博龄5年了,但实际创作时间只有两年;第一次接触csdn主要是用来查找代码bug并收藏一些有价值博客,但渐渐地自己也就习惯把自己学到的知识和技术分享出来,一起共建。 主要是关于机器学习、强化学习、数据挖掘、强化学习以…

ADI Blackfin DSP处理器-BF533的开发详解62:DSP控制ADXL345三轴加速度传感器-贪食蛇游戏(含源码)

硬件准备 ADSP-EDU-BF533:BF533开发板 AD-HP530ICE:ADI DSP仿真器 软件准备 Visual DSP软件 硬件链接 MEMS三轴加速度传感器 我做了一个三轴加速度传感器的子卡,插在这个板子上,然后写了一些有意思的应用程序。 代码实现功能…

Bootstrap5 侧边栏导航(Offcanvas)

Bootstrap5 侧边栏侧边栏类似于模态框,在移动端设备中比较常用。 创建滑动导航 我们可以通过 JavaScript 来设置是否在 .offcanvas 类后面添加 .show 类,从而控制侧边栏的显示与隐藏: .offcanvas 隐藏内容 (默认).offcanvas.show 显示内容…

JVM之native关键字与PC寄存器

native关键字: native关键字主要用于修饰方法: 被native关键字修饰的方法叫做本地方法,一个native方法就是一个Java调用非Java代码的接口,该方法的实现由非Java语言实现,而是使用C或C等其他编程语言实现 native方法…

Compose 和 Android 传统View 互相调用

1. 前言 Compose 具有超强的兼容性,兼容现有的所有代码,Compose 能够与现有 View 体系并存,可实现渐进式替换。这就很有意义了,我们可以在现有项目中一小块一小块逐步地替换Compose,或者在旧项目中实现新的需求的时候…

设计模式之外观模式

Facade design pattern 外观模式的概念、外观模式的结构、外观模式的优缺点、外观模式的使用场景、外观模式的实现示例、外观模式的源码分析 1、外观模式的概念 外观模式,为多个复杂的子系统提供一个统一的接口,使得这些子系统更加容易被访问。在现有的…

【AI with ML】第 11 章 :对序列模型使用卷积和递归方法

🔎大家好,我是Sonhhxg_柒,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎 📝个人主页-Sonhhxg_柒的博客_CSDN博客 📃 🎁欢迎各位→点赞…

SAP Gateway Foundation 里的 batch 操作

SAP Gateway Foundation (SAP_GWFND) 是一个在 SAP NetWeaver 中可用的软件组件。 SAP Gateway Foundation 提供开发和生成工具来为各种客户端开发工具创建 OData 服务。 简而言之,它在应用程序或 SAP Business Suite 数据与目标客户、平台和编程框架之间建立连接。…

核心面试题:MVCC、间隙锁、Undo Log链、表级锁、行级锁、页级锁、共享锁、排它锁、记录锁等等

文章很长,而且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录 博客园版 为您奉上珍贵的学习资源 : 免费赠送 :《尼恩Java面试宝典》 持续更新 史上最全 面试必备 2000页 面试必备 大厂必备 涨薪必备 免费赠送 经典…

网页初学者,如何使用VS2005搭建编程环境(JavaScript及ASP调试)

一直想学一下网页编程,但是感觉要学的东西太多了。也没有人指导。只好一个人摸索。 尝试了一些常用的网页编程技术。得出自己的总结,写在这里做一个备份。 本文写个自己,也作为和我一样的初学者一个参考。 【工具准备】 一、服务器端学什…

大数据的基础知识上(大数据的概念和生态、linux系统与命令、虚拟机导入、虚拟机额配置和联网)

目录一、数据分析的方向二、数据分析步骤1.明确分析目的和思路2.数据传输收集过程3.数据处理4.数据分析5.数据展现6.报告撰写三、数据是什么 大数据时代大数据的应用有哪些四、分布式和集群1.概念🎡(by the way)大数据生态系统🎡&…

【Three.js入门】一文带你入坑前端3Dの妙妙屋

个人简介 👀个人主页: 前端杂货铺 🙋‍♂️学习方向: 主攻前端方向,也会涉及到服务端 📃个人状态: 在校大学生一枚,已拿多个前端 offer(秋招) 🚀未…

消息队列 - RabbitMQ - 拓展

1. Message 状态 Message 在投递时,如果当前 Queue 没有 Message,且有 Consumer 已经订阅了这个 Queue,那么该 Message 会直接发送给 Consumer,不会经过 Queue 存储 Message 的这一步 当 Message 无法直接投递给 Consumer 时&am…

【大数据技术Hadoop+Spark】Spark RDD创建、操作及词频统计、倒排索引实战(超详细 附源码)

需要源码和数据集请点赞关注收藏后评论区留言私信~~~ 一、RDD的创建 Spark可以从Hadoop支持的任何存储源中加载数据去创建RDD,包括本地文件系统和HDFS等文件系统。我们通过Spark中的SparkContext对象调用textFile()方法加载数据创建RDD。 1、从文件系统加载数据创…

基于 Tensorflow 2.x 实现多层卷积神经网络,实践 MNIST 手写数字识别

一、MNIST 数据集 上篇文章中使用了Tensorflow 2.x 搭建了对层的 BP 神经网络,经过训练后发现准确率只有 96.8% 对于单环境的图片识别场景来说,还是有点偏低,本文使用多层的卷积代替BP网络中的隐藏层对模型进行优化。 下面是上篇文章地址&am…