学习Vim有什么好处?

Tra*_*rap 469 vim editor

作为一名程序员,我在键盘上花了很多时间,而且在过去的12年里,我或多或少都在做.如果有一些我从未习惯过的东西,那么由于一些最常见的代码编辑任务,我在编码过程中会遇到这些烦人且几乎无意识的持续微中断.像从不同的行(或甚至同一行)进行简单的复制和粘贴,或者从当前位置向上或向下移动1或2行所需要的东西需要太多的输入或涉及使用箭头键......它会得到当我想进一步移动时更糟糕 - 我最终使用了鼠标.现在想象一下这个场景,但在笔记本电脑上.

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

我想听听那些已经学会了它的人,以及它最终成为你不能没有的东西之一.

在工作中,我使用VS2008,C#和R#,它们使编辑代码比以往更快更容易,但即便如此,我认为我可以享受不必使用鼠标.

甚至没有箭头键.

Gre*_*ill 250

我已经使用vi和vim已经有20年了,我还在学习新东西.

David Rayner的最佳Vim Tips网站是一个很好的列表,虽然它对你熟悉vim后可能更有用.

我还想提一下ViEmu网站,它有一些关于vi/vim技巧的精彩信息,尤其是文章为什么,哦为什么,这些胡桃头使用vi?(存档版)

  • 我想知道这是好事还是坏事.如果你经常学习新东西,学习曲线真的很陡峭,功能真的隐藏,没有掌握感.无论如何,如果你想要RISC,你用vi而不是vim,对吧? (20认同)
  • 是的,我也一直在学习新的东西.仍然是我最喜欢的编辑. (8认同)
  • @Paperflyer:我有同样的想法.如果你在20年后还没有掌握它,那我很头疼,我不确定自己想要什么 (7认同)
  • 怎么会这样?这意味着虽然它具有如此多的功能,但您可以继续学习,但您不必全部学习它们以提高效率. (7认同)
  • "为什么,哦,为什么那些胡桃头使用vi?" - 良好的联系,尤其是对于这个问题 (5认同)
  • 请注意@ ses的回答.Vim*是我的IDE. (4认同)
  • 个人选择:而不是学习新的东西"如何编辑文本" - 更好地了解基本的东西是真正的工作 - 有一些想法.有很多东西需要学习,需要注意的地方.我认为没有人在代码中频繁更改...通常你在思考时间80%的工作时间,有时只是对代码进行更改.导航很重要 - 这是真正的IDEA所提供的.在这种情况下,我不认为鼠标是邪恶的.最好花一些时间来学习如何制作更好的代码而不是知道100000种编辑文本的方法. (3认同)

Tra*_*irk 185

我可以没有它吗?容易.

它有用吗?是.

学习的原因

  • vi保证存在于所有Unix系统上,并且也存在于大多数Linux系统上.这种广泛的报道使学习它值得.

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

    $ sudo vi

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

你不必是一个主人.

刚刚学习

基础:

  • 如何从命令模式切换到插入模式 i
  • 如何从插入模式切换到命令模式 Esc
  • 如何在命令模式下向上导航 k
  • 如何在命令模式下向下导航 j
  • 如何在命令模式下导航字符 h
  • 如何正确导航角色 l
  • 如何保存文件:wEnter(写)
  • 如何退出而不保存(在命令模式下) :q!Enter
  • 如何撤消 u
  • 如何重做Ctrl+r
  • 您可以组合写入和退出(在命令模式下): :wqEnter

从那里剩下的就会让你更快.

  • [:] [X] [Enter]与[:] [W] [Q] [Enter]相同 (29认同)
  • [Z] [Z]与[:] [X] [Enter]相同 (20认同)
  • 这就是我学习它的方式.从最小的开始,每天建立一点.花点时间学习一种更好的实现任务的方法.查看"高度文本编辑的7种习惯"的灵感. (16认同)

Сыч*_*Сыч 138

经过vimtutor只花了我30分钟,这足以熟悉vim.这值得每一秒.

  • vimtutor正是这个教程.我每天都做了大约10天.第一次它花了我大约30分钟,第二天20,然后是15.到本周末,我的大部分命令都印在我的脑海里.我认为,不是试图记住,重复是接近Vim的最佳方式.每周15分钟一周似乎是一个非常小的价格. (43认同)
  • 一旦我们完成VIMTUTOR怎么办?了解更多内容的下一步是什么? (28认同)
  • @privatehuff:阅读**并申请**[有效文本编辑的七个习惯](http://www.moolenaar.net/habits.html). (3认同)

Rya*_*ght 69

如果您是编辑大量文本的程序员,那么学习A Serious Text Editor非常重要.您学习的哪个严肃文本编辑器并不是非常重要,并且在很大程度上取决于您希望编辑的环境类型.

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

通常认为vim的杀手功能是:A)它几乎可以在你遇到的每个Unix上使用它们B)你的手指很少离开主行,这意味着你将能够非常快速地编辑文本.即使在编辑大文件时,它通常也非常快速和轻量级.

然而,有很多选择.当然,Emacs是最常见的例子,如果你真的深入研究它,它不仅仅是一个高级文本编辑器.在使用vim/gvim多年后,我个人是一个非常高兴的TextMate用户.

切换到其中任何一个的诀窍是强迫自己按照预期的方式使用它们.例如,在vim中,如果您在多步骤过程中手动执行每个步骤,或者如果您使用的是箭头键或鼠标,则可能有更好的方法.停止你正在做的事情并查阅它.

如果你什么都不做,请学习vim和Emacs的基本导航控件,因为它们会弹出到处.例如,您可以在Mac OS的任何文本输入字段,大多数Unix shell,Eclipse等中使用Emacs样式的控件.您可以在less(1)命令中使用vim样式控件,在Slashdot上,在gmail上,等等

玩得开心!

  • 其中有许多人忽略了这一点.几乎任何重复的任务都有一个捷径.开发人员喜欢捷径.正如rbright所说,如果你发现自己反复执行一个步骤,请停下来看看有人已经记录了一个快捷方式. (7认同)
  • 我的编辑不断开玩笑.我应该切换. (3认同)

Ric*_*ich 36

绝对是值得的.

有一个显而易见的原因,任何使用过的人Vi(m)都会告诉你,另外两个人似乎从未提及.

这是显而易见的:

  1. vi 它是无处不在的,非常强大,通过学习它,你可以在几乎所有带键盘的电脑上运用这种能力.

这些是鲜为人知的学习理由Vim:

  1. 它的努力程度不会超出您的预期.通过Vim导师一次(vimtutor在一个shell中,或在Windows中从开始菜单中的Vim文件夹中运行它),你已经很好地掌握了自己的能力,而且从那里开始走下坡路.我达到了可以Vim在工作中使用的水平,在不到一周的午餐时间内不会产生明显的生产力.

  2. 这很有趣!现在编辑文本对我来说就像一个游戏.我积极地享受它 - 当你想到它时,这非常荒谬.

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

  1. 它让人上瘾,你会发现自己希望你可以Vim所有的计算中使用命令,并且在你不能的时候咒骂.幸运的是,至少在某些情况下,有办法 周围 .

  2. 再次,它会上瘾,虽然你不会因为实际使用 而失去任何生产力Vim,但是你会花费数小时寻找好的技巧来让你的Vim体验更好,并在Stack Overflow上阅读Vim标签.

  • 哈哈2号关于"不"学习VIM的原因是如此正确.所有那些我保存文本编辑,我花了阅读文本编辑.荒谬. (12认同)

Nor*_*sey 32

绝对值得学习vim或emacs.它也值得学习触摸式.在这两种情况下,原因都是相同的:您的思维不再被将代码放到屏幕上的机械过程所打断.

至于如何开始,只需潜入并开始使用vim的一切.

PS emacs-vs-vi辩论是无止境的.我已经使用emacs 26年了.如果我今天再次开始我会学习vim因为(a)它变得更好而且(b)有更少的修饰键(Ctl-Alt-V,任何人)和vim用户似乎得到更少的打字伤害.


iso*_*mes 17

通过学习16个键的含义,您可以从vim中获得良好的功能:ijkdbw9:q!%s/nNEsc.你可以只做裸骨i:wqEsc.

您需要知道的前两个键是:Esc将您带到命令模式(您启动的模式),并i带您进入插入模式(正常键入).


为了节省您的需要

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

要保存并退出,您需要

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

为了不节省和强制退出,你需要

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

要了解更多信息,可以vimtutor在命令行运行.这是一个中等长度,结构良好的课程.

超越iEsc:您只能复制或超越某些MS Word功能jkwbd3:%s/nN.

  1. b带你回一个字(Ctrl+ )
  2. w带你前进一个字(Ctrl+ )
  3. 9w 带你前进九个字
  4. db删除前一个单词(Ctrl+ Backspace)
  5. d3b 删除前三个单词
  6. 9j 向下移动9行
  7. / ornithopter Enter您可以到"扑"字,那么下一个实例n,并N分别"扑"的下一个和以前发生.
  8. :%s/confounded/dangfangled/ Enter用"dangfangled"代替每一个"混乱"(如find and replace all在MS Word中)

其中任何一个都应该在"命令"模式(Esc)中运行,而不是插入模式(i).


Gab*_*art 16

我最近切换到VIM,我认为这是值得的.如果你需要"完成任务",你可以始终保持插入模式,其中vim(大多数情况下)就像普通的文本编辑器一样.

我注意到那些没有用来打扰我的东西,比如伸手去拿箭头键,现在感觉不对劲了.它肯定减少了我的手部动作和鼠标的使用,这对人体工程学和生产力都有好处


The*_*rff 12

这取决于你想用VIM做什么.学习它是没有意义的,因为很多人不能没有它.

当我在UNIX环境中工作很多时,没有它我就活不下去.即使VIM没有安装在UNIX机器上,我也至少可以使用vi.您可以始终指望它 - 即使机器不是您的(来自客户).

现在我用C#编程,主要用于Windows环境.我在我的电脑上安装了VIM ......而且我不需要它.

评估您是否真的需要VIM,以及它是否在您的"工作流程"中为您提供支持.试试看.玩它.如果你认为你需要它,坚持下去......学习曲线非常陡峭.


Osc*_*Ryz 10

我学习了vi因为我必须这样做.

我疯狂的老师强迫我们学习使用终端到AIX系统在C中编程.

这是一个真正的痛苦,但值得.

今天,我只使用vi进行快速编辑或小程序.

当我必须去一个项目时,我宁愿使用IDE.在我的情况下,IntelliJ的想法是非常擅长的任务,因为我可以编写几个小时而不用抓住鼠标.

我不知道VS2008有多少快捷方式,但如果它们像Eclipse一样可以被发现,我认为你遇到了麻烦.

如果您不在IDE之外编辑代码并且您的IDE具有良好的快捷方式,那么您最好学习它们,然后去学习vi.

:)


Cra*_*g S 9

我已经使用vi/vim超过25年了.如果你已经知道一些命令行编辑器,那么也许你不需要学习vi/vim.但如果你不熟悉任何其他命令行编辑器,那么值得学习它.只需很少的努力就可以很容易地在vi/vim中高效工作.


Red*_*ing 6

我现在几乎只使用VIM.

我曾经使用Vim进行编辑,使用VS Editor进行调试.这可能看起来有点疯狂,但我发现Vi范式(宏,基于主键的编辑等)提高了我的工作效率,VS中的编辑很有意义.

感谢Viemu,我甚至不用再进行切换了.它还不是完美的解决方案(代码完成有时不像原生vim那样优雅,宏录制也不完美),但它比不断来回切换要好得多.

Vim的学习曲线可能被夸大了.我想一旦你进入它,它是非常直观的.


小智 5

我的工作迫使我拿起vim,很快成为第二天性.现在我的抱怨是关于没有vim仿真或插件的IDE.我注意到esc键已成为我在vim之外的敌人.

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

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