Vim,人类史上最好用的文本编辑器!从此以后你就是一个善良的极客!

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!

1998 年,Vim 5.0 中加入了语法高亮的功能。

。。。。。。

总之是,越来越强!最新的版本是 8.0,启动界面里会显示一句非常暖心的话——「Help poor children in Uganda」,翻译过来就是「请帮助乌干达的可怜孩童」。这让我想起来我最喜欢的一支乐队——Beyond 的一首歌《Amani》。

打开终端,键入「vim」,就可以进入启动界面了,如下图所示。

Vim 有很多聪明的设计,所以很多其他工具也支持 Vim 模式,比如说 Visual Studio Code。很牛掰的一点是,Vim 逃离了鼠标的“魔掌”,只通过键盘就可以肆意地操作文本。

键入 :help 就可以查看 Vim 的帮助文档,尽管文档是英文的,但这的确是最权威的 Vim 学习资料了,听我一句劝,耐着性子读一读吧!

键入 :q 可以退出帮助文档。当然了,如果英文读起来确实痛苦了些,我还为你准备了在线的中文翻译文档,看这里:

https://yianwillis.github.io/vimcdoc/doc/help.html

02、实操 Vim

俗话说,“光说不练假把戏。”咱们直接上手来体验一把。键入 vim xxx 命令。如下图所示。

随后敲回车键,就进入 xxx 文件的阅读模式了。如下图所示。

在阅读模式下,你需要尝试下面这些命令。

  • 上下左右移动:对应上下左右键

  • 按照词移动:w(下一个词),b(单词的第一个字母),e(单词的最后一个字母),不适合中文

  • 按照行移动:0(第一行),$(行尾),:+行数直接跳转到指定的行(此处的+意味着按下 : 后,再输入行数,比如 10)

  • 按照屏幕移动:H(屏幕顶部),M(屏幕中间),L(屏幕底部)

  • 翻页:不同的键盘有所不懂,比如说 Mac 的巧克力键盘,fn+↑ 键向上翻,fn+↓键向下翻(此处的+意味着组合键)

  • gg(移动到文件开头),G(移动到文件末尾)

  • /+关键词(此处的+意味着按下反斜杠后,再输入关键词)进行搜索,n/N 用于向下或者向上匹配

除此之外,阅读模式下,你还可以:

  • 键入 i 进入插入模式,此时会在窗口底部出现 -- INSERT -- 的字样。

在插入模式下按 esc 键退回到阅读模式。郑重其事的提醒:如果你不知道现在处于什么模式,就狂按 esc 键

除了 i 键可以进入插入模式,还有其他几个键可以进入插入模式,比如说 a 键可以在光标后插入;o 键可以在当前行后插入;0 键可以在当前行前插入。

  • 键入 dd 删除当前行,并把删除的行存到剪贴板里。

  • 键入 x 删除当前光标所在的一个字符。

  • 键入 p 可用于粘贴上一次复制的内容。

  • 键入 yy 可以复制当前行的内容。

  • 键入 u 可用于撤销当前操作。

  • 键入 :w 可以保存当前修改后的内容。

  • 键入 :q! 可以在不保存内容的情况下退出 Vim。

  • 键入 :wq 可以在保存内容的情况下退出 Vim。

**温馨提醒:**如果你是在插入模式,想要退出或者保存内容的话,一定要先按 esc 键退出到阅读模式。

好了,到此为止,你已经算是入门级的 Vim 用户了,真的,掌握了这些命令,其他编辑器能干的事,你都可以通过 Vim 完成了。

03、进阶

孙悟空成为花果山水帘洞的大王之后,感到了空前的寂寞,他想要进阶,于是撑了一叶扁舟拜师学艺去了。同样的,当我们熟练掌握了上述这些命令之后,也会感到空前的寂寞,因为 Vim 的强大绝不止于此。

来看一下,Vim 是怎么重复自己的。

  • 键入 . 可以重复上一次的命令。这意味着什么呢?意味着如果我们键入 dd 删除了一行内容,如果我们还想删除一行的话,不需要再按下两次 d 键了,只需要按下一次 . 键就可以了。

  • 键入 N+命令可以重复某个命令 N 次。(此处的+意味着按下次数后,再输入命令)。这意味着什么呢?意味着生产力的大幅度提升啊!

比如说,在阅读模式下,键入 3dd 可以一次性删除 3 行内容;键入 10p 可以粘贴 10 次文本。

来个带劲的哈。

通过 vim hello.txt 打开一个新的文本文件。然后键入 10+i+hello world+回车键+esc(此处的+意味着按下次数后,再键入 i 键进入插入模式,再敲下 hello world,再按下回车键换行,再按下 esc 键退出到阅读模式),奇妙的事情发生了,见下图。

想一下,键入 10. 会发生什么?相信我,试玩之后,你会“哇”的。

妙,实在是妙。除此之外,你还可以键入:

  • % 匹配括号来移动,包括 {[(,前提条件是你需要把光标移动到括号上。

  • * 匹配单词来向下一个移动。(中文就无法使用了)

  • # 匹配单词来向上一个移动。(同上)

记住光标的移动就可以脱离鼠标的束缚了。大多数命令都可以按照下面的方式来干:

光标开始的位置+命令+光标结束的位置

比如 0y$ 意味着:

  • 0,光标移动到行首

  • y,从这里开始复制

  • $,直到行尾

如果你想看到光标选中了哪些文本,可以先按下 v 键进入可视化视图,然后再操作光标,如下图所示。

最后

ActiveMQ消息中间件面试专题

  • 什么是ActiveMQ?
  • ActiveMQ服务器宕机怎么办?
  • 丢消息怎么办?
  • 持久化消息非常慢怎么办?
  • 消息的不均匀消费怎么办?
  • 死信队列怎么办?
  • ActiveMQ中的消息重发时间间隔和重发次数吗?

ActiveMQ消息中间件面试专题解析拓展:

BAT面试文档:ActiveMQ+redis+Spring+高并发多线程+JVM


redis面试专题及答案

  • 支持一致性哈希的客户端有哪些?
  • Redis与其他key-value存储有什么不同?
  • Redis的内存占用情况怎么样?
  • 都有哪些办法可以降低Redis的内存使用情况呢?
  • 查看Redis使用情况及状态信息用什么命令?
  • Redis的内存用完了会发生什么?
  • Redis是单线程的,如何提高多核CPU的利用率?

BAT面试文档:ActiveMQ+redis+Spring+高并发多线程+JVM


Spring面试专题及答案

  • 谈谈你对 Spring 的理解
  • Spring 有哪些优点?
  • Spring 中的设计模式
  • 怎样开启注解装配以及常用注解
  • 简单介绍下 Spring bean 的生命周期

Spring面试答案解析拓展

BAT面试文档:ActiveMQ+redis+Spring+高并发多线程+JVM


高并发多线程面试专题

  • 现在有线程 T1、T2 和 T3。你如何确保 T2 线程在 T1 之后执行,并且 T3 线程在 T2 之后执行?
  • Java 中新的 Lock 接口相对于同步代码块(synchronized block)有什么优势?如果让你实现一个高性能缓存,支持并发读取和单一写入,你如何保证数据完整性。
  • Java 中 wait 和 sleep 方法有什么区别?
  • 如何在 Java 中实现一个阻塞队列?
  • 如何在 Java 中编写代码解决生产者消费者问题?
  • 写一段死锁代码。你在 Java 中如何解决死锁?

高并发多线程面试解析与拓展

BAT面试文档:ActiveMQ+redis+Spring+高并发多线程+JVM


jvm面试专题与解析

  • JVM 由哪些部分组成?
  • JVM 内存划分?
  • Java 的内存模型?
  • 引用的分类?
  • GC什么时候开始?

JVM面试专题解析与拓展!

BAT面试文档:ActiveMQ+redis+Spring+高并发多线程+JVM

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!
中…(img-1CmYLNHd-1714770485837)]


jvm面试专题与解析

  • JVM 由哪些部分组成?
  • JVM 内存划分?
  • Java 的内存模型?
  • 引用的分类?
  • GC什么时候开始?

JVM面试专题解析与拓展!

[外链图片转存中…(img-bKtqxBrU-1714770485837)]

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值