编辑器之神-vim的使用技巧

5 篇文章 0 订阅
2 篇文章 0 订阅

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个记录的位置也够你用了吧。

 

待续……

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值