CSDN 的小伙伴们,大家好,我是沉默王二。

写完 Shell 那篇后就想写 Vim 了,因为人类史上最好的文本编辑器就是 Vim,不赞同的请自觉持有保留意见,哈哈哈。

Better, Stronger, Faster.

用这三个单词来赞美 Vim,一点都不为过。只不过,Vim 的学习曲线相当的大,这是一个连我都不得不承认的事实。就好像弹一把吉他,一开始学起来非常痛苦,简直想摔了它,但学会后,就能感受到乐器的无限魅力,以及学妹崇拜的小眼神。

来吧,下定决心拥抱它,没有比它更好的文本编辑器了,非常地难学,但却不可思议地好用。

01、初识 Vim

Vim 有着悠久的历史。80 年代末,布莱姆·米勒在一个开源的 vi(更早的一种计算机文本编辑器,我记得有个读者的网名就叫这个)基础上开发了 Vim 1.0 版本。

1994 年,Vim 3.0 中加入了里程碑式的多窗口编辑模式。

1996 年,Vim 4.0 中加入了图形化界面的版本。

1998 年,Vim 5.0 中加入了语法高亮的功能。

。。。。。。

总之是,越来越强!最新的版本是 8.0,启动界面里会显示一句非常暖心的话——「Help poor children in Uganda」,翻译过来就是「请帮助乌干达的可怜孩童」。这让我想起来我最喜欢的一支乐队——Beyond 的一首歌《Amani》。

打开终端,键入「vim」,就可以进入启动界面了,如下图所示。

Vim 有很多聪明的设计,所以很多其他工具也支持 Vim 模式,比如说 Visual Studio Code。很牛掰的一点是,Vim 逃离了鼠标的“魔掌”,只通过键盘就可以肆意地操作文本。

键入 :help 就可以查看 Vim 的帮助文档,尽管文档是英文的,但这的确是最权威的 Vim 学习资料了,听我一句劝,耐着性子读一读吧!

键入 :q 可以退出帮助文档。当然了,如果英文读起来确实痛苦了些,我还为你准备了在线的中文翻译文档,看这里:

https://yianwillis.github.io/vimcdoc/doc/help.html

02、实操 Vim

俗话说,“光说不练假把戏。”咱们直接上手来体验一把。键入 vim xxx 命令。如下图所示。

随后敲回车键,就进入 xxx 文件的阅读模式了。如下图所示。

在阅读模式下,你需要尝试下面这些命令。

  • 上下左右移动:对应上下左右键
  • 按照词移动:w(下一个词),b(单词的第一个字母),e(单词的最后一个字母),不适合中文
  • 按照行移动:0(第一行),$(行尾),:+行数直接跳转到指定的行(此处的+意味着按下 : 后,再输入行数,比如 10)
  • 按照屏幕移动:H(屏幕顶部),M(屏幕中间),L(屏幕底部)
  • 翻页:不同的键盘有所不懂,比如说 Mac 的巧克力键盘,fn+↑ 键向上翻,fn+↓键向下翻(此处的+意味着组合键)
  • gg(移动到文件开头),G(移动到文件末尾)
  • /+关键词(此处的+意味着按下反斜杠后,再输入关键词)进行搜索,n/N 用于向下或者向上匹配

除此之外,阅读模式下,你还可以:

  • 键入 i 进入插入模式,此时会在窗口底部出现 -- INSERT -- 的字样。

在插入模式下按 esc 键退回到阅读模式。郑重其事的提醒:如果你不知道现在处于什么模式,就狂按 esc 键

除了 i 键可以进入插入模式,还有其他几个键可以进入插入模式,比如说 a 键可以在光标后插入;o 键可以在当前行后插入;0 键可以在当前行前插入。

  • 键入 dd 删除当前行,并把删除的行存到剪贴板里。

  • 键入 x 删除当前光标所在的一个字符。

  • 键入 p 可用于粘贴上一次复制的内容。

  • 键入 yy 可以复制当前行的内容。

  • 键入 u 可用于撤销当前操作。

  • 键入 :w 可以保存当前修改后的内容。

  • 键入 :q! 可以在不保存内容的情况下退出 Vim。

  • 键入 :wq 可以在保存内容的情况下退出 Vim。

**温馨提醒:**如果你是在插入模式,想要退出或者保存内容的话,一定要先按 esc 键退出到阅读模式。

好了,到此为止,你已经算是入门级的 Vim 用户了,真的,掌握了这些命令,其他编辑器能干的事,你都可以通过 Vim 完成了。

03、进阶

孙悟空成为花果山水帘洞的大王之后,感到了空前的寂寞,他想要进阶,于是撑了一叶扁舟拜师学艺去了。同样的,当我们熟练掌握了上述这些命令之后,也会感到空前的寂寞,因为 Vim 的强大绝不止于此。

来看一下,Vim 是怎么重复自己的。

  • 键入 . 可以重复上一次的命令。这意味着什么呢?意味着如果我们键入 dd 删除了一行内容,如果我们还想删除一行的话,不需要再按下两次 d 键了,只需要按下一次 . 键就可以了。

  • 键入 N+命令可以重复某个命令 N 次。(此处的+意味着按下次数后,再输入命令)。这意味着什么呢?意味着生产力的大幅度提升啊!

比如说,在阅读模式下,键入 3dd 可以一次性删除 3 行内容;键入 10p 可以粘贴 10 次文本。

来个带劲的哈。

通过 vim hello.txt 打开一个新的文本文件。然后键入 10+i+hello world+回车键+esc(此处的+意味着按下次数后,再键入 i 键进入插入模式,再敲下 hello world,再按下回车键换行,再按下 esc 键退出到阅读模式),奇妙的事情发生了,见下图。

想一下,键入 10. 会发生什么?相信我,试玩之后,你会“哇”的。

妙,实在是妙。除此之外,你还可以键入:

  • % 匹配括号来移动,包括 {[(,前提条件是你需要把光标移动到括号上。
  • * 匹配单词来向下一个移动。(中文就无法使用了)
  • # 匹配单词来向上一个移动。(同上)

记住光标的移动就可以脱离鼠标的束缚了。大多数命令都可以按照下面的方式来干:

光标开始的位置+命令+光标结束的位置

比如 0y$ 意味着:

  • 0,光标移动到行首
  • y,从这里开始复制
  • $,直到行尾

如果你想看到光标选中了哪些文本,可以先按下 v 键进入可视化视图,然后再操作光标,如下图所示。

更强大的操作,可以看看耗子叔翻译的一篇《简明 Vim 练级攻略》:

https://coolshell.cn/articles/5426.html

在阅读模式下,键入 :sp 可以横向分割窗口,键入 :vsp 可以竖向分割窗口,见下图。

舒服吧?原来一边编辑,一遍预览,在 Vim 下,只需要键入三四个字符!

04、结语

如果你想在手头备一份 Vim 的帮助手册,免得在用 Vim 的时候四处搜索,实话告诉你,我替你准备了,就是这么贴心。真的,花了 2 天的时间呢,整理了一份《Vim 中文用户手册》,310 页,内容非常全面。

这么优质的 PDF,怎么获取呢?第一步,扫码关注「沉默王二」公众号:

第二步,在公众号后台发送 008 获取下载链接(无解压密码,无套路)。

最后,多说几句。作为程序员,我们大部分的时间都花费在摸鱼上,不不不,代码编辑器上,因此,花点时间来掌握一个适合自己的编辑器还是非常值得的。很多大佬都直接使用 Vim 来作为代码编辑器,虽然我还没达到这种高逼格,但使用 Vim 来操作日志和配置文件的频率还是非常高的。

要想熟练掌握 Vim,你需要这样做:

  • 认真阅读这篇内容;
  • 坚持使用 Vim 来完成所有的文本编辑工作,即使一开始会很痛苦;
  • 随时查阅帮助文档,强化肌肉记忆;
  • 两周时间的苦练后,你会发现,工作和学习效率有了大幅度的提升。
  • 一个月过后,你跑过来感谢我,“二哥,你丫的,牛逼”!

PS:哇,上期分享的狂补计算机基础知识,让我上了瘾深受 CSDN 的小伙伴们喜欢呀,已经 345 个收藏和 88 个赞了(包括我自己的一个,嘿嘿,不要脸吧),是我在 CSDN 上分享的内容中赞数还可以的一篇内容,虽然离 1000 赞还很遥远,但心里还是非常开心滴,骑着我心爱的小摩托,打算去吹冷风去!

好了,我是沉默王二,希望这篇内容能够帮到你!下期见。

Vim,人类史上最好用的文本编辑器!从此以后你就是一个善良的极客!相关推荐

  1. linux下编辑文件实验,Linux上最常用的文本编辑器vi/vim使用教程

    vi(vim)是上Linux非常常用的编辑器,很多Linux发行版都默认安装了vi(vim).vi(vim)命令繁多但是如果使用灵活之后将会大大提高效率.vi是"visual interfa ...

  2. kindeditor java上传_富文本编辑器kindeditor上传图片的配置方法

    [导读]这篇文章主要介绍了使用富文本编辑器上传图片实例详解的相关资料,需要的朋友可以参考下 富文本编辑器上传图片 一.导入kindeditor的js 二.将kindeditor与一个文本域textar ...

  3. 在线 - 支持word上传的富文本编辑器

    这种方法是servlet,编写好在web.xml里配置servlet-class和servlet-mapping即可使用 后台(服务端)java服务代码:(上传至ROOT/lqxcPics文件夹下) ...

  4. JavaWeb-10 (项目案例7 文件上传与富文本编辑器)

    一.Web文件上传与下载 ① 概述 将本地文件上传到服务器端,从服务器端下载文件到本地的过程.例如目前网站需要上传头像.上传下载图片或网盘等功能都是利用文件上传下载功能实现的. ② 原理 (1) 文件 ...

  5. 结合element-ui实现文件上传以及富文本编辑器的使用

    一.配置文件上传两个注意事项 1.action属性必须是绝对路径 2.手动配置请求头headers 完整代码: <el-uploadaction="http://www.ysqorz. ...

  6. 富文本编辑器 输出在线html_一个在线实时预览代码编辑器的实现

    在线代码编辑器--Html/Markdown支持 作为开发者,经常会使用各式编辑器,一个体验良好的编辑器会给使用者舒适的coding体验. 但当我们不是使用自己熟悉的电脑,在任意的环境下,我们就需要有 ...

  7. 28岁程序员网购生发丸吃成肝损伤;马斯克首次登上美国富豪榜首;微信新增退群保留聊天记录功能|极客头条

    「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews ...

  8. 微信限制 ChatGPT 小程序;美国禁止在政府设备上使用 TikTok;Gccrs 代码合并到 GCC 13 主支|极客头条

    「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews ...

  9. 百度ueditor - 支持word上传的富文本编辑器

    1.4.2之后官方并没有做功能的改动,1.4.2在word复制这块没有bug,其他版本会出现手动无法转存的情况 本文使用的后台是Java.前端为Jsp(前端都一样,后台如果语言不通得自己做 Base6 ...

  10. PS修改过图片上传服务器,富文本编辑器图片上传base64存数据库改为服务器图片路径...

    目录 一.安装依赖 npm install quill-image-super-solution-module --save PS:如果不想npm引入可以直接把quill-image-super-so ...

最新文章

  1. docker常用命令详解
  2. CodeForces 689B Mike and Shortcuts (bfs or 最短路)
  3. Spring抽取jdbc配置文件
  4. 今日代码(200708)--缺失值处理
  5. 设计模式_1_工厂模式与抽象工厂
  6. Maven:解决jar包冲突和企业开发常用编写
  7. 学excel还是学python_已经会Excel了还需要学python吗?
  8. 从0开始架构一个IOS程序 ——04— UITabBarController和自定义TabBar 搭建主页面
  9. Android多渠道打包APK
  10. UE4 骨骼重定向记录
  11. WIN7的IE11中安装activex控件
  12. 互联网晚报 | 11月22日 星期一 | 华为正式开启二手机业务;B站通过收购获得支付牌照;字节跳动公益平台正式上线...
  13. 简历javaweb项目描述怎么写_JavaWeb开发简历项目经验怎么写
  14. SharePoint传出电子邮件配置
  15. 面板数据熵值法-Python
  16. 网游线上活动的类型及特点
  17. win2008服务器系统玩红警,Win10系统玩不了红警2怎么办?
  18. 【游戏程序设计】Direct 3D 三维地形系统
  19. 瀑布模型、快速原型模型、螺旋模型优缺点
  20. 解决 WIDOWS 2003 SERVER 玩不了3D游戏

热门文章

  1. iPhone怎么设置闹钟铃声?苹果手机自定义闹钟铃声教程
  2. 用计算机实测技术研究声波和拍内容,基础物理实验/面向21世纪课程教材
  3. 数控宏程序c语言,数控车床宏程序怎么写?最好带步骤解说
  4. 如何出版一本技术类书籍
  5. LOCAL_PRIVILEGED_MODULE 详解(3)
  6. V-By-One协议说明
  7. 组织结构流程图模板分享
  8. 怎样发表期刊才能快速通过
  9. 科学研究方法与论文写作-课后习题答案
  10. 六:Python断言方法:assert