很抱歉我决定结束这个系列的内容了。原本我打算介绍markdown、orgmode相关的配置,甚至还打算介绍如何在vim
中使用 emacs
的 org-agenda
来进行日常的任务管理。但是出于一些原因我打算放弃了。
首先如果将markdown 理解为另一种类似于HTML
的标记语言的话,我们在介绍LSP
的时候已经介绍过该如何新增新的编程语言的支持,再另外介绍Markdown
的配置就显得多余了。而且本系列也并不打算事无巨细的带领大家从零开始配置一套完整的配置,我仅仅希望通过这一系列的内容介绍一下vimscript
或者lua
接口以及vim
的一些特性,让大家看完之后又能力自行动手弄出一套属于自己的配置。
至于orgmode
的内容,我发现目前还没有任何插件能完美的模拟emacs
的orgmode
功能。vim
上的插件也仅仅能做到渲染样式,语法高亮而已。也就没有必要单独介绍了。如果后续我能掌握 emacs
的话,再来介绍也不迟
总之就是本系列到此结束了。
一些建议
不知道各位小伙伴在跟着我这一系列文章尝试自己配置vim
的时候有什么感觉?我当初在整理这些配置的时候发现它越来越像vs code
,甚至最近几年新推出的LSP
以及 DAP
的一些插件几乎都是原生的用于 vscode
上的或者从它上面移植过来的。有些主题也是照搬 vscode
的。我们发现自己费劲心力终于将vim
变成的 vscode
。有没有觉得在做无用功?既然要将它变成 vscode
那为何不直接使用 vscode
呢?可能有人会说, vscode
对于vim的一些模式和 ex
命令的支持并不好。我想这就是我们使用 vim
的理由,也是vim
比其他编辑器强的地方。
我们仅仅是在使用工具而已,哪个工具好用,哪个工具能帮助我们快速完成工作,那就用哪个。工具本身没有高低贵贱之分,只有合适与否的差异。作为程序员要拥抱新技术,千万不要抱着某个技术某个工具不放。也不要觉得用vim
的比用 vscode
或者其他编辑器的高级,就高人一等。vim自身也在吸收其他技术不断的成长,例如它从 vscode
那边学来了LSP
和 DAP
。这就有点像武侠小说中的吸功大法,集万物所长为我所用。
另外一条建议就是千万不要拿我给出的配置直接来进行使用。这一套配置仅仅是为了教学使用,很多地方没有进行深度定制,并且基本采用白话的写法,完全不考虑封装性和程序设计,另外我也没有考虑通用性,很多小伙伴评论出现了各种各样的问题,最后就是它的效率也不算高。我也不希望自己的文章仅仅给各位小伙伴提供了一套配置。我更希望小伙伴们能通过这一系列文章学到一点东西,从这套配置中衍生出一套适合自己的内容。若干年以后,各位小伙伴在对vim
有更深的理解回过头来看到这套配置时可能发出这样的声音:“这是什么破烂配置,连 xxx 的支持都没有;有些功能有时候会报错,我看看把它改好;启动时间咋这么慢,我能把它优化到xx毫秒;现在还在用xx技术早就落伍了,看我把它改成用xx技术”。
(我自认为本系列最有价值的是开始配置之前,vim相关特性的介绍)
最后的一条建议就是,如果各位小伙伴未来将长时间使用vim
进行代码的编写和日常的开发。那么我推荐使用一些社区比较活跃的第三方通用配置,例如我最近在使用的lunarVim
。使用这类的配置有一些好处:
- 不用费力折腾配置,节约时间
- 学习高手的配置,提升自己对编辑器的审美。就像没学习vim之前我一直觉得使用编辑器用鼠标选中文本是天经地义的事,我习惯了它,甚至习惯了用鼠标翻页等操作,完全不知道这样有多么的浪费时间。通过高手配置可能能使你重新审视自己使用编辑器的习惯,从而找到一套真正适合自己的高效的文本操作术。
- 社区活跃的话,除了问题不用自己死磕,可能有人能帮忙解决
PS: 如果各位觉得我的教程不好或者有些内容没有提到,各位可以去看看lunarVim作者的另一个项目,Neovim-from-scratch
该项目也是从0开始配置vim,并且在油管上有对应的教学视频。
后面的学习
通过本系列的学习相信各位小伙伴已经有能力能看懂各种第三方配置的代码,能在此基础之上衍生出一套属于自己的配置。甚至能完全抛弃第三方配置独立弄出一套自己的配置。所以后面我推荐的学习路线就是:
- 不断阅读vim官方手册
- 熟练使用某一个第三方配置
- 在熟练的基础之上根据自己的习惯来定制一些只属于自己的功能
- 形成一套只属于自己的科学的、高效的文本操作习惯
- 根据这套习惯尝试定制自己的配置
- 在其他编辑器中通过一定的配置尝试复刻这一套科学而又高效的操作习惯
目前我正在第三部分努力。
希望本系列文章能带领大家真正入门vim
,不会再出现因为觉得难而中途放弃。最后祝愿各位小伙伴在vim的使用中能收获快乐,并坚持下去!