我的 Vim 学习之路

查看 53|回复 2
作者:izzy27   
谨以此文缅怀 Vim 作者 Bram Moolenaar
我的 Vim 学习之路
初识
我想大约是 17 年初的时候,在我看了一篇介绍的 Vim 和 Emacs 文章后,我对 Vim 这种编辑模式产生了浓厚的兴趣,文中介绍使用 Vim 你可以完全脱离鼠标工作,大幅提升 Coding 的效率,对当时的我产生了很大的震撼,这太酷了。
为了使用 Vim ,我立即安装了一个 Ubuntu 的虚拟机,然后调出命令行,兴奋的敲下命令:
$vim test

接着,我发现键盘的⬆️⬇️⬅️➡️没有任何反应,我甚至无法打出 hello world 。
对此,我的反应和大多数 Vim 初学者一样,感到沮丧。
但是下一秒,我发现我沮丧得太早了,因为我根本无法退出这个界面,于是我不得不换台电脑,搜索那个经典的问题:

如何退出 Vim ?


于是:q成为了我第一个掌握的命令。
经过这次折腾,我对 Vim 没有太多的好感,但我始终保持了对 Vim 的敬畏,我认为这些从上个世纪开始持续称霸数十年的工具都是不可冒犯的,尤其是大多数人都一致好评的情况下。
当时大学的课程进行到学习 C 了,写代码就需要用 IDE ,我下载了 Dev-C++ 作为我第一个 IDE 进行编程,开始写课本上的练习题,当学期结束时,我也把 IDE 换成了 Visual Studio 。
我已经忘了要学习 Vim 这件事情了。
学习 Vim
人做某件事情总是需要推动力的,而我开始学习 Vim 的转折点来自加入学校的 C++ 实验室。
所谓实验室其实就是计算机学院划出了一部分办公室,提供设备和场地给学生学习,虽然我大部分时间都在那里打游戏。
18 年的夏天,在实验室的书架上,我发现了一本书,长得黑漆漆的,就是它:

花了大约三周的时间读完这本书后,我开始觉得这些古老的指针、Unix 操作系统、C 悠久的历史太有魅力了,我陷入了某种对 C 的皈依狂热中,这种狂热在我读完《 LinuxC 编程一站式学习》后达到了顶峰。

当时阅读的笔记:Linux 下 C 编译的步骤_hhmy77 的博客-CSDN 博客

这种影响是巨大的,我立即放弃了 Visual Studio ,转而开始刀耕火种式的编程,我强迫用命令行来写 C ,自己生成可执行文件,在这一过程中,Vim 是必须要掌握的工具,出于教徒的虔诚,我开始认真的学习它。
过了大半年的学习,我的 Vim 技巧已经能支持我像使用 IDE 一样流畅的编写代码了,也就是说我终于不用写到一半去搜索 Vim 的命令,或者复制粘贴到 IDE 中完成剩余的代码编写了,这让我看起来像一个正常人一样,真是令人振奋的进步。
在旧的博客上,我还记录了 Vim 的一些使用技巧,下面就是当时我掌握的技能
插入模式 i
退出模式 esc
左下上右 h j k l
跳转到改行的第一个 afa
撤销 u
命令编辑模式下:保存并退出:wq 不保存退出:q 在后面加!则强制操作
保存并退出 shift+zz 不保存退出 shift+zq
普通模式下替换当前字符为 ara ,替换字符串 R 字符串将当前字符变为大写~
普通模式下 当前行右移>>
跳转到行尾$ 行首^
跳转到下一个单词 e
复制:
v 进入可视模式,然后选择想要复制的语句,按 y 复制,返回 normal 模式,按 p 粘贴
普通模式下输入 / 然后键入需要查找的字符串 按回车后就会进行查找。
? 与/ 功能相同,只不过 ? 是向上而 / 是向下查找。
进入查找之后,输入 n 和 N 可以继续查找。
n 是查找下一个内容,N 查找上一个内容。
在当前行下开始插入 o
在当前行之前开始插入 O
向上移动一行 ctrl+y
向下移动一行 ctrl+e
跳转到单词词首、下一单词词尾、前一单词词首 web
删除光标开始的单词 dw
删除光标所在的单词 daw
删除当前字符 x
2.3.3 高级查找
普通模式下输入*寻找游标所在处的单词
普通模式下输入#同上,但 # 是向前(上)找,*则是向后(下)找
普通模式下输入 g*同* ,但部分符合该单词即可
普通模式下输入 g#同# ,但部分符合该单词即可
尽管并不多,我还是花了很多时间去学习 Vim ,足以证明 Vim 的学习曲线有多么陡峭。

一些主流编辑器的学习曲线


持续学习 Vim
又经过一段时间的学习,我接触了 Java 和 C#,我对现代化 IDE 的需求与日俱增,为了使用 C#,我重新开始使用 Visual Studio ,为了学习 Java ,下载了 IDEA 。这些现代 IDE 使得我丝滑地忘记了那段狂热的时光,唯一存在过的证明是我会在第一时间下载 Vim 插件到这些 IDE 里,使用 Vim 的编辑模式来 Coding 。
Vim 是如此博大精深,直到前不久,我才开始使用 :vsplit 来分屏操作 : ),但学习 Vim 的过程是充满趣味的,这种苦行僧式的修行,一开始会疯狂的折磨你,然后会度过一个瓶颈期,接着,你会感觉到快感,随着你的技巧不断提升,快感甚至能进化为喜悦。
人生苦短
2023 年 8 月 5 日,我在 V2EX 上刷到了 Vim 作者去世的消息,点开链接查看,当即有一种人生苦短的感慨。回头看,我学习 Vim 的时间不过几年,而这几年的时光里,我们看到了太多新技术的诞生,看到了互联网的退潮,看到了各种人才陨落的消息,Life is short …

Message from the family of Bram Moolenaar (google.com)


老实说,我并不是一名传统的 Vim 使用者,我只是使用 Vim 的编辑模式来编程,而我也并不了解 Vim 的作者和他背后的历史。在这之后,我阅读了一些关于 Moolenaar 的文章,我越来越对 Moolenaar 感到敬佩。

R.I.P.! Vim 程式編輯器作者 Bram Moolenaar 享壽 62 歲 - INSIDE
Moolenaar 設定 Vim 的使用條款寫到,如果願意支持的話使用者可以捐款給烏干達的兒童,而不是要求捐款給 Moolenaar 自己。
目前 Vim 每年約有 30000 歐元的捐款,這換算下來大約可以資助 50 名烏干達兒童完成從小學到大學的學費。


如此伟大的作品,如此伟大的人,文章的最后,让我们一起缅怀这名程序员吧。

vim, IDE, moolenaar, untitled

huihuiHK   
最后还是 vscode 真香
garylz   
说的应景的话 先生千古 R.I.P
您需要登录后才可以回帖 登录 | 立即注册

返回顶部