啊,是的,Vim,一个功能强大的文本编辑器,无处不在,是一个即使是最聪明的人也不能放弃的地方。你至少得听过一次。或者你可能已经考虑过学习或尝试它。但为什么现在要这么做呢?现在是2020年,不是每个人都已经在用VSCode了吗?让我们一头扎进水里,想一想为什么还会有人学习Vim。
Vim擅长的是导航、进行一些更改和重复该过程。大多数人称之为编辑的过程(不要与写作混为一谈)。大多数开发人员倾向于忽略这一事实,但这是Vim的强大卖点之一。开发人员更倾向于阅读代码,从一个文件跳到另一个文件,在代码中做小切口,并且一直在编写代码。
大多数编辑都在一种模式下工作。您不会显式地从一个切换到另一个。例如,您可以跳到一个文件,然后选择一些行,编辑或复制其中的一些行,同时处于“相同”模式。Vim是不同的,它强烈区分模式。也许这就是为什么大多数人时不时地被困在车里的原因。
是关于什么的?快速浏览代码并输入以下任一模式。
怎么去那里?在正常模式下按i(插入)、a(附加)或其他键。
怎么去那里?在正常模式下按v、V或<;Ctrl-V>;或其他键。
还有其他的模式,一共12种,其中6种是其他6种模式的变体,但我不会在这里详述,你可以在这里阅读。
我要说的是,你不应该关心所有六种模式和它们的变体,作为一个正在考虑是否在2020年使用Vim的人,最重要的是NORMALand INSERT模式。随着你的需求变得越来越强烈,你会探索其他的可能性。
例如,我的救命稻草功能之一就是能够编辑文本列,如下所示:
请注意,沿一列选择字符的速度有多快。请让我知道是否有方法可以在其他编辑器中快速、轻松地完成此操作。要在Vim中执行此操作,请按CTRL+v-现在您可以选择列。下面的命令是8j,让Vim知道我想往下走8行。然后,我按s替换一个字符,然后输入我想要放在那里的字符t。最后,我按了两次Esc键,整个列都被更改了。您可以看到,然后我按了u来撤消我的更改。
我一开始并不知道这一点,头两年我也没有学到这一点。我是在需要的时候学会的。所以,如果你对Vim这个广阔的世界感到不知所措,一切都会随着时间的推移而到来。而这是Vim的另一个伟大之处,那就是不断的学习-你总是可以发现更多做事情的好方法。
不,这不是关于流行的赛车游戏系列,它仍然是关于用Vim编辑文件-这是超级快的。但不要让我愚弄你,当你掌握诀窍时,编辑是超快的,这也可能发生得相当快。大多数流行的网站(Facebook、Twitter、Gmail、Tumblr)都允许您使用h、j、k和l在提要周围移动,这并非巧合。下次试着按j和k来浏览twitter上的tweet。
无需使用鼠标,您可以使用组合键,让您轻松地在文件中跳转。例如:
这些只是你可以在下一次Vimsession中尝试的基本运动技巧。我不会详细介绍如何四处走动,以及如何在开始时禁用箭头键(你可能应该这样做),互联网上有很多关于这方面的资源。我将留给您这两个导航快捷方式供您试用。
此外,您还可以边走边编写命令。在前一节中,我使用8j向下移动了8行。像这样导航是一个典型的例子,但是组合命令是Vim在掌握它的诀窍时的亮点。组合是对已经很快的命令的一个很好的补充,您可以使用它。但是,当然,学习它还有一个更务实的原因。请继续阅读,了解答案。
学习Vim还意味着了解终端和机器中的内容。为了更好地描述我的意思,我将从另一方面着手,并给出一个使用IDE通常要做什么的示例。当你使用类似IDE的体验时,你不需要太多的修补和配置东西,你得到一个主题或插件管理器,你在那里搜索一个插件,clickinstall,瞧,你就得到了对TypeScript的完全支持。
但是,在Vim中设置完整的文本支持有点不同,是的,您有一个插件的海洋和一个巨大的社区。但是您可以深入到配置中,并通过自定义Vim体验来弄清楚一切是如何工作的。一些插件有一些优点,并且可以与其他插件很好地配合使用。有些非常适合您当前的配置,但是您必须自己进行大量的手动配置。通过调优Vim,您可以更多地了解您的开发环境中有什么以及它是如何工作的。
例如,要搜索文本匹配项,我使用ack-gre.后来,我发现使用ag有一种更快的方法。当然,我在AG停了下来,但我的观点是鼓励你更多地了解你的机器上的东西,从而对正在发生的事情有更多的信心和知识,这是一种更快的替代选择,我的意思是鼓励你更多地了解你的机器上的东西,从而对正在发生的事情有更多的信心和知识。学习所有这些让你尽可能地接近金属(机器),而不是从IDE的市场上轻率地安装插件。
如果你想一瞥Vim和Typescript在一起需要做些什么,请查看这篇博客文章。
我想说,最大的骗局之一是学习曲线。很多人对此反感,而且似乎不容易处理。与其完全切换到Vim,不如试着一点一滴地做。要做到这一点,一个很好的方法是在您最喜欢的编辑器中安装Vim模式,并从我在导航部分中向您展示的简单命令开始。
让您最喜欢的编辑器与您保持密切联系是克服Vim缓慢学习曲线的绝佳方法。把它想象成游泳课,你在游泳池边游得很近。任何时候你惊慌失措或不知道如何做某事,你都可以抓住边缘--或者在你的情况下,你选择的编辑。
缺点可能是Vim不是IDE。它不能像你的IDE开箱即用那样做所有花哨的事情。您可以尝试将Vim配置为那样运行,但这不再是Vim了。没有调试器,没有插件市场,没有自动完成。如果你想要一些东西,我们鼓励你搜索一个插件或编写自己的插件。
对我来说,拥有向Vim添加内容的自由是一件好事,但我理解大多数人认为这是一种骗局。我只是觉得玩弄和配置我每天使用的主要工具很有趣。
谢谢你读到这里,我很感激。如果你还在考虑是否开始学习Vim,我建议你试一试。您永远不知道什么时候可能需要它,甚至完全切换到使用Vim。
归根结底,找到合适的编辑器(工具)才能让您做得更好。
如果您喜欢这篇博文,您可以在下面与您的朋友和同事分享:
我发表了一篇关于Vim https://t.co/p6OhsB5AeZ的新博客文章,看看为什么您还应该在🎉👇下面学习Vim。
-尼古拉ĐUza(@nikolalsvk)2020年8月5日。
考虑订阅我的时事通讯,在那里你会免费获得类似的博客帖子,就像这篇文章一样,当它们出来的时候。
作者尼古拉Đ乌扎在诺维萨德生活和工作,通过博客和谈话向人们传播知识。他喜欢主要用JavaScript和Ruby构建令人惊叹的东西。你可以在推特上关注他。
只有当有新内容发布时,我才会给您发送电子邮件。没有垃圾邮件。随时取消订阅。