关于 Vim
摘要
本篇会介绍 Vim 的一些基本用法,并对后续实验中选择编辑器的问题进行了一些初步讨论。
本篇对应实验文档中“ Configuring vim ”的部分,建议和原实验文档一同阅读,可以互为补充参考。
简单的 Vim 用法
Vim 极速入门
Vim 可以使用 hjkl 四个按钮切换光标位置,按 Esc 退出各种模式,按 i 进入插入模式(可以开始编辑文本),按 : 进入命令模式,其中按 :wq 保存并退出,按 :q! 强制退出。这几个操作足以满足简单的编辑操作了。
Vim 有丰富而强大的功能,可以在命令行中得到很好的运用。
比如,我们有一个程序,它会输出大量的信息,我们希望只查看其中一部分(假设为 hello ),或者只搜索特定的内容。我们可以用下面的命令:
这表示将程序 hello 的输出经管道输出给 Vim 作为输入,vim - 表示 Vim 将会读取标准输入。
然后你就可以输入 /hello ,不断按 N/n 来上下翻动,寻找整个输入中的 hello 字符串。
可以想象,如果你想把一个程序的输出复制到记事簿或者 VSCode 之类的编辑器中,再做这些操作,需要花掉比在命令行中使用 Vim 多多少的时间。这些时间足以把代码扔给 AI 让他直接给你生成代码答案深度思考帮你解释文档中的疑难点了。
使用 Vim 还是 VSCode ?
在后面,你显然是需要指定一个常用的编辑器来进行大部分实验的,大部分同学会在 Vim 和 VSCode 之间选择。
如果你选择 VSCode ,你需要注意的是,尽可能要做好配置,避免后续因库导入等问题,在实验过程中编辑器长期报红,既不美观,也影响你的自信心。
如果你选择 Vim ,那你面临的配置问题会更多。为了做到足够高的开发效率,你的 Vim 中至少要有这些现代编辑器常见的功能:语法高亮、语法检查、函数跳转、中文支持。不然,你实验的困难程度是不言而喻的。
拓展阅读:项目开发中的编辑器选择
不同于 PA ,现在的项目开发几乎都是多人协作完成的(如果你尝试多人协作完成 PA ,一是可能面临抄袭风险,二是可能效率还不如自己写)。
那如果很不幸,你的团队中正好有不会 Vim 的开发者,你该怎么办?
又或者,你需要在多个机器上进行开发(如虚拟机、云主机),你该如何做到不断同步不同机器上的 Vim 的配置?如何快速获得图形化的工具?
同样的,反过来也是,如果你使用 VSCode ,你又该如何实现像 Vim 中一样快捷的命令行编辑? VSCode 光是启动就可以等让你好几秒喝杯茶了,更不用说进行复杂的命令和操作。
其实这不仅是编辑器层面的问题,就像你刚获得的 Linux 系统一样,你也会觉得 Windows 系统的图形界面也有其优点。 Windows 更用户友好的界面,也吸引着更多的人去做相关的开发,建立更丰富的应用生态; Linux 则更方便命令行老手进行开发,虽然等你做完 PA 的时候估计恨不得把 Linux 直接卸载掉,但用久了之后你就会发现开发这方面还是 Linux 好用。
所以或许,我们需要的是让自己拥有在不同的环境下都能够进行开发的能力,根据具体需求情境选择效率最高的工具,这样才能适应未知的或不断变化的外部环境。
初识 Vim
你已经初步了解了 Vim 的一些基本用法。
Vim 和 Linux 一样,都是需要不断学习才能逐渐掌握的工具,大家在后续的实验中,可以尝试根据开发需求,不断探索 Vim 和 Linux 的使用方法,在掌握了足够多的使用技巧后,才更可能体会到其方便之处。