学习Vim有什么好处?

作为一名程序员,我在键盘上花费了大量的时间,过去的12年里我一直在这样做。如果说在这段时间里有什么事情是我从来没有习惯过的,那就是我在编码时遇到的这些恼人的、几乎是无意识的不断的微中断,这是由于一些最常见的代码编辑任务。比如一个简单的拷贝&从不同的行粘贴(甚至是同一行),或者从当前位置向上或向下移动1或2行需要太多的输入或使用方向键……当我想进一步移动时,情况变得更糟——我最终使用鼠标。现在想象一下同样的场景,只不过是在笔记本电脑上。

我一直在考虑学习VIM,但掌握它所需的时间总是让我想后退一步。

我想听听那些学会了它的人的意见,如果它最终成为你生活中不可或缺的东西之一。

在工作中,我使用VS2008, c#和r#,它们一起使编辑代码比以前更快更容易,但即使如此,我认为我可以享受根本不需要使用鼠标。

甚至连方向键都没有。

268033 次浏览

运行vimtutor只花了我30分钟,这足以熟悉vim。每一秒都是值得的。

我使用vi和vim也有20年了,我还在学习新的东西。

David Rayner的最好的Vim技巧网站是一个很好的列表,不过如果你对vim比较熟悉,它可能会更有用。

我还想提到ViEmu站点,它有一些关于vi / vim技巧的很棒的信息,特别是文章为什么,哦为什么,那些疯子用vi? (存档的版本)

我已经使用vi/vim超过25年了。如果你已经知道一些命令行编辑器,那么你可能不需要学习vi/vim。但是如果您不太了解其他命令行编辑器,那么学习它是值得的。在vi/vim中很容易轻松地提高效率。

我最近改用了VIM,我认为这是值得的。如果你需要“完成一些事情”,你可以一直保持在插入模式,在这种模式下vim就像一个普通的文本编辑器。

我已经注意到,一些以前并不困扰我的事情,比如按方向键,现在感觉不对,太费劲了。它确实减少了我的手部活动和鼠标的使用,这对人体工程学和工作效率都有好处

这取决于您想用VIM做什么。仅仅因为许多人离不开它而学习它是没有意义的。

当我经常在UNIX环境中工作时,我不能没有它。即使VIM没有安装在UNIX机器上,我也至少可以使用vi。您总是可以依赖它——即使这台机器不是您的(来自客户的)。

现在我用c#编程,主要在windows环境下工作。我在我的电脑上安装了VIM…我不需要它

评估您是否真的需要VIM,以及它是否支持您的“工作流程”。试试吧。玩它。如果你认为你需要它,就坚持下去……学习曲线非常陡峭。

首先,良好的vi(m)知识将节省您在被围困的服务器上紧急编辑配置文件的时间。它可以支持延迟的ssh连接。

管理的东西除了vim的输入法将是你最好的防御腕管,如果你有效地使用它与人体工程学键盘。

要了解vim的意义,最好的方法是在家里开始一个休闲的项目,拔掉鼠标插头,用胶带遮住方向键。

阅读帮助

没有它我能活下去吗?很容易。

它有用吗?是的。

学习的理由

  • vi保证在所有Unix系统上存在,并且在大多数Linux系统上也存在。这种广泛的覆盖面让学习变得值得。

  • 使用vi进行sudo编辑要快得多:

    $ sudo vi

  • 此外,GMail使用vi-ish命令来选择&移动邮件!

你不需要成为大师。

只是学习

基础知识:

  • 如何从命令模式切换到插入模式
  • 如何从插入模式切换到命令模式Esc
  • 如何在命令模式k中浏览一行
  • 如何在命令模式j下导航一行
  • 如何导航左字符在命令模式h
  • 如何向右导航字符l
  • 如何保存文件:w输入(写)
  • 如何退出而不保存(在命令模式):q!输入
  • 如何撤销u
  • 如何重做Ctrl+r
  • 你可以结合写入和退出(在命令模式下)::wq输入

剩下的只会让你跑得更快。

vi/vim的两个优点:

  • 它很轻

  • 它几乎安装在每个*NIX系统上

我认为花时间和精力去学习vim绝对是值得的。对我来说,它使得在文本中输入和导航变得如此高效,很难想象回到emacs或ctrl/shift/alt/meta组合键。

不要被vim所有花哨的特性吓倒。一旦你用得够多了,你就会知道哪些命令用得最多,哪些事情可以忘记。

仅在Unix系统上,Vim的惊人的普遍性,以及vi克隆的更惊人的普遍性,就足以使它值得学习。

除此之外,我认为整个vi式的思维方式让我变得更有效率。对于一个不习惯命令模式和插入模式等模式的人来说,仅仅为了插入文本而进入一个模式似乎有点过分。但是,当一个人已经使用Vim几个月,并且已经学习了相当多的技巧和技巧时,Vim似乎是一项值得的资产。

当然,关于Emacs风格的思维,Emacs人群也说了同样的话,但我放弃了学习Emacs,因为Vim更简单,而且为我做了这项工作。

我学vi是因为我必须学。

我那疯狂的老师强迫我们学习用C语言在AIX系统上用终端编程。

这真的很痛苦,但值得。

今天,我只在快速编辑或小程序时使用vi。

当我必须去做一个项目时,我宁愿使用IDE。在我的案例中,IntelliJ idea非常适合这个任务,因为我可以在不抓鼠标的情况下编写数小时的代码。

我不知道VS2008有多少快捷方式,但如果它们像Eclipse一样容易被发现,我认为你有麻烦了,去vi吧。

如果你不在IDE外编辑代码,而你的IDE有很好的快捷方式,你最好学习这些,然后,无论如何,去学习vi。

:)

如果你是一个编辑大量文本的程序员,那么学习一个严肃的文本编辑器是很重要的。你学习哪种严肃文本编辑器并不是特别重要,它在很大程度上取决于你期望在其中编辑的环境类型。

原因是这些编辑器经过高度优化,可以执行您将经常执行的各种任务。例如,考虑在每行末尾添加相同的文本位。这在一个严肃的文本编辑器中是微不足道的,但在其他方面却非常麻烦。

通常vim的杀手特性被认为:A)它在你遇到的几乎所有Unix上都可用;B)你的手指很少需要离开主行,这意味着你可以非常非常快地编辑文本。即使在编辑巨大的文件时,它也通常非常快速和轻量级。

然而,还有很多替代方案。Emacs是最常见的例子,当然,如果你深入研究它,它不仅仅是一个高级文本编辑器。在使用vim/gvim多年后,我个人现在是一个非常高兴的TextMate软件用户。

切换到其中任何一种的诀窍是强迫自己按照它们的意图使用它们。例如,在vim中,如果您手动执行一个多步骤过程中的每一步,或者如果您使用方向键或鼠标,那么可能有更好的方法来完成它。停下手头的工作去查一下。

如果不做其他事情,可以学习vim和Emacs的基本导航控件,因为它们会到处弹出。例如,你可以在Mac OS、大多数Unix shell、Eclipse等任何文本输入字段中使用emacs风格的控件。你可以在(1)命令、SlashdotGmail等中使用vim风格的控件。

玩得开心!

我开始喜欢上vi,是因为我看到有人非常熟练地使用vi,以极快的速度进行编辑。你真的可以用它快速编码。我喜欢它的另一个原因是,有时我发现在IDE中鼠标移动一段时间后真的很疼我的手,而vi提供了一个很好的改变。正如其他人所提到的,它几乎总是在unix系统上可用,即使在糟糕的连接上也能很好地工作。

我没有看到有人提到的一件事是,了解vi在某些圈子里有“极客信誉”的额外好处。我能想到至少有一些人在看到一个新程序员启动nedit来对文件做一些更改时会暗自发笑。

我想说vim绝对值得学习。我去年夏天开始使用它,现在它是我几乎所有事情的首选编辑器(java是一个扩展,但当我不需要广泛的分析支持时是可行的)。正如每个人都已经肯定的那样,这是一个非常有效的工具。< br > < br > 不管怎样,我只从图解教程那里学到了vim功能的一个相当小的子集(花了一两天),从在这里(长读)那里学到了一些零碎的东西,以及搜索和替换功能,我就被迷住了。从那以后,我学到了一些东西,不过是在我空闲的时候。我想说学习曲线在这一点上变平了,但后来,我非常频繁地使用它,周围的其他人也在使用它

无论是vim还是emacs,都绝对值得学习。触摸打字也是值得学习的。在这两种情况下,原因是相同的:您的思考不再被将代码显示在屏幕上的机械过程所打断

至于如何开始,只需开始使用vim进行所有操作。

附:关于emacs和vi的争论是无休止的。我已经使用emacs 26年了。如果我今天重新开始,我会学习vim,因为(a)它变得更好了,(b)修改键更少了(ctrl - alt - v,任何人),vim用户似乎打字受伤少了很多。

不要被命令的数量吓到,我还没有遇到过使用最多几十个命令的人。我发现它是不可或缺的,因为当我想到代码时,我想到的是文本,转到思考鼠标只会把我弄糊涂。最大的技巧,我认为,是一次学习一点,不要犹豫,玩玩-撤销功能是很好的探索它的行为。

此外,如果您深入了解它,vim是可编写脚本的。可能性是无限的。

(是的,所有这些也适用于emacs…)

我对我的textpad和ecplise世界很满意,直到我不得不开始在linux下运行的服务器上工作。需要远程脚本和配置文件的设置!

一开始很难,但现在我可以轻松地设置和调整我的服务器。

我在远程计算机上维护一个非常大的linux项目。不能选择使用Eclipse或类似的基于GTK的IDE。我在那里工作三年了。 我为这个项目设置了vim。

现在我可以在Vim中做任何事情:源代码控制、sql、调试、编译、浏览——非常快速地浏览超过1Gb的源代码。

Visual Studio或Eclipse无法处理所有这些。如果我有选择,我不会把Vim换成其他编辑器或IDE。

我和你的情况一样,作为Vim的初学者,我最初发现它有点令人生畏——学习曲线似乎很陡峭。 从我在短短几个小时里学到的东西来看,我已经觉得没有它我就活不下去了

在这里 a 链接,我已经找到有用的Vim屏幕播放,以向你展示它的能力。

Bram Moolenaar (Vim的仁慈独裁者)在最后一个链接中给出的一个很好的建议是,试图学习每一个命令和函数是没有效率的,只是弄清楚你正在做的事情不是很好,寻找一种方法使它更有效,然后使它成为一种习惯。

您可能希望学习vim,因为您可能对已经使用的编辑器不满意。

你可能想学习vim,因为很多人说它很酷。看看这个问题你有多少答案。

我将提供学习vim的另一个原因。它以其文件的质量和完整性而闻名。因此,只要你设法在帮助查询中插入适当的关键字,你就会在帮助系统中找到大多数问题的答案。

是的:如果你不使用,也不打算在将来使用任何IDE。即使您使用IDE,您也会发现自己要返回到它来做许多事情。在vim中,你可以编写脚本,执行复杂的任务,比如使用命令(有点晦涩,但一旦上手就很容易理解)而不是单独编辑500行。起初我觉得很难,但后来它帮助了我很多。即使是最好的IDE编辑器也缺乏vim的功能。Vim可以很好地与CVS、SVN、make、调试器等一起工作。

不:如果你坚持使用Eclipse或Netbeans这样的ide。或者你觉得像凯特这样的编辑对你来说就足够了。事实上,Kate或notepad++或jEdit有GUI和你可能在vim中错过的功能。例如,Kate的符号查看器或notepad++的巨大菜单栏。

要快速学习vi(m),必须首先了解整个设计。 Vim有一组很棒的光标移动命令,检查一些(X是一个字符,#是一个数字):

j k输入箭头 0美元 w w b b ctrolD crtolU ctrolE ctrolY H m l fX fX tX tX,; % gg G n n mX 'X "

还有很多,要一一列举是很无聊的。其中许多工具都支持在命令之前添加计数,比如用4j向上移动4行。

现在,回到设计中,键入一个命令,如d,用于删除,然后移动光标,该命令应用于从光标位置到移动结束的文本段。例如,H移动到屏幕顶部,dH删除到屏幕顶部,cH更改(替换)到屏幕顶部。

这个设计很强大。它还可以减少或组织你需要学习的内容。 毫无疑问,第一步是学习一些光标移动命令。比如说,一开始是8到10个。那么你就差不多完成了。< / p >

我现在几乎只使用VIM。

我以前使用Vim进行编辑,使用VS Editor进行调试。这可能看起来有点疯狂,但我发现Vi模式(宏,基于home键的编辑等)对我的工作效率有很大的提高,在VS中编辑是很痛苦的。

多亏了Viemu,我甚至不必再做切换了。它还不是完美的解决方案(代码完成有时不像原生vim中那样优雅,宏记录也不完美),但它比不断地来回切换要好得多。

Vim的学习曲线可能被夸大了。我认为一旦你进入它,它是相当直观的。

恕我直言,学习新东西总是值得努力的。我建议你打印一张小抄单,强迫自己日复一日地使用它。

就我个人而言,

我发现许多终端文本编辑器有时无能为力。我会花时间买一个吗?绝对的!我将继续学习一个IDE。当然,最终还是要看个人喜好。

Vim绝对值得学习,以下是部分总结前面所述的主要原因:

  • Vi/Vim可以在大多数unix系统上找到。
  • Vim允许您无需把手从键盘上拿开就可以轻松地编码。
  • 如果你打算在基于unix的系统中配置任何东西,你可能会编辑一些配置文件,因此你会想要学习一个基于终端的编辑器,vim是其中最好的一个(对不起,emacs)。
  • Vim为几乎所有操作系统编译/预编译了二进制文件。没有必要张贴“我需要一个textmate替代[插入操作系统]”,你将有Vim代替!
  • 有很多好的插件可以添加很多功能,比如编辑器内的cvs diffs,尽管其中一些插件需要大量的修改。

另外,如果你喜欢Vim键绑定,也有一些ide在它们的编辑器中包含了Vim绑定,用于简单的命令,例如科摩多编辑

要获得学习Vim的帮助,请尝试在终端中输入'vimtutor'并按照说明进行操作。还有一本书是特别好的黑客Vim

不。学习vim比努力更有价值。

我学过Vim。这并不费劲。现在我绝对喜欢ci”ci(cw V:s/from/to/g

我也把学习vi或vim推迟了很多年。事实上,我曾经取笑那些“vi人”,他们似乎总是在做手指健美操。然后,当我从Windows转向Linux作为我的主要操作系统时,我不得不更加熟悉vim。这是一个学习曲线,现在仍然是。在每天使用vim 9年之后,我仍然发现自己在学习新的、更快的做事方法。我过去认为的“手指有氧操”实际上是一种非常有效的工作方式。与vim之前相比,我现在可以用更少的时间和精力进行更多的代码开发。我相信你知道,vim在每个平台上都可以运行,所以当你需要它的时候,你总是可以使用它。此外,如果你喜欢GUI,大多数平台都有GUI版本。就我个人而言,就像鼠标一样,我不希望看到菜单栏、滚动条等乱七八糟地出现在我的编辑窗口中。

如果你决定尝试一下vim,我强烈推荐O'Reilly的《vi Editor Pocket Reference》一书。它很便宜,如果你只是学习vi (vim),它是很棒的。完整的vim书籍也很好,但口袋参考给你所有的基础知识,快速高效。

是的,一定要花时间学习至少一点'vi'和'vim'。它旅行很好。

当你面对一个你没有安装能力的Unix/Linux/Mac系统时,你永远不会被困住。即使在Windows上(如果你有安装功能)“Vim”是免费且易于安装的。(而不是把你的学习曲线完全投入到像UltraEdit这样的东西上,尽管一个优秀的编辑器可能并不总是适合你……)

学习vi可以帮助你学习其他工具,比如sed和regex:一般来说是可迁移的东西。

另外,如果你想成为一个真正的极客,你只需要知道'vi/m',否则你看起来就像一个骗子;-)

投资学习VIM(我的首选)或EMACS会有回报。

我建议访问Derek Wyatt的网站,浏览VIM导师,并查看Steve Oualine的PDF书。

与我使用过的其他编辑器相比,Vim可以帮助我更快地移动和编辑。我的工作ide在允许人们做的事情上是非常有限的,并且通常致力于特定的环境。有些任务仍然需要我重新访问IDE(例如调试器,它是IDE的编译部分)。

我的工作迫使我学习vim,这很快就成为了我的第二天性。现在我抱怨的是没有vim仿真或插件的IDE。我注意到esc键已经成为我在vim之外的敌人。

我确实在Visual Studio中找到了几个vi模拟器:

http://code.google.com/p/vim-visual-studio/

这是值得努力的。

有一个显而易见的原因,任何使用Vi(m)的人都会告诉你,还有另外两个原因,人们似乎从来没有提到过。

这是一个显而易见的例子:

  1. vi是无处不在的,令人难以置信的强大,通过学习它一次,你就能在几乎任何有键盘的计算机上行使这种能力。

下面是学习Vim的不太为人所知的原因:

  1. 这比你想象的要容易得多。运行Vim tutor一次(在shell中vimtutor,或者在Windows中从开始菜单中的Vim文件夹中运行它),你已经很好地走上了通往能力的道路,从那里开始一切都在走下坡路。在不到一周的午餐时间内,我可以在工作中使用Vim而不受任何明显的生产力影响。

  2. 这是< em > < / em >乐趣!编辑文本对我来说就像游戏。我非常喜欢它——仔细想想,这很荒谬。

还有两个不学习Vim的好理由:

  1. 这是令人上瘾的,你会发现自己希望可以在all你的计算中使用Vim命令,并且每当你不能使用时就会诅咒。幸运的是,至少在某些情况下,有方式 得到 周围

  2. 再次,它是令人上瘾的,虽然你不会失去任何生产力实际上使用 Vim,你会浪费几个小时搜索好技巧,使你的Vim体验更好,并阅读Vim标签堆栈溢出。

你可以通过学习16个键的含义来获得vim的良好功能:ijkdbw9:q!%s/nNEsc。你可以用i:wqEsc来完成基本的框架。

你需要知道的前两个键是:Esc带你进入命令模式(你开始的模式),i带你进入插入模式(正常输入)。


为了拯救你需要

  1. 退出输入模式(Esc)
  2. 键入冒号:
  3. 小写类型w然后输入

要保存并退出,你需要这样做

  1. 退出输入模式(Esc)
  2. 键入冒号:
  3. 小写类型wq然后输入

不保存并强制退出,你需要

  1. 退出输入模式(Esc)
  2. 键入冒号:
  3. 小写类型q!然后输入

要了解更多信息,可以在命令行运行vimtutor。这是一节中等长度、结构合理的课。

除了iEsc:你可以复制或超越一些MS Word功能仅用jkwbd3:%s/nN

  1. b带你回到一个单词(Ctrl+)
  2. w带你前进一个单词(Ctrl+)
  3. 9w带你前进9个单词
  4. db删除前面的单词(Ctrl+退格)
  5. d3b删除前面三个单词
  6. 9j向下移动9行
  7. / ornithopter 输入带你到单词“ornithopter”的下一个实例,然后nN分别到“ornithopter”的下一个和前一个出现。
  8. %s/confounded/dangfangled/ 输入将每个“confused”替换为“dangfangled”(如MS Word中的find and replace all)

所有这些都应该在“命令”模式(Esc)下运行,而不是在插入模式(i)下运行。