前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >高效编程:在IntelliJ IDEA中使用VIM

高效编程:在IntelliJ IDEA中使用VIM

作者头像
九灵
发布2021-08-31 16:11:48
9270
发布2021-08-31 16:11:48
举报
文章被收录于专栏:JaycekonJaycekon

硬核干货分享,欢迎关注【Java补习课】成长的路上,我们一起前行 ! 《高可用系列文章》 已收录在专栏,欢迎关注!

概述

Vim是一个功能强大高度可定制的文本编辑器; 具体有多强大,我现在还没体会到(orz)。在日新月异的互联网时代中,vim 可以算是一个历史悠久的产物,从诞生到现在都没有别的编辑器能替代(感兴趣可了解一下 Emacs)。目前主流的VSCodeIntellij 全家桶Chrome等,都支持/提供了 vim plugin

学习材料

准备工作

vim 功能强大,相信计算机行业的各位大佬都清楚。但是在我们的工作中,没有vim一样能够进行工作,能够排查问题,能过编辑页面等。

学习 vim 是一个枯燥且难熬的过程,你需要2周时间的苦练,而不是3天热度。希望大家能够坚持下来,摆脱 CV工程师title,起码也得多个h,j,k,l

附一张超清 VIM 键位图 ,原图地址:http://cenalulu.github.io/linux/all-vim-cheatsheat/

image.png
image.png

IDEA 安装 VIM

IntelliJ IDEA -> Perferences -> Plugins

网络不好的情况下,可在官网直接下载 Pluginhttps://plugins.jetbrains.com/plugin/164-ideavim

image.png
image.png

VIM 移动命令

初阶移动

  • h, j,k,l: 左,下,上,右 移动
  • 0,^,$:行首,行首字母,行尾
  • gg,G,50G:文件头,文件尾,跳转到指定行

演示操作:

h-> j->k->l->0->^->$

move.gif
move.gif

进阶移动

  • w & Ww右移一个单词(标点分割), W右移一个字串(空格/换行分割)
  • b & Bb左移一个单词(标点分割), B右移一个字串(空格/换行分割)
  • { & }: 移动到段部 , 换行符分割
  • Ctrl + u/d/翻页

演示操作:

w -> b -> W -> B

move2.gif
move2.gif

实际开发中移动操作

比如,查看41行的 initialize() 方法的实现。

41G -> 2w -> ⌘+⌥+B

move3.gif
move3.gif

VIM 编辑命令

选中命令

  • v:可视化模式,通过 移动命令,选中相应的内容。
select.gif
select.gif

插入命令

  • i & Ii在光标字符前插入,I在行首插入。
  • a & Aa在光标字符后添加,A在行尾添加。

删除命令

  • d+motion :删除指令

常用操作:

  • v 选中后删除d
  • dd:删除当前行,并把删除的行存到剪贴板里
  • db/w:删除上/下一个单词

操作演示: v -> d -> dd -> db -> dw -> dd

delete.gif
delete.gif

修改命令

  • c [number] motion:更改类操作符的工作方式跟删除类是一致。

常用指令: cw 修改当前整个单词,删除当前单词后,编辑正确内容

update.gif
update.gif
  • 除了上一节所说的cw,我也可以键入c$,用来修改当前字符到行末的所有内容

撤销命令

  • u 撤销最近的一个修改动作;
  • U 撤销当前行上的所有修改。
  • ctrl + R重放命令- 回退撤销操作

复制粘贴命令

  • y [number] motion : 复制命令,常用的有 yy 复制一行,yw 复制下一个单词,y$ 复制到行尾。
  • [number] p : 粘贴复制内容 , 可粘贴多次 5p
copy.gif
copy.gif

VIM 命令模式

在普通模式下,输入:即可进入

  • s/executor/asyncExecutor/g :替换当前行所有 executorasyncExecutor
  • :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.
qa.gif
qa.gif

点关注,不迷路

本文带大家手把手学习了一波 VIM 的入门教学,通过结合 IDEA,来让我们在开发过程中,不断熟悉 VIM的语发,拒绝 Ctrl + C/V 工程师,由现在做起~

好了各位,以上就是这篇文章的全部内容了,我后面会每周都更新几篇高质量的大厂面试和常用技术栈相关的文章。感谢大伙能看到这里,如果这个文章写得还不错, 求三连!!! 感谢各位的支持和认可,我们下篇文章见!

我是 九灵 ,有需要交流的童鞋可以关注公众号:Java 补习课! 如果本篇博客有任何错误,请批评指教,不胜感激 !

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-08-24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概述
    • 学习材料
      • 准备工作
      • IDEA 安装 VIM
      • VIM 移动命令
        • 初阶移动
          • 进阶移动
            • 实际开发中移动操作
            • VIM 编辑命令
              • 选中命令
                • 插入命令
                  • 删除命令
                    • 修改命令
                      • 撤销命令
                        • 复制粘贴命令
                        • VIM 命令模式
                          • 宏录制
                          • 点关注,不迷路
                          领券
                          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档