很久以前,我读过viemu创作者的一篇文章 ,清除了很多关于vi的误解,并解释了为什么这是一个好主意(以及为什么它在过去的30年里非常受欢迎+)。 同一个人也有一套很棒的图形备忘单 ,可以一次教几个基础知识。

我相信。

事实上,我已经相信过去两年了。 但我仍然没有强迫自己学习vi作为我的主编,学习曲线太高了。 当我开始工作时,可接受但立即的生产力(使用我当前的编辑器)到目前为止已经超越了生产线(使用vi)。

有没有人有任何好的建议来帮助我们超越学习曲线? 它可以是直接的提示,一些其他教程或文章,无论如何。

编辑:请注意,我知道vi的vim / gVimCreamMacVim (等)变种。 我保留了关于vi的问题来引用整个vi家族。 感谢所有的好答案。

更新(2009年4月)

自去年12月以来,我一直在使用Vim(更确切地说,MacVim)。 我不回去了:-)

祝他们的Vim掌握好运。

===============>>#1 票数:124 已采纳

首先,你可能想要拿起Vim; 它具有非常出色的功能集以及vi所具有的一切。

也就是说,学习需要纪律。 如果你有一份工作并且负担不起生产力(没有被解雇),我建议你去参加一个周末项目,其唯一目的就是学习编辑。 在工作时保持文档开放,并保持足够的纪律,不要吝啬。 随着你学到更多,变得高效并开始依赖肌肉记忆,坚持下去并不困难。

我一直在使用Vim这么久以至于我甚至都没想过要按哪些键来搜索,导航或保存。 我的手永远不会离开键盘。 使用Vim是我在编程生涯中做出的最佳选择之一。

===============>>#2 票数:64

我要做的第一件事就是在你的方向键和你的ins / home / end / pgup / down键上放一张纸或一本书。 在Vi中不需要那些。

接下来我会习惯按ctrl + [每当你被告知要逃脱时。 它更快,你不需要把手从键盘上移开。

然后我会看我的截屏视频:

http://www.youtube.com/watch?v=FcpQ7koECgk

http://www.youtube.com/watch?v=c6WCm6z5msk

http://www.youtube.com/watch?v=BPDoI7gflxM

http://www.youtube.com/watch?v=J1_CfIb-3X4

然后,只是练习练习。

编辑避免使用箭头键的原因是它们会降低你的速度。 Vim最大的好处之一就是它允许你的速度。 箭头键也可以防止你真正拥抱模态本质,这在掌握时非常强大。

===============>>#3 票数:37

第0步:学习触摸式。 说真的 - 如果你的手指不知道钥匙在哪里,那么vim会很痛苦。 即使你拒绝vim,触摸打字也会改善你的编程 (请问Steve Yegge )让头脑保持链接无摩擦。 很多 软件可以帮助您改善打字。

第1步:使用vimtutor帮助您入门。 它是在gvim中(在我认为的帮助菜单下)或者你可以在命令行输入'vimtutor'。 这将需要30-45分钟的时间,然后你的手指将知道vi / vim的基础知识,你应该能够编辑文件而不想将键盘推出窗外。

第2步:到处使用vim。 有关在命令行,Web浏览器中使用vim和vi键绑定在IDE中编写电子邮件的提示和链接,请参阅此问题 ...您需要使用vim将键绑定嵌入到您的肌肉记忆中。

第3步:了解有关vim的更多信息。 你只会在vimtutor的表面划伤。 你可以观看这个视频或阅读这篇文章 (关于“有效文本编辑的七个习惯”。你可以阅读有关StackOverflow的 提示技巧 。你可以浏览vimtips 。学习一个通常是我的建议 - 有这么多在那里坚持一口大小的块将是使知识坚持的最佳方式。

第4步:获利:)

===============>>#4 票数:26

多年来,我一直是vim的再次使用者(偶尔进行系统管理工作)。 我刚刚开始花更多时间在其中进行编程工作。 我建议也开始使用gvim。 它与大多数操作系统环境很好地集成,并且(甚至更好),您可以在需要时回退到鼠标:)。

要使用vim,请通过vimtutor (与gVim捆绑)运行一次或两次(大约需要一个小时左右)。 我不能夸大它对我有多大帮助! 特别是关于在文档中移动的不同方式的第一部分,以及如何使用动作命令等记录编辑动作等。之后,事情将变得更加清晰。

然后,开始用它进行快速,轻微的编辑(记事本替换的东西),直到你足够舒服,以快速剪辑进行有用的编辑。 然后尝试在其中进行日常工作。 你会发现自己很快就会想到其他编辑器中的“重复上一个动作”命令!

===============>>#5 票数:19

您要求提供有助于超越vi文本编辑器学习曲线的好技巧。 许多以前的答案建议您不要使用其他编辑器。 我认为这是一个很好的建议。 从更加图形化的编辑器切换到vi需要改变思维方式。 它需要考虑命令而不是视觉变化。

多年来我一直使用vi,并且相信唯一可以提高效率的方法就是记住你经常使用的命令。 我这样做的方法是列出最常见的键盘命令。 我按功能对这些命令进行了分组和颜色编码,即移动光标,编辑,搜索等。我小心地只包括我不知道的最常用的命令。 我们的想法是创建一个快速参考,这也有助于记忆 - 而不是替换可用的帮助屏幕。 然后我打印了这个清单并将其粘贴到显示器后面的墙上,这样我就能轻松看到它。 (您提到的图形备忘单可能对某些人来说效果更好,但可能是比记忆工具更好的参考源。)

这是关键。 当我对其中一个命令感到满意时,我用铅笔画了一条线。 如果我需要的话,我仍然可以看到它,但是我掌握了这个命令对我来说是象征性的。 这给了我信心和动力,因为我可以看到定期的进步。 一旦我把它们中的大部分划掉了,我就删除了它们并添加了一些较少使用的命令。 我继续这个过程,直到我对vi的命令感到满意为止。 我知道自己已经达到了这一点,当时我意识到我没有完成任何命令甚至长时间查看列表。

几年前,我需要在UNIX平台上工作,其中vi是唯一可用的编辑器。 我在vi上买了一本小口袋参考书,但几乎没用过它。 我最后制作了列表并将它们贴在墙上,就像我第一次使用vi时那样。 到第一周结束时,即使我使用vi已经五年了,我也很舒服。

===============>>#6 票数:11

你应该从vim (Vi IMproved)开始,特别是它的GUI - gVim GUI具有菜单,在Windows上您可以使用复制,剪切和粘贴快捷方式,因此您可以立即替换记事本。 由于菜单显示快捷方式(vim命令),您可以学到很多东西。

从一开始你应该做的另一件事是根据你的需要配置vi。 例如,您可以将vim转换为Python IDE 通过这样做,您将没有理由使用其他编辑器,因为vi将为您提供所需的一切。

===============>>#7 票数:11

对我来说VI是一个很好的紧急编辑器,但如果还有其他选择,我不想使用它。 我意识到这并不适合所有人,我并不是说它很可怕或者其他什么,我个人更喜欢可发现的用户界面。

但是如果你在Linux中做了很多重要事情,你真的必须知道VI!

所以只需学习基础知识:i =插入模式esc =保留插入模式:wq = save并退出:q!=不保存并退出x =当不处于插入模式时,删除字符。 / =搜索

这将帮助您完成任何编辑紧急情况。 对于那些少数命令(当然还有导航),你无法做任何事情。 其余的你可以在你需要的时候“搞定”。

保留参考或书籍 - 当您需要使用VI时,您可能无法浏览网页 - 但手册页可能有些用处。

===============>>#8 票数:11

强迫自己不要。 掌握爱的途径是。

===============>>#9 票数:10

删除所有其他文本编辑器应用。

然后你将不得不学习它。

===============>>#10 票数:9

强迫自己最简单的方法可能就是从计算机中删除所有其他编辑器。 摆脱诱惑:)

===============>>#11 票数:9

每当您执行复杂的编辑任务时,请不断想知道是否有更有效的方法来执行此操作。 大多数情况下,当你可以用简单的术语描述的东西(比如“交换文本段落”或“删除注释行中X字符后的所有内容”)时,你可以在vim中进行几次击键。

有一些非常有用的关键功能,您将始终使用。 我最喜欢的是:

  • 块选择(Ctrl-V)
  • 宏录制(q)
  • 虚拟编辑(:设置ve = all)
  • 常用表达
  • 管道到外部Unix程序
  • 关键映射
  • 自动完成(Cp,Cx Cp,Cx Cf)
  • 操作+动作组合(这非常强大)

向其他程序员询问他们认为最有用的功能,并采用更适合您大脑的功能。 窃取其他人的想法.vimrc s( 这是我的

===============>>#12 票数:8

编辑:我已经在在线间隔重复网站flashcarddb.com创建了一个闪卡 ,以防你感兴趣...

  1. 使用间隔重复的闪存卡程序,如mnemosynesupermemoanki ,将学习和保留新命令纳入日常工作。 仅仅使用vim作为日常编辑器是不够的。 要掌握它,你必须将这些代码存储在你的头脑中,等待他们是手头任务的理想解决方案的时间。
  2. 使用自定义维护.vimrc
  3. 编写或编辑vim插件

===============>>#13 票数:8

我写了一篇关于Vim高效编辑的指南。 你会发现它很有用。

我退后一步,问问自己“为什么我要学习这个编辑器?是什么让我觉得它会比我现在的文本编辑器更快或更好?” 然后学习那些使Vi(m)对您不可或缺的功能。

例如,Vim的CTags集成对我来说是完全不可或缺的。 我使用非常非常大的代码库,能够在一次击键中跳转到一个函数或类定义(无论它在哪个文件中)都是一个绝对杀手级的功能,我无法工作。

使用.vimrc文件制作可自动执行常见任务的宏。

您的自动驾驶仪编辑选择器将选择能够以最少的精力完成工作的编辑器。 一点准备工作将确保编辑器是Vim。 :-)

===============>>#14 票数:6

两件事会大大提高你的vi技能:

  1. 实践,实践,实践
  2. Nethack

===============>>#15 票数:6

我的建议:从小做起。 首先记住一小组最有用的命令。 当我开始vi时,这些是我的前十名:

  • (Esc)返回命令模式(最重要!)
  • a在光标后添加文本
  • A在当前行的末尾添加文本
  • x删除1个字符
  • dd删除1行
  • R替换文本(覆盖)
  • 你要撤消
  • :Q! (输入)退出而不保存
  • :w(回车)保存
  • ZZ保存并退出

只使用这些命令就可以完成很多基本编辑。 一旦你感到舒服,其余的看起来并不太难。

顺便说一句,我想补充一点,我曾经依赖vi作为我的主要文本编辑器,但现在只有我必须这样做。 就我而言,当我使用Emacs或Visual Studio等工具时,效率更高(请注意:“在我的情况下”)。 尝试多种工具,并选择最能帮助您提高工作效率的工具。 祝好运!

===============>>#16 票数:5

这听起来很傻,但玩roguelike游戏(如NethackAngband )是一种有趣的方式,可以轻松使用h / j / k / l键进行光标导航。

===============>>#17 票数:4

在工作中使用它时,记下当前编辑器中使用的所有快捷方式和功能。 然后在星期六早上坐下来使用Google和堆栈溢出找出如何在vi中执行每个操作。 如果您使用一张(或多张)纸张,可能效果最好。

现在禁用/删除工作中的其他编辑器,这样您需要花费更长的时间来查找和重新安装它们,而不是查看比较表并在vi中执行 - 即您别无选择。

最后,将您的旧编辑器中的交叉快捷方式列表发布到您博客上的新编辑器。

祝好运!

===============>>#18 票数:4

不要使用X11

$ sudu rm /usr/local/bin/emacs

将您的登录shell更改为vi

首先,强迫自己使用ed ,然后vi看起来像奢侈品?

bash中使用vi键绑定?

刚开始使用vi

在我看来,学习编辑与学习语言并没有太大的不同。 沉浸效果最佳。

我使用vi进行快速编辑,或者当我因某些原因无法使用X11时 ,我生活在emacs中 真正强大的编辑值得花时间学习。

===============>>#19 票数:3

我的建议是提出一些简单的程序并使用VI编写,从头到尾。

可能的情况是,你最初会因为学习曲线而过于沮丧,迫使自己在工作或任何时间敏感的环境中使用它们。

我之前已经完成了这个以熟悉环境/编辑器,并且它运行良好。

如果您在编写要写的内容时遇到问题,我建议您重做在学校中完成的项目(或者您之前完成的任何其他项目)。 这种方法有额外的好处,让你看到你有多少更好的开发人员。 :)

编辑:忘了提到你应该完全从控制台做到这一点,以避免任何使用鼠标的诱惑!

===============>>#20 票数:3

gVIM有一个非常好的教程(开始菜单组中的链接)。

我发现通过这项工作有助于克服最初的学习困境; 然后将我的Visual Studio切换到ViEMU帮助我磨练了我的VI技能。

此外, http://vimcasts.org/上的截屏视频也很棒!

===============>>#21 票数:3

我记得当我第一次开始学习emacs的时候,就在我对Vim已经非常熟悉之后,我和你在同一艘或者类似的船上,在那里我知道如何在另一个编辑器中完成很多工作,所以当我开始使用emacs,它总是非常缓慢。

但是,我认为你要做的只是吸收一点点痛苦,而且总是,总是要确保你查看文档,做一些你知道在以前的编辑器中可以做的事情,比如移动到行尾或选择文本区域。

如果您手头有当地的vi专家,您可以提出问题,或者如果您喜欢我们的公司,那么您也可以提升结对编程。 这样,当你尝试做一些应该很容易的事情时,你可以简单地问一个人,他们会告诉你如何,如果你经常使用编辑器几周,你不应该问更多然后在它成为第二天性之前的几次。

如果您没有任何本地资源,那么网上有大量的书籍/教程/参考表应该可以回答您的大部分问题。

最终,学习Vi就像学习其他技能一样,没有灵丹妙药,你必须接受这一点,一段时间后,你的当前编辑器的效率会降低。 只是不断告诉自己,“其他人已经能够学习Vi,我至少和他们一样聪明”(这就是我告诉自己的:)但是:)

===============>>#22 票数:3

我使用vi主要原因是ssh (或Windows上的Putty):当你远程登录到Unix服务器时, vi始终可用。 当光标键和退格/删除都没有映射时,它适用于VT100。

还有一本像VI Editor Pocket Reference这样的书有很大帮助。

===============>>#23 票数:2

您可以使用原始的Happy Hacker键盘之一(无箭头键),并在每次开始编辑时放置(无线)鼠标。

===============>>#24 票数:2

写出一大堆命令/快捷方式很容易,但如果没有练习,很难记住这些命令/快捷方式。

一次关注一个新命令。 当它变为自动时,比如在使用它一两周后,再添加另一个曲目。

你将花很长的时间在短期内完成某些事情 - 这些是获得新捷径的明显机会。

根据我的经验,当我尝试不立刻承担太多时,这会更容易。

===============>>#25 票数:2

我的头号建议:学习快速打字,无需看键盘。

如果你不能触摸类型,并且总是狩猎和啄食结肠或hjkl或:%s / foo / bar,请忘掉它。 打字可能比使用鼠标更快,但如果你不是这样,vi不会起作用。

但结合良好的打字技巧,ssh和屏幕和vi将是自然的。

===============>>#26 票数:2

面对这样一个事实,它将立即创造性能。 学习新工具时,您需要能够做一些您知道如何使用其他工具的事情,这样问题就不是您的问题了。 使用新工具一段时间后它会消失,你将只关注潜在的问题。

像vim这样的东西(正如其他人所说,vim远远优于vi),重要的是要定期重读和浏览文档。 没有它,界面是完全不可发现的。 随着每一个新的阅读,你会看到一个功能,并说,“啊哈,这将解决我上周试图弄清楚的这个问题”,并将它存档在你的大脑。 与您所拥有的现实问题相关的解决方案比随机快捷方式更容易记住。

最后,你可以使用vim的一小部分功能,所以不要被所有的花里胡哨所淹没。 想想Word中的所有功能,99%的人会使用它们吗?

===============>>#27 票数:2

ESC gg=G重新加入代码,并且:retab将标签转换为空格或空格转换为标签,这是我与vim的联系。 所以实际上你不需要被迫使用它,你只需要知道什么时候它可以帮助你提高你的速度。

通过vimtutor

开始使用vim进行简单编辑,如配置文件或html。 根据需要学习命令。

在google上搜索一个使用类似于你的工具链的人使用的.vimrc。 打开语法高亮显示。 找一个漂亮的配色方案。

学习宏,因为Vim最适合自动化任务和代码段插入,例如将几个单词格式化为复杂的XML标记或将CSV转换为HTML表格。

===============>>#28 票数:2

你可能想要从奶油开始。 Cream将自己描述为vim的“现代配置”。 基本上,它是vim的特殊版本,其外观和感觉与任何其他文本编辑器一样,用于所有实际目的。 但启用“专家模式”,你就拥有了vim的所有功能和行为。

因此,您可以开始使用Cream作为常规文本编辑器,然后尝试“专家模式”,直到您足够舒适地完全切换到vim。

===============>>#29 票数:2

在您使用的所有平台上安装gVim

然后在命令行中运行vimtutor( :help vimtutorvimtutor )。

观看以下讲座并遵循其建议: 有效文本编辑的7个习惯2.0

我说你肯定想开始使用它进行所有编辑。 如果你害怕生产力的损失,那么花一个周末来练习它(我曾经这样做,从qwerty切换到dvorak,并且在周一之前我的生产力足够高,之后设法坚持下去)。

这是值得的努力,你不会回头!

===============>>#30 票数:1

就个人而言,我必须做的是确保我可以在多个应用程序中使用Vim键绑定(或至少足够接近)。 每当我改变编辑器时,必须完全切换我编辑文本的方式,这使得将Vim编辑风格变为肌肉记忆变得非常困难。

就我而言,Viemu + vimperator就是这样做的。

  ask by community wiki translate from so

未解决问题?本站智能推荐:

1回复

一个棘手的VI / VIM重新映射问题

我正在VM上试用Debian,由于某种原因,进入可视块模式的VIM中的(默认)映射是CTRL-SHIFT-V 。 问题是: 我找不到任何文档可以在任何地方重新映射此特定案例,因此欢迎您提出任何建议。
12回复

如何在Docker容器上运行VI?

我已经在主机虚拟机上安装了docker。 现在要使用vi创建文件。 但这向我显示了一个错误:
3回复

关于Vi和Vim编辑器

vi和vim编辑器有什么区别? 我希望在技术上而不是戏剧上有所不同。 如果您举了例子,那么这对我或所有读者都有很大帮助。
3回复

如何在ubuntu中安装没有vim包的vi

我想在我的Ubuntu框中只安装vi。 我不想安装包含vi的完整vim包。 我试图减少我的操作系统的图像大小,包括所有的包,以便我有更多的空间来安装其他包。 我愿意看看其他轻量级文本编辑器的替代方案,但如果我坚持使用vi会更好。
4回复

你能告诉我Vi和Vim之间的关系和差异吗?

我经常在我的实验室看到Vim,但我也知道Vi,但我从来没有机会使用它,我使用谷歌搜索它,但我无法获得一个网站下载Vi。 你能否告诉我Vi和Vim之间的关系和差异,如果可能的话,给我一个下载Vi的网址。 谢谢!
2回复

如何限制VI / VIM中的搜索范围?

查找和替换范围可以限制如下: 我不想用任何其他文本替换我的搜索词,我只是想找到它们。 我尝试了以下方法,但没有帮助: 谢谢你的时间!
2回复

Vi编辑和光标在行尾的位置?

当我使用vi时(我认为默认情况下会在Slackware 13.37上调用elvis),我能够按预期插入文本,但是当我使用ESC x光标移动键l以及$将光标移到最后一个位置时,可以编辑出错别字字母而不是字母,因此迫使我在最后一个字母的左侧插入任何新文本,本质上会迫使输入错误,除非我将所有方式都删除
5回复

我想在Web浏览器中使用类似VI的命令?

我喜欢VI,我正在寻找一种允许我使用VI命令在浏览器(最好是Firefox或Chrome)中输入文本的插件。 它可以节省大量的时间,同时也可以用来写长电子邮件。 任何人都可以想到任何允许我这样做的插件吗? 我对Vimperator( https://addons.mozilla.org/e
1回复

在VI编辑器中按数字排序[重复]

可能重复: 如何在Vim中对数字和文字列进行排序 我必须根据线程ID对以下行进行排序。 当我发出:!sort -n它们会像这样排序: 但是我需要它们像这样排序:
4回复

vi从行的开头删除直到光标

我们如何使用vim从行的开头删除字符直到光标。 比如说,当光标在“w”上时,我们有一个字符串“hello world”。 我们如何从“h”删除到“w”。