截止到上一篇文章,关于vim的基础操作都已经讨论完了,这篇我主要就是闲扯,瞎聊。就想毕业论文都有一个致谢一样,这篇我们就作为整个系列的致谢吧

学习vim到底能给我们带来什么

学习vim到底能给我们带来什么呢?工作中很少有用会用vim来做主力编辑器,现在有各种现代化的编程工具,像JB 全家桶、visual studio 系列。它们从上手难度和集成化程度来说,都做的比较好,离开vim也能编程。而且vim本身也不能给你的简历带来什么亮点,没有公司招人的时候会要求熟练掌握vim、也没有人在简历上写自己熟练使用vim。面试时也没有面试官会问你vim相关的内容,反倒是你用学习vim的时间去学一门新的编程语言,像 gorust 之类的能给你带来一份新的工作,能带来涨薪。从这个上面看,学习 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呢?

  1. 通读vim用户手册,相信通过这些文章的学习各位小伙伴再重读vim手册也不会感到无所适从。我们可以从vim手册中找到比我介绍的更适合自己的操作方式。形成一套只适合自己的操作流程
  2. 开始学习 vimscript 慢慢定制自己的vim
  3. 并不是所有的场合都允许使用 vim 的。下面可以考虑将vim 的操作方式转移到其他编辑器上,例如 visual studio codeemacs 等等。

最后感谢各位关注和鼓励我的小伙伴,下一个专栏我想继续写vim相关的。暂时定为写 vimscript 和vim配置相关的内容吧。

vim 从嫌弃到依赖(23)——最后的闲扯的更多相关文章

  1. VIM插件攻略

    工欲善其事,必先利其器.一个强大的开发环境可以大大提高工作效率.好吧,我知道这是废话...不过,我想一定有很多跟我一样打算进入Linux平台开发的新手,一开始都为找不到一个像Windows下的VS那样 ...

  2. Vim篇

    Vim编辑器中的一些常用命令: 1:shift+* , 选取光标所在处的整个字符,并查找.(十分方便),快捷键gd 2:set nu , 显示各行行号,使得基于行的命令更方便. 3:shift+% , ...

  3. ctagst简单应用,将Vim改造:Ctags,Taglist,Cscope,OmniCppComplete,SuperTab,Winmanager,NERDTree,MiniBufExplorer,vimrc

    vim + ctags $ ctags #给同一个目录下的所有文件建立tags 这时在tags文件所在的目录下打开源文件阅读,vim就会自动调用tags文件.如果tags文件不在当前目录下,能在命令模 ...

  4. 【转】将Vim改造为强大的IDE—Vim集成Ctags/Taglist/Cscope/Winmanager/NERDTree/OmniCppComplete(有图有真相)

    原文网址:http://blog.csdn.net/bokee/article/details/6633193 工欲善其事,必先利其器.一个强大的开发环境可以大大提高工作效率.好吧,我知道这是废话.. ...

  5. 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 ...

  6. 用VIM查看编辑二进制文件

    用VIM查看编辑二进制文件 vim可以很方便地编辑二进制文件,个人认为它比emacs的二进制编辑方式更好用.vim中二进制文件的编辑是先通过外部程序xxd来把文件dump成其二进制的文本形式,然后就可 ...

  7. [转]Vim插件管理工具Vundle

    原文:http://www.linuxzen.com/vimpei-zhi-xi-lie-cha-jian-guan-li.html 当转载成为一种习惯.. 最近对Vim进行了一番较大的配置变动,所以 ...

  8. .vimrc快捷键设置

    $ cat ~/.vimrc,centos7是在/etc/vimrc文件中配置. nmap <C-_>s :cs find s <C-R>=expand("<c ...

  9. 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 ...

  10. Linux常用shell命令

    1.>>>>>刚安装好的ubuntu需要为root创建密码[解决]passwd root 2.>>>>>安装完ubuntu后需要更新[解决] ...

随机推荐

  1. Appium常用定位方法讲解

    Appium常用定位方法讲解 对象定位是自动化测试中很关键的一步,也可以说是 最关键的一步,毕竟你对象都没定位那么你想操作也不行,下面我们来看常用的一些定位方式. ID定位(取resource-id的 ...

  2. ME21N 采购订单批导

    1业务场景 事务代码:ME21N创建采购订单 可以通过BAPI_PO_CREATE1批量创建 2代码实现 1.抬头 2.行项目 3.增强 抬头增强字段放在BAPI_TE_MEPOHEADER结构中的C ...

  3. 【JAVA基础】Mybatis示例

    固定时间范围查询 <select id="selectPaidList" resultType="com.hand.htms.ifp.entity.IfpShipm ...

  4. 微信公众号短链实时阅读量、点赞数爬虫(不会Hook可用)

    众所周知,微信分享的公众号分享出的一般都是短链,在这个锻炼下使用浏览器打开并不能获取微信公众的阅读量点赞数等这些信息,如图1所示. 但是实际拥有详细信息的则是这个链接下面,提取链接所需要提交的信息包括 ...

  5. 方法记录 | 文件批量导入Goodnotes

    一般来说通常资料都是用网盘下载了很多文件,想用Goodnotes来写批注,记笔记等,但是由于网盘不能直接分享.也不能批量分享到Goodnotes,给学习带来了很大的麻烦. 当然有钱的大佬们呢直接开了 ...

  6. 【每日一题】26.codeJan与旅行 (贪心)

    补题链接:Here 算法涉及:贪心 思路: 首先,我们处在p位置,显然要么向左走到相邻的城市,要么向右走走到相邻的城市. 有一个不会证明但观察到的结论,从这两个位置走的话,只有四种可能. 可能1:一直 ...

  7. 活动回顾|阿里云 Serverless 技术实战与创新广州站回放&PPT下载

    7月8日"阿里云 Serverless 技术实战与创新"广州站圆满落幕.活动受众以关注Serverless 技术的开发者.企业决策人.云原生领域创业者为主,活动形式为演讲.动手实操 ...

  8. liunx基础概述

    一.liunx起源 1.1991,芬兰研究生Liunus Torvalds编写了liunx的代码,并上传到互联网 2.Liunx基于UNIX,但是有别与UNIX 3.Liunx的软件产品使用了社区开发 ...

  9. PMP项目变更管理及变更流程总结

    转载请注明出处: 1. 变更管理流程 2.变更管理流程十步: 0 预防--1发起变更请求--2分析影响--3备选方案--4CCB批准--5更新项目管理计划--6沟通干系人--7执行--8检查--9总结 ...

  10. SQL—排序专用窗口函数

    下面介绍三种用于进行排序的专用窗口函数: 1.RANK()     在计算排序时,若存在相同位次,会跳过之后的位次.     例如,有3条排在第1位时,排序为:1,1,1,4······ 2.DENS ...