vim文本编辑器
打字速度不够快还不够。 来源: Pixabay
对某些人来说,Vim是过去的美丽遗物。 对于其他人来说,这是每当您需要为合并提交编写消息时都必须逃脱的烦人事情。
今天,我将向您介绍这个风景如画的文本编辑器及其奇妙之处,并向您展示为什么它在首次发布26年后仍在使用它。
vim sample .txt
这样我们就可以开始!
第一步:导航,编辑和退出。
每当在文件上打开Vim时,您可能需要做三件事:
读取文件内容写在文件上退出程序导航
要在Vim上导航文件,请使用字母h,j,k和l。 这些命令在移动光标时称为“ 动作 ”。
键h和l将水平移动光标(一次一个字符),而键j和k垂直移动(一次一行)。 如果您把手放在它们上,则布局排序很有意义。
有些人很难记住哪个键向上和哪个键向下。 专家提示: j sorta看起来像一个向下的箭头。
通常要注意的是,即使有可能,也要使用箭头键在Vim中移动,这是不正确的做法。 习惯使用hjkl ,我保证您会看到速度的显着提高。
重复
一旦确定要一次在文件中移动一个字符或一行,就可以尝试在移动前按一个数字(任何数字,它可能有很多数字)。 您将跳入输入数字的次数。
这在Vim中是一个非常强大的概念:重复。 您是否曾经发现自己编辑文本文件并一遍又一遍地做同样的事情? 特别是一些非常平凡的事情,例如删除引号并将其替换为逗号? Vim可以满足您的要求:只需执行一次该操作,然后按。 重复一遍。 输入一个数字,然后按。 如果您想重复多次,请再次输入。
版
在文本文件中移动并阅读其中的内容是一件好事,但如果我们需要更改其中一些内容怎么办? 不要失望,编辑文件就像按i键一样容易。 这将使您从普通模式进入编辑模式 。
大多数Vim命令仅在正常模式下可用,进入进入编辑模式通常不被重视,应尽可能避免。 但是,当进入编辑模式时,Vim会像其他任何文本编辑器一样(启用了语法高亮显示),使其功能成为典型记事本中可用功能的超集。
要退出编辑模式,请按ESC键。
戒烟
要退出Vim,请进入普通模式,如果要保存更改(写入并退出),请按:wq ,或按q! 如果你想离开而不保存。
更多命令:实际有用的功能。
从终端编辑文件可能会让您看起来像是一个很酷的黑客之类的人,但是为什么我们应该使用这个基于文本的程序而不是旧的Sublime Text? 答案是命令 。
一千种删除文字的方法
是否要删除部分文件? 您可以进入编辑模式并为每个字符按一次退格键。 使用Sublime并按Ctrl + Shift +向左键选择整个单词,然后再删除它并没有真正胜过它。
如果您确实想利用Vim的功能,则应尝试按d键。 按下一次,它什么也不会做。 但是它并不是闲着,实际上是在等待订单。 像我们今天所学的那样传递它的动作( l,5j ,无论您真正感觉如何),它都会吞噬那些字符。 例如,对于任何数字N , dNl将从光标中删除以下N个字母。
引入新的动作e :将光标移动到当前单词的末尾(定义为字母,数字和下划线的串联)。 w :将其移至下一个单词的开头。
因此,如果我有这段文字:
Hello there, general.
而且我的光标位于H上。当我在正常模式下按de时,该行将最终如下所示:
there, general.
在使用dw时,它会像这样:
there, general
请注意,在第二个示例中,'there'之前没有空格。
然后,我们可以按i在删除“ Hello”之后插入一些替换词。 幸运的是,还有一种更流畅的方法: c命令(用于change )。 按c和一个动作与按d + motion + i完全相同。
这看起来似乎更好了,但仍然不能胜任按下shift + home / end并在几次击键中删除整行,对吗? 好吧,我明白了,然后提出$和0的议案。
0:将光标移至当前行的第一个字符。$:将光标移至该行的最后一个字符。
不过,还有一种更快的方法来删除整个当前行: dd。
如果要删除很多行? dxd删除以下x行。
一般有用的Vim命令
到现在为止,vim在编辑代码(以及仅用于代码,我不鼓励您将vim用于其他文本编辑)时的用处应该开始变得明显。
您可能要检查的其他一些命令是:
o和O :分别在当前行上方或下方创建新行,然后进入编辑模式。
v :进入可视模式以选择文本,然后可以对其应用更多命令。
y或Y :分别拉动(复制)所选文本或当前行。
p : 放入 被拉的内容。 注意,拉动将文本移动到Vim保留的特殊缓冲区,而不是通常的剪贴板。 这样,您可以有效地管理两个不同的剪贴板! 您可以像往常一样使用ctrl + shift + v从中粘贴(在编辑模式下),而另一个可以与p (在正常模式下)粘贴。
*:找到当前单词的下一个出现。
编写软件时,我发现自己经常重复复制行以更改一些单词,因此我认为Yp是一个了不起的命令。
结论
我对本次介绍几乎没有涉及,但我希望至少可以说服您自己尝试使用Vim。 如果您使用Java或C ++进行编码,则它可能无法替代IDE,尤其是在使用Frameworks并且自动完成功能对您有所帮助的情况下。 但是,当使用C或Python进行编码时,我通常选择它作为我的首选编辑器。 有时,当我需要快速转换字符串时,从Vim对其进行编辑比使用Bash或Python编写脚本要快。
如果您想了解更多信息,请告诉我,因为我可能会继续回顾一系列。 但我也鼓励您自己尝试该软件,并从外壳运行vimtutor程序(该程序通常预装在Linux和Mac上)。 如果您想在学习完vimtutor之后真正学习如何优化Vim的使用,那么这个非常怪异, 非常棒的网站也可能会让您感兴趣。
我希望您觉得这篇文章有用或有趣,并且像往常一样,无论我说的是什么错误还是您实际上喜欢本教程的某些部分,任何反馈都将受到欢迎。
如果您想学习如何使用三十多个剪贴板进行复制和粘贴, 第2部分已经可用 。
跟随我以获得更多的编程教程,技巧和窍门,并考虑 在Twitter上关注我, 以跟上我的文章。
也可在 2018年10月3日 在 www.datastuff.tech 上 获得 。
vim文本编辑器