vim 从嫌弃到依赖(23)——最后的闲扯
截止到上一篇文章,关于vim的基础操作都已经讨论完了,这篇我主要就是闲扯,瞎聊。就想毕业论文都有一个致谢一样,这篇我们就作为整个系列的致谢吧
学习vim到底能给我们带来什么
学习vim到底能给我们带来什么呢?工作中很少有用会用vim来做主力编辑器,现在有各种现代化的编程工具,像JB 全家桶、visual studio 系列。它们从上手难度和集成化程度来说,都做的比较好,离开vim也能编程。而且vim本身也不能给你的简历带来什么亮点,没有公司招人的时候会要求熟练掌握vim、也没有人在简历上写自己熟练使用vim。面试时也没有面试官会问你vim相关的内容,反倒是你用学习vim的时间去学一门新的编程语言,像 go、rust 之类的能给你带来一份新的工作,能带来涨薪。从这个上面看,学习 vim 似乎变得有那么些鸡肋甚至有一种耽误时间的感觉。
我最开始学习vim的初衷是,我需要在linux下进行一些环境的搭建,例如Apache、nginx、或者其他的服务。在linux的终端中,vim算是标配,几乎每个linux服务器都会安装vim。那个时候我只会按 i 进入插入模式、按方向键移动光标。它对我来说就是一个linux上比记事本还麻烦的一个文本编辑器。
后来我看了 《程序员修炼之道》、《程序员的呐喊》这两本书,书中提到:我们程序员平时会花大量的时间与代码、文本编辑器打交道,如果每天抽出一些时间花在优化编辑器上将会大有好处。而且《程序员的呐喊》这本书十分推崇emacs。我遵照书中的意思学了一段时间的emacs ,发现emacs 中最高效的编辑方式是一个叫做 evil 的插件,它是一个 vim 的模拟器。而且后续我了解到很多编辑器都有相关的vim插件。这个时候我开始意识到vim并没有我之前想象的那么简单。
随着emacs 的学习和使用进入瓶颈,我意识到要想用好 emacs 首先还是得学会如何使用 vim。这个时候我立马入了 vim 的坑。而且通过学习 vim,我越来越觉得 vim 给我带来的好处大于学习任何一种编辑器。
首先,vim 最被推崇的是它的一套文本操作方式,例如为了减少快捷键的按键次数以及为了更好的抽象现实中编辑文本的场景,它使用了分模式的办法,不同模式下不同按键有不同的功能。在这它将文本进行分级,分为字符、单词、字串、句子、段落并且提出了文本对象的概念,极大方便了我们处理文本的速度。同时它也有 . 命令和 宏的操作,进一步简化了重复操作。
再者它极大的继承了 unix 的哲学,专门的软件做专门的事并且将这个事做到极致。它很方便的和外部程序做集成,扩大了功能范围。
最后就是它的高可定制性,使用者可以方便的根据自身的工作场景做定制,做出符合自己的编辑器。
如今 vim 已经不单单指一个软件了,而是一整套完善的文本编辑技术,学好了这个,后续在任何编辑器上都可以用到,例如各种编辑器IDE都支持vim 快捷键或者vim 插件。可以做到无缝切换编辑环境。
另外学习 vim 给我培养了一种解决问题并从中学习的思路:根据实际场景提出问题-->找到解决办法--> 寻找更好的办法-->学到新知识-->将新知识-->使用新的知识更好的解决之前的问题。我想我通过前面的一些文章已经传递了这一思想,例如根据所学知识不断的完善 在每行最后添加分号 这一操作。使用 . 或者 宏来操作重复内容等等。甚至还有小伙伴在评论区给出更好的解决方案,这些都是这一思路的体现。
由于不断有新知识,而且知识可以很快的运用到工作中。学习vim的过程有很好的正反馈,以前需要不停用鼠标点或者需要自己手工完成的操作,现在只需要几秒钟或者几分钟就由vim自动完成的这一喜悦使我在学习vim的过程中一直乐在其中。
我想这就是我学习vim和使用vim的意义和快乐所在吧
写这一系列文章的心路历程
最开始学习vim的时候我很困惑,读vim的用户手册显的干巴巴的,读的头昏脑涨,记得的不多,基本合书就忘。网上的教程很多都是直接罗列命令,跟用户手册差不多。或者直接写一堆配置告诉你vim可以配置的很好用。这些充斥着网络,但是又不是我这种初学者需要的。我希望的是有一个教程在实际使用中循序渐进的帮我掌握vim这些知识点,需要一个教程跟着它进行操作我就能理解并在实际中使用vim。我需要一个vim手册和实际使用的一个桥梁。很遗憾的是我没有找到我想要的教程。那么我就自己写吧,我相信肯定有vim的初学者跟我当初遇到的情况一样,我想把我心目中认为最适合我的教程写出来,没准它也适合其他人。
在写这一系列文章的过程中,我深刻体会到,在如今互联网环境中,一旦写出什么东西,这个东西马上就不属于你。当然这个并不是再说有人抄袭之类的。我只是在感叹互联网中的内容传播速度,从我更新第一篇注水的内容开始,马上就有人关注并且给我评论说支持我。这无疑给我了很大的勇气,让我慢慢更新完这一系列文章。中间也有白天上班、晚上整理资料、写博客,白天在抽时间发表的时候,有时候也挺累,偶尔也想休息一下或者断更,中间有想法更新我觉得更有意思的内容。但是想想那些因为我的这些文章而关注我的人,不知道他们看到我在断更之后会是怎样的失落,这种好不容易找到适合自己的本想好好跟着学习,结果却被迫中断的这种心情,我很能体会。既然如此那就硬着头皮更新吧。这一系列的文章一旦开始立项、更新,那么它就不属于我自己,而属于各位希望通过这些文章学到点东西的小伙伴。我有义务将它们一一发布出来。
中间也有不少小伙伴私行我,告诉我他们通过我的文章学到很多东西,也重拾了对 vim 的兴趣。这些鼓励的声音给了很大的帮助。特别是 知乎的用户 @ugvibib。最开始是他一直在给我评论分享自己的学习心得,也是他不停给我私信提醒我某些地方有错别字或者排版有错误。这些文章有他一部分的功劳,感谢 @ugvibib 负责给我校对。
在写这些文章的过程中,我真的体会到“您的点赞关注评论是对我最大的支持”这句话并不完全是骗赞,骗流量的空话。我在更新这一系列文章的过程中也真心的希望得到反馈,得到关注,让我知道我写的这些破玩意还是有人看的,有人能从中获益,这些并不是我自己在这自说自话,自嗨,这些也并不是网络垃圾。有人关注、有人评论和点赞给我了继续更新下去的动力。
后面该干什么
关于vim的基础操作到此为止就全部更新完了,但这并不是vim的全部。后面该如何学习vim呢?
- 通读vim用户手册,相信通过这些文章的学习各位小伙伴再重读vim手册也不会感到无所适从。我们可以从vim手册中找到比我介绍的更适合自己的操作方式。形成一套只适合自己的操作流程
- 开始学习
vimscript慢慢定制自己的vim - 并不是所有的场合都允许使用
vim的。下面可以考虑将vim的操作方式转移到其他编辑器上,例如visual studio code、emacs等等。
最后感谢各位关注和鼓励我的小伙伴,下一个专栏我想继续写vim相关的。暂时定为写 vimscript 和vim配置相关的内容吧。
vim 从嫌弃到依赖(23)——最后的闲扯的更多相关文章
- VIM插件攻略
工欲善其事,必先利其器.一个强大的开发环境可以大大提高工作效率.好吧,我知道这是废话...不过,我想一定有很多跟我一样打算进入Linux平台开发的新手,一开始都为找不到一个像Windows下的VS那样 ...
- Vim篇
Vim编辑器中的一些常用命令: 1:shift+* , 选取光标所在处的整个字符,并查找.(十分方便),快捷键gd 2:set nu , 显示各行行号,使得基于行的命令更方便. 3:shift+% , ...
- ctagst简单应用,将Vim改造:Ctags,Taglist,Cscope,OmniCppComplete,SuperTab,Winmanager,NERDTree,MiniBufExplorer,vimrc
vim + ctags $ ctags #给同一个目录下的所有文件建立tags 这时在tags文件所在的目录下打开源文件阅读,vim就会自动调用tags文件.如果tags文件不在当前目录下,能在命令模 ...
- 【转】将Vim改造为强大的IDE—Vim集成Ctags/Taglist/Cscope/Winmanager/NERDTree/OmniCppComplete(有图有真相)
原文网址:http://blog.csdn.net/bokee/article/details/6633193 工欲善其事,必先利其器.一个强大的开发环境可以大大提高工作效率.好吧,我知道这是废话.. ...
- How do I close a single buffer (out of many) in Vim?
I open several files in Vim by, for example, running vim a/*.php which opens 23 files. I then make m ...
- 用VIM查看编辑二进制文件
用VIM查看编辑二进制文件 vim可以很方便地编辑二进制文件,个人认为它比emacs的二进制编辑方式更好用.vim中二进制文件的编辑是先通过外部程序xxd来把文件dump成其二进制的文本形式,然后就可 ...
- [转]Vim插件管理工具Vundle
原文:http://www.linuxzen.com/vimpei-zhi-xi-lie-cha-jian-guan-li.html 当转载成为一种习惯.. 最近对Vim进行了一番较大的配置变动,所以 ...
- .vimrc快捷键设置
$ cat ~/.vimrc,centos7是在/etc/vimrc文件中配置. nmap <C-_>s :cs find s <C-R>=expand("<c ...
- LAMP动静分离安装(源码安装)
环境: 版本 IP地址 源码包版本 Centos7.5_mysql 192.168.111.3 mysql-5.7.24.tar.gz,cmake-3.13.1.tar.gz,boost_1_59_0 ...
- Linux常用shell命令
1.>>>>>刚安装好的ubuntu需要为root创建密码[解决]passwd root 2.>>>>>安装完ubuntu后需要更新[解决] ...
随机推荐
- Axure 形状交互
- 深入了解 ReadDirectoryChangesW 并应用其监控文件目录
简介 监视指定目录的更改,并将有关更改的信息打印到控制台,该功能的实现不仅可以在内核层,在应用层同样可以.程序中使用 ReadDirectoryChangesW 函数来监视目录中的更改,并使用 FIL ...
- ChatGPT 插件,组合后更妙了
ChatGPT 插件,组合后更妙 大家好,我是章北海mlpy 昨天极简介绍了一些热门的ChatGPT插件 我测试了一些组合玩法,感觉效率.效果都远超预期. 今天就演示一下如何利用多个插件,高速阅读.理 ...
- 0.o?让我看看怎么个事儿之SpringBoot自动配置
学习 SpringBoot 自动配置之前我们需要一些前置知识点: Java注解,看完就会用 学会@ConfigurationProperties月薪过三千 不是银趴~是@Import! @Condit ...
- ABAP RSA方式调用工行银企直联API
目录 一.研究背景 二. RSA简介 RSA是非对称加密的一种. 对称加密算法: 在加密和解密时使用的是同一个秘钥:如图所示: 非对称加密算法: 需要一对密钥来加密解密,这两个密钥是公开密钥(pu ...
- 【库函数】QT 中QString字符串的操作
QString是QT提供的字符串类,相应的也就提供了很多很方便对字符串的处理方法.这里把这些对字符串的操作做一个整理和总结. 1. 将一个字符串追加到另一个字符串的末尾 QString str1 = ...
- 【每日一题】6.Rinne Loves Edges (树形DP)
题目链接:Here 树形DP 算法讲解:Here 无向联通图其实就是树的形状,其次让我们以 s 为根使得所有的叶子节点不能到达根并且让删去边权的总和最小,那么就是典型的 树形DP 了. \(dp_i\ ...
- 绿色数治开采工艺: 3D 可视化智慧矿山
前言 2021 年 2 月底,国家矿山安监局综合司发布的<"十四五"矿山安全生产规划(征求意见稿)>中再次强调要"实时采集矿山安全监控.人员位置监测.视频监控 ...
- 图片与Base64编码相互转换、优势分析和技术实现
在Web开发中,图片与Base64编码的相互转换是一个非常实用的技能.图片 Base64编码是将图片文件转换为字符串格式,以便于在网络上传输和存储.本文将详细介绍图片与Base64编码的转换方法,以及 ...
- wireshark 显示过滤表达式
转载请注明出处: 1.根据协议过滤: 在显示过滤表达式的输入框中直接输入对应的协议类型即可:http tcp udp 2.根据 IP 过滤: 根据源IP地址过滤:如源地址IP为:127.0.0. ...