vim VS. emacs

vim被誉为编辑器之神,而emacs被誉为神之编辑器。中国文化博大精深,他们究竟有什么区别呢?作为emacs小白的我来说不想在这里献丑,直接贴上一篇博客,有兴趣的同学可以深入研究或者自行百度https://www.v2ex.com/t/332566。

总之我对这两句话的简单理解是:vim是编辑器里面最优秀的;而emacs则常常是大神所钟爱的编辑器。貌似这个解释有些牵强,反着说意思就是大神们不太喜欢最优秀的编辑器。晕,自己把自己的结论推翻了。

vi VS. vim

这里我要说的是vim is not only vi。虽然vi是vim的祖先,但是他们两个真的不是同一个编辑器,证据就是在输入“vim”命令以后,vim的欢迎界面第一行写着“VIM - Vi Improved”。

至于这两个编辑器的区别,这里我也不献丑了,详情请看这里https://www.cnblogs.com/KiraEXA/p/5994078.html。

总之我对这两个编辑器的简单概括是:珍惜生命,请使用vim!

vimtutor

如果想学习vim,但是又不知道从哪里学起,这里有一个很好的vim学习教程。

不管你是macOS系统、windows系统或者其他Linux发行版系统,只要你在机器上安装了vim,那么就会自带安装vimtutor。划重点:不管你在这个教程里面怎么操作,都不用担心损坏这个教程,因为他有一个很神奇的功能就是每次打开都是一样的。vim开发人员早就考虑到一些小白用户可能会把vimtutor修改的面目全非,导致下次启动,不能再继续学习的困扰。

废话不多说,现在就可以开始你的vimtutor之旅了,希望你花30分钟看完(最好操作一遍)vimtutor以后再回来,我相信你对于vim的基本操作已经有了一个简单的认识。后面的内容将介绍一些比较高级的、可能会经常用的、并且在vimtutor中没有提及的内容。

:help

我觉得help算是vim里面最重要的命令,相当于linux的man命令。他会告诉我们一些设置的相关说明和语法,可以让我们通过他提供的公式举一反三,而不仅仅局限在一个命令的使用上。

help命令的而使用方法是在命令模式下输入help。这里我并不打算讲解vim的三种模式,有兴趣可以上网搜索,最简单的识别命令模式的方法是你输入的内容都会显示在窗口的最下面一行,并且输入内容以“:”开头,当然“:”是你自己输进去的。

这里列举一个通过“:help :s”查到的使用说明

  • 中括号中的内容为选填内容
  • 大括号内容是必填内容
  • range是一个区间,表明要影响的行的范围,如果没有改参数说明只影响当前行
  • ubstitute这个是substitute单词缩写时候省略掉了,但是如果你执意要用全拼,也是可以的
  • pattern意思为正则表达式,这里值需要查找到的内容
  • string指的是需要将parttern匹配的内容替换成string位置的内容
  • flags是控制:s行为的参数,不填在匹配行进行一次替换。比如g代表在一行范围内多次替换,c代表确认替换
  • count指定替换的次数,我一般不会用到这个参数

宏的录制和播放

宏不得不说是vim里面一大神器,他可以解放重复的劳动。

宏的简单理解就是对vim操作命令进行记录,播放宏就是将记录的vim操作进行让vim自己执行一遍。如果在@前面加上数字,比如100,就是说将记录的宏播放100遍。

那么怎么录制宏呢?红的录制是在normal模式下按下q,然后在按一任意26个字母(如:x)就可以将录制到指定的寄存器(x)中了。接着可以进行一两个简单的操作,比如dd。然后再按下q结束宏的录制。

那么怎么播放宏呢?在normal模式下输入@和你刚才输入的那个字母(如:x),就会看到他执行了一次刚才录制的操作dd,如果我们输入100@x,就会神奇的发现他执行了100次dd操作,细思极恐。

如果我上面巴拉巴拉一堆文字没有让你看明白,那么请移步这里有图文并茂:https://blog.csdn.net/lalor/article/details/7277761。相信好奇的你一定想迫不及待的试一下。

翻页

相信我们经常在查看日志的时候需要翻屏,我曾经就看到有人不会翻屏使用方向键在几十兆的日志中一行一行一行一行的移动,那时候我还是个小白,如果是在现在我一定会说:放开vim,让我来!

其实一般我们查找日志都是先find,然后在在定位到具体范围以后在向前翻页,向后翻页。

那么问题来了,怎么翻页呢?

  • ctrl + f 向下翻一页
  • ctrl + b向上翻一页
  • ctrl + d向下翻半页
  • ctrl + u向上翻半页

你以为这就完了吗?然并卵。

有时候我们还要定位光标呀,定位光标和翻页略有不同

  • zz将光标定位到当前屏幕的中间位置
  • zt将光标定位到当前屏幕的第一行
  • zb将光标定位到当前屏幕的最后一行

寄存器

前面再讲宏的时候已经提到过一次寄存器了,这里不要嫌烦,再提一次,因为他真的很重要。

我们经常需要一时间复制很多东西,然后在一个个粘贴,这件事在其他编辑器上只能一个一个复制粘贴,但是在vim里面可以将内容先复制到寄存器里面,然后在从寄存器里面粘贴出来。我不清楚我描述清楚没有[笑脸]

寄存器的吊起是“加任意一个字母,就可以调起任意指定的寄存器。如果后面连接的是复制操作,那么复制的内容会被保存到该寄存器中;如果 后面链接的是粘贴操作,那么该寄存器的内容会被粘贴到光标后面。

历史

很多人都不知道vim中有查找历史和命令模式历史,甚至是很多博客中都没有提及这样的概念,这真是太可惜了。

查看查找历史我们只需要在normal模式下输入q/然后就可以查看之前的搜索历史,通过移动光标选中需要执行的历史搜索,然后按回车键执行搜索,这个功能对于喜欢搜索,又不喜欢复制来复制的人来说简直以一种福音。

虽然命令模式不经常用,但是命令模式也有查看历史的命令q:。这样就可以查看到自己之前输入过得历史命令模式的命令,同样移动光标到指定行,按回车执行选定的行命令。

一般人我不告诉他:对历史命令还可以重新编辑,然后按回车键执行!

vim内调用系统命令

有时候我们需要在编辑的时候急性的执行一些系统命令,比如:pwd。因为是在控制台,所以只能关闭vim,然后在执行pwd,然后在进入vim。这个技巧可以在vim里面执行系统的pwd命令,那就是在normal模式下输入:!pwd,然后就会看到pwd被神奇的执行了,按回车键可以回到vim中继续编辑。

标记和跳转

有时候我们经常要在冗长的日志文件里面跳来跳去来对比内容,有的人索性直接吧相关内容复制出来或者截图以后来做对比,我想说从现在起不用了,只要你学会了下面的技能:标记、跳转。

标记的意思就是在文档里面做一个标记,方便以后回来查看他,在vim中的快捷键就是在normal模式下使用m,然后在跟26个字母中的任意键(比如:j),然后就把当前光标所在的位置标记到了指定的字母上(如果刚才你按下了mj那么意思就是将当前光标位置记录了到j字母上)。

这里的跳转不是指gg,G这类跳转,是指跳转到使用m标记过得地方,比如刚才我们将当前位置记录到了j字母中,现在我们任意跳转到vim其他地方,想要快速跳转回来,只需要按下`j就可以跳转到刚才标记的地方了(`键就是tab键上面那个最不起眼的,最不经常按的键,现在可以派上用场了),是不是很智能,这个功能一遍编辑器是不支持的,可以说有是vim一大神器。想想有26个按键可以记录跳转,反正我是用不过来,用的最多的时候也不超过5个,如果你的记忆力超好,我相信26个记录的位置也够你用了吧。

待续……

编辑器之神-vim的使用技巧相关推荐

  1. xshell vim 不能粘贴_编辑器之神——vim的入门指南

    编辑器之神--Vim的操作说明 ©作者:geekctwd Vim命令模式: Vim虽然被称为编辑器之神,但是很多接触过的人都说入门较难,原因是什么呢,除了vim繁杂的按键之外就是因为它的模式了,很多初 ...

  2. linux 神的编辑器,编辑器之神-vim的使用,编辑器神-vim

    编辑器之神-vim的使用,编辑器神-vim vim即vi的升级版:在linux中,vi是vim的软链接,我们敲vi和vim出来的都是vim: 纯手打,如有错误,敬请指出. vi的三种模式及简单使用 v ...

  3. 编辑器之神——vim编辑器

    编辑器之神--vim编辑器 一.vi介绍 Vi编辑器是所有Unix及Linux系统下标准的编辑器,类似于windows系统下的notepad(记事本)编辑器,由于在Unix及Linux系统的任何版本, ...

  4. 编辑器之神—Vim 常用快捷键

    以下是 "编辑器之神" - Vim 常用快捷键 . 学好vi, 无论用哪个IDE,只需下载一个vim的插件, 在哪里都可以使用! 前言         Vim 的三种工作模式 vi ...

  5. Linux 编辑器之神 vim 的 IO 存储原理

    坚持思考,就会很酷 故事起因 无意间用 vim 打开了一个 10 G 的文件,改了一行内容,:w 保存了一下,慢的我哟,耗费的时间够泡几杯茶了.这引起了我的好奇,vim 打开和保存究竟做了啥? vim ...

  6. 神之编辑器Emacs 编辑器之神Vim

    来源:开源中国社区 http://www.oschina.net/question/12_15010 在这个蔚蓝色的星球上,流传着两大神器的传说: 据说Emacs是神的编辑器,而Vim是编辑器之神. ...

  7. 编辑器之神——vim编辑器(详细、完整)

    作者:永不落的梦想 作者主页:传送 座右铭:过去属于死神,未来属于自己 本文专栏:Liunx篇      神器使用篇 今日鸡汤:当你想要放弃的时候想想当初为什么坚持到这里 目录 一.vi和vim介绍 ...

  8. 编辑器之神VIM入门

    前言 因为最近装了 WIN10 + Manjaro 双系统,用 Linux 几乎避免不了使用 Vim 编辑器.Vim是从 Vi 发展出来的一个基于命令行的文本编辑器.Vi是"Visual i ...

  9. 编辑器之神Vim总结

    vim常用模式 下面的内容介绍vim的几种常用的模式.在详细介绍之前,我们先建立一个大致的概念:vim包括许多模式,不同模式有不同的功能,如"插入模式"让用户输入:"命令 ...

最新文章

  1. 使用结构体输出员工工资表
  2. [云炬创业学笔记]第一章创业是什么测试4
  3. linux编译安装mysql5.1.x
  4. 还在用ABAP进行SAP产品的二次开发?来了解下这种全新的二次开发理念吧
  5. node+mongoose使用例子
  6. 数据库:SQLServer中GUID用法介绍
  7. 链表的基本应用二及总结
  8. 程序设计导引及在线实践_学院经纬计算学院程序设计基础与实验入选首批国家级一流本科课程...
  9. 韦东山嵌入式Linux三大学习路线
  10. 《史蒂夫·乔布斯传》中文PDF文字版官方传记电子书下载
  11. Remote Desktop Connection Manager (RDCMan)
  12. 新手必备的矢量网络分析仪使用教程
  13. 电线的一些小知识学习一下
  14. WEKA-Instances-从内存中创建数据集
  15. 《了解MIPI-DSI》
  16. Android字体加粗
  17. esp32 采集某个路由器信号强度
  18. 使用AHK减少鼠标和方向键的使用频率,高效编辑
  19. 基于spring boot的毕业设计论文选题申报管理系统设计与实现 毕业论文+项目源码、
  20. 【180928】BlackJack游戏源码

热门文章

  1. ESXi5.5主机如何重启NTP服务
  2. 『HarmonyOS』探索HarmonyOS应用
  3. Sql Server关于权限、角色以及登录名、用户名的总结
  4. js String类型转int类型
  5. python外星人入侵代码提示has no attri_Python中出现AttributeError: 'Ship' object has no attribute 'update'...
  6. 游戏开发中的人工智能(十四):神经网络
  7. 阿拉丁神灯点亮计划 之 500年打磨迭代
  8. 从乡村到城市 (转)
  9. LeetCode官方强推的算法笔记,是有什么与众不同的魅力?
  10. linux cp cannot stat,cp 复制文件夹 文件 cp: cannot stat ` No such file or directory...