截止到上一篇文章,关于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. 阿里云视频云人脸生成领域最新研究成果入选CVPR2022

    CVPR(IEEE Conference on Computer Vision and Pattern Recognition)作为计算机视觉和模式识别领域的顶级会议,在全球具有极高的权威性.目前在中 ...

  2. L1-048 矩阵A乘以B (15分)

    给定两个矩阵A和B,要求你计算它们的乘积矩阵 \(AB\).需要注意的是,只有规模匹配的矩阵才可以相乘.即若A有 \(R_a\) 行.\(C_a\) 列,B有 \(R_b\) 行.\(C_b\) 列, ...

  3. Kite 使用教程 轻量级代码提示

    概述 今天看小甲鱼视频的VSC Python 安装教程里视频博主强烈推荐安装Kite插件 ,这是什么玩意? 下载下来试一试? 原来:就是一个代码提示插件.. 说白了" 就是让开发者 在轻量级 ...

  4. 阿里云张建锋:核心云产品全面 Serverless 化

    11月3日,2022 杭州 · 云栖大会上,阿里云智能总裁张建锋表示,以云为核心的新型计算体系正在形成,软件研发范式正在发生新的变革,Serverless 是其中最重要的趋势之一,阿里云将坚定推进核心 ...

  5. 9、SpringBoot-mybatis-druid多源数据多源数据

    系列导航 springBoot项目打jar包 1.springboot工程新建(单模块) 2.springboot创建多模块工程 3.springboot连接数据库 4.SpringBoot连接数据库 ...

  6. treeselect 表单验证解决方法

    https://www.cnblogs.com/wxqworld/p/11203603.html

  7. 每天学五分钟 Liunx 1000 | 软件篇:源码安装

    软件安装流程 前面软件篇提到了通过 RPM 和 YUM 在线安装的机制安装软件,除了这两种方式之外还有一种通过源码来安装软件的方式.

  8. Linux 查看office文件及pdf文件

    1.查看pdf文件 evince PdfFile_name 查看office文件 openoffice.org 文件名 & // 打开或者编辑.doc.odt等文本文档命令 openoffic ...

  9. [粘贴]关于preparedStatement

    作者:wuxinliulei链接:https://www.zhihu.com/question/37043270/answer/83914933来源:知乎著作权归作者所有.商业转载请联系作者获得授权, ...

  10. 阿里云龙蜥8.6部署SQLSERVER2022的过程

    阿里云龙蜥8.6部署SQLSERVER2022的过程 背景 之前总结过, 但是发现当时是preview版本. 这里想升级一下, 并且顺便抄一下他的部分说明 下载 wget https://packag ...