强迫自己掌握vi的最佳方法是什么?[关闭]


205

不久之前,我读了viemu的创建者的文章,澄清了许多关于vi的误解,并解释了为什么它是一个好主意(以及为什么它在过去30多年中非常流行)。同一个人也有大量的图形备忘单,一次可以教一些基础知识。

我相信。

实际上,我已经说服了过去两年。但是我仍然还没有强迫我自己作为主编学习vi,因此学习曲线太高了。当我开始工作时,到目前为止,可以接受但即时的生产率(使用我的当前编辑器)已经赢得了远远更高的生产率(使用vi)。

是否有人有任何好的技巧来帮助您超越学习曲线?它可以是简单的技巧,其他教程或文章,无论如何。

编辑:请注意,我知道vi 的vim / gVimCreamMacVim(等)变体。我将有关vi的问题保留为整个vi系列。感谢您提供的所有出色答案。

更新(2009年4月)

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

祝大家在Vim掌控中万事如意。


14
我学习vim是因为几年前我不知道如何更改默认编辑器。;)
存在,

由于这是对知识吸收程度的衡量,因此,陡峭的学习曲线通常是一件好事,这意味着您正在快速学习。:)
Converter42

就在今天早上,我在vi中苦苦挣扎,浏览Stack Overflow来分散我的注意力,瞧,这已经接近顶部了!得知您仍在使用它,真是太好了,希望我四个月后能穿上鞋子。
Greg Noe


3
顺便提一句:您知道几乎所有东西都可以获得vim插件吗?您可以获取用于firefox的vim插件,以便您所有的文本框都像vim!但是,这更有趣然后有用。有用的(尽管我尚未下载过)是eclipse的vim插件。现在看来很有用!
sixtyfootersdude

Answers:


125

首先,您可能想拿起Vim。它具有vi所具有的所有功能,并且具有极为优越的功能。

也就是说,学习需要纪律。如果您有工作并且负担不起生产力(不被解雇),我建议您参加一个周末项目,其唯一目的是学习编辑器。在工作时,请保持其文档开放,并受到足够的纪律检查,以免被淘汰。随着学习的增加,变得高效并开始依赖于肌肉记忆,坚持下去将不会那么困难。

我使用Vim已有很长时间了,以至于我什至都不考虑要按什么键来搜索,浏览或保存。而且我的手永远不会离开键盘。使用Vim是我在编程生涯中做出的最好选择之一。


15
我在工作中学到了它,我无法避免生产力受到影响。这确实帮助我身边有个不断不断提问的人。寻找一个非常了解vim的人,并与他们成为朋友!快速查看导航键并掌握模式。尝试15分钟即可完成操作。
camflan

4
我同意,坚持下去。一旦被迫使用nano或记事本,您就会知道自己在那里,这会让您发疯!
凯尔·沃尔什

3
在开始和停止使用Vim一年之后,我发现购买Vim书籍并亲自完成学习很有帮助。我也尝试着保持“必须有一种更快的方法来做到这一点”的心态,并不断寻找:help来寻求更好的方法。
JD Frias

2
另外,保留方便使用的功能列表。我使用vim已有5年以上了,但我仍然保留着Tomboy音符,其中包含我想记住要使用的新知识。
卢卡斯·阿曼

65

我要做的第一件事是在箭头键和ins / home / end / pgup / down键上放一张纸或一本书。Vi中不需要这些。

接下来,每当有人告诉您按Escape键时,我都会习惯按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的最大好处之一就是它可以为您提供速度。箭头键还使您无法真正拥抱模态特性,掌握该特性后功能非常强大。


我认为现代Vi / Vim用户不应避免使用光标键。您可能永远不会在没有光标键的系统上使用Vi,因此无需学习避免使用它们,并且它们可以正常工作(这些天)。
tialaramex

24
我将键盘上的Caps-Lock键重新映射为Escape。比ctrl + [还要快!
克里斯·阿特里

我同意避免使用光标键。Vi的移动方法的优点之一是,一旦您习惯了它,便可以适应所有情况(请阅读:在狭窄的笔记本电脑布局中,或在怪异的OS(又称旧Unices或通过怪异的终端)上进行远程会话)
webmat

8
我一直使用光标,直到在.vimrc中禁用了它们:map <Up>“” map <Down>“” map <Right>“” map <Left>“”我的手腕很感谢我摆脱了这个习惯!
约翰·科特林斯基

2
Joey,箭头键确实很有用,但是离开插入模式,导航到您想要的位置并重新输入插入或更改或执行您想要执行的任何模式几乎总是更好的选择。命中逃逸或^ [快于将手移到那儿并向后移动。
亚伦·詹森

39

步骤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:利润:)


2
如果您想获得一定程度的精通,则必须进行触摸输入。但是,如果您真的想精通所有这些计算机知识,那么您当然不需要别人告诉您,您可以轻松地自己弄清楚这一点。=)
sjas 2012年

vimtutor很棒:-)
user454083

掌握vim的方法很平易近人,我会尝试用它来指导我迈向vim的掌握之路。希望我能坚持到底。
YinchaoOnline

26

多年来,我一直是vim的反复使用用户(偶尔进行sys admin工作)。我刚刚开始花更多的时间在其中进行编程工作。我建议也从gvim开始。它与大多数OS环境很好地集成在一起,并且(甚至更好),您可以在需要时退回到鼠标:)。

要开始使用vim,请一次或两次遍历vimtutor(与gVim捆绑在一起)(耗时一个小时左右)。我不能高估这对我有多大帮助!尤其是有关在文档中移动的不同方式的第一部分,以及如何使用运动命令等记录编辑动作的内容。在那之后,事情将变得更加清晰。

然后,开始对其进行快速的次要编辑(记事本替换用的东西),直到您足够舒适地进行快速剪辑后再进行有用的编辑。然后尝试在其中进行日常工作。您会发现自己很快就会在其他编辑器中使用“重复最后一个动作”命令!


您可以通过运行“:set mouse = a”在普通vim中使用鼠标。
Stephen Paulger 09年

19

您要求提供一些好的技巧,以帮助您克服vi文本编辑器上的学习难题。先前的许多答案建议您不要使用其他编辑器。我认为这是个好建议。从更多的图形编辑器切换到vi要求改变思维方式。它需要根据命令而不是视觉上的变化进行思考。

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

这是关键。 当我对其中一个命令感到满意时,我用铅笔在其中划了一条线。如果需要,我仍然可以看到它,但是对我来说,这是我已经掌握了该命令的象征。我看到了定期的进步,这给了我信心和动力。一旦我删除了大多数命令,就将其删除,并添加一些更不常用的命令。我继续执行此过程,直到对vi的命令感到满意为止。当我意识到我很长一段时间都没有交叉任何命令甚至查看清单时,我就知道已经达到了这一点。

几年前,我需要在UNIX平台上工作,而vi是唯一可用的编辑器。我买了关于vi的一本袖珍参考书,但几乎没用过。我最终制作了清单,并将其张贴在墙上,就像我第一次使用vi一样。在第一周结束时,即使使用vi已经五年了,我还是很舒服。


2
我认为这是极好的建议,并且同样适用于学习其他工具,例如IDE,调试器,甚至Excel等。
davidavr

11

对我来说,VI是一个很好的紧急编辑器,但是如果有其他可用的替代方法,我不想使用。我意识到这并不适合所有人,我并不是说这很恐怖,而是我个人更喜欢可发现的UI。

但是,如果您在Linux中做过重要的事情,您真的必须知道VI!

因此,只需学习以下基础知识即可:i =插入模式esc =离开插入模式:wq =保存并退出:q!=不保存并退出x =如果不在插入模式下,请删除字符。/ =搜索

这将使您度过任何编辑紧急情况。这几个命令(当然还有导航)是您无法做的。其余的您可以根据需要“附加”。

不过,请保留参考资料或书籍(当您需要使用VI时,可能无法浏览网络),但手册页可能会有所帮助。


4
:help命令是您首先可以学到的最有用的命令之一-将其内置到编辑器中时,谁需要参考书或网络?
zigdon

2
如果您学习使用:help,则无需参考书。至于“您可能将无法浏览网络”,请熟悉天猫座和链接浏览器。您甚至可以使用它们来浏览文件系统。
转换器


11

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

从一开始就应该做的另一件事是根据需要配置vi。例如,您可以将vim转换为Python IDE。这样,您就不会再使用其他编辑器了,因为vi将为您提供所需的一切。


根据终端模拟器的不同,使用gui也会更快。:)
Arafangion's 2009年


9

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


9

每次执行复杂的编辑任务时,请一直想知道是否存在更有效的方法。大多数情况下,当您可以用简单的术语来描述它(例如“交换文本段落”或“在注释行中的X字符后删除所有内容”)时,只需在Vim中几次击键就可以实现。

有一些关键功能非常有用,您将无时无刻不在使用。我最喜欢的是:

  • 块选择(Ctrl-V)
  • 宏录制(q)
  • 虚拟编辑(:set ve = all)
  • 常用表达
  • 管道到外部Unix程序
  • 按键映射
  • 自动补全(Cp,Cx Cp,Cx Cf)
  • 操作+运动组合(功能强大)

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



8

不久前,我写了一个使用Vim进行有效编辑的指南。您可能会发现它很有帮助。

我退后一分钟,问自己“为什么要学习这个编辑器?是什么让我认为它会比现在的文本编辑器更快或更佳?” 然后学习那些使Vi(m)成为您必不可少的功能。

例如,Vim的CTags集成对我来说是绝对不可或缺的。我使用的代码库非常大,并且一次击键(无论它位于哪个文件中)就可以跳转到函数或类定义,这绝对是一项杀手级功能,如果没有该功能,我将遇到麻烦。

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

您的自动驾驶编辑器选择器将选择能够最快完成工作并花费最少精力的编辑器。进行一些准备工作即可确保编辑器为Vim。:-)


1
链接不再起作用
eugenevd 2014年


6

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

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

仅使用这些命令即可完成许多基本编辑。一旦感到舒适,其余的看起来就不会太困难。

顺便说一句,我想补充一点,我以前依靠vi作为主要的文本编辑器,但现在只有在必须的情况下。就我而言,当我使用Emacs或Visual Studio之类的工具时,生产率会更高(请注意:“就我而言”)。尝试多种工具,然后选择最能帮助您提高生产力的一种工具。祝好运!


ZZ命令在macvim中不起作用
innuendoreplay


4

写下您在工作中使用当前编辑器时使用的所有快捷方式和功能。然后在周六早上坐下来,使用Google和堆栈溢出功能来了解如何在vi中进行上述操作。如果您为此使用一张纸,可能最好。

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

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

祝好运!


4

不使用X11

$ sudu rm /usr/local/bin/emacs

将登录shell更改为vi

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

bash中使用vi键绑定?

一直都在使用vi吗?

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

我使用vi进行真正的快速编辑,或者由于某种原因无法使用X11时,但是我住在emacs中。真正有能力的编辑者值得花时间学习。


3

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

奇怪的是,一开始您会对学习曲线感到沮丧,无法强迫自己在工作中或任何对时间敏感的环境中使用它们。

为了熟悉环境/编辑器,我之前已经这样做过,并且效果很好。

如果您在编写方面遇到问题,建议您重做在学校做过的项目(或之前做过的其他事情)。这种方法的额外好处是可以让您了解您已经成为一名更好的开发人员。:)

编辑:忘记提及您应该完全从控制台执行此操作,以避免任何诱惑使用鼠标!


3

我记得当我刚开始学习emacs时,是在我对Vim感到很熟悉之后,并且和您一样,我知道如何在另一个编辑器中完成很多工作,因此我开始使用emacs时,速度总是很慢。

不过,我认为你必须做的只是吸收了痛苦的一点点,和永远,永远,始终确保您查找的文档做的事情,你知道你可以在你以前的编辑做,这样的例如移至行尾或选择文本区域。

如果您有可以询问的本地vi专家,或者如果您像我们的公司一样,则可以促进结对编程,这也将有所帮助。这样,当您尝试做一些应该很容易的事情时,只需问一个人,他们就会向您展示如何做,如果您定期使用编辑器几个星期,则不必多问然后几次成为第二天性。

如果您没有任何本地资源,那么在线上有很多书籍/教程/参考表应该可以回答您的大多数问题。

最终,学习Vi就像学习其他技能,没有万灵药,而且您将不得不接受这一点,在一段时间内,您的Vi效率将不如当前的编辑器。只是不断告诉自己,“其他人已经能够学习Vi,而且我至少和他们一样聪明”(无论如何我都是这样告诉我的:)



3

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

我发现通过这些工作可以克服最初的学习障碍;然后将Visual Studio切换为ViEMU,可以帮助我提高VI技能。

另外,http://vimcasts.org/上的截屏非常棒!


2

您可以动手操作原始的Happy Hacker键盘之一(无箭头键),并在每次开始编辑时将(无线)鼠标放在触手可及的地方。


2

写出一大堆命令/快捷键很容易,但是没有实践就很难记住它们。

一次只关注一个新命令。当它变为自动时,说一两周后,再添加一个到您的曲目中。

您将花很长的路在短期内完成某些事情-这些是学习新捷径的明显机会。

以我的经验,当我尝试一次不承担太多任务时,会比较容易。


2

我的第一个建议:学会快速打字,而无需看键盘。

如果您无法触摸输入,并且总是在搜寻冒号或hjkl或:%s / foo / bar,请不要理会。键入可能比使用鼠标快,但是如果您不是这种情况,vi将无法正常工作。

但是结合良好的打字技巧,ssh和screen和vi将会很自然。


2

面对这样的事实,它将立即对性能造成影响。在学习新工具时,您需要能够做一些您知道如何与其他工具一起使用的事情,因此问题不关乎您。使用新工具一段时间后,它将消失,您将只关注潜在的问题。

对于像vim之类的东西(正如其他人所说,vim远远优于vi),定期重新阅读和浏览文档很重要。没有它,该接口是完全无法发现的。每次阅读新书时,您都会看到一个功能,并说:“啊哈,这将解决我上周试图解决的问题”,并将其归档在您的大脑中。与随机快捷方式相比​​,与实际问题相关的解决方案更容易记住。

最后,您可以将vim与其功能的很小一部分一起使用,因此不要被所有的烦恼所困扰。想想Word中的所有功能,有99%的人使用它们吗?


2

ESC gg=G重新缩进代码:retab并将制表符转换为空格或将空格转换为制表符,这使我迷上了vim。因此,实际上,您不必被迫使用它,您只需要学习何时可以帮助您提高速度即可。

经历一下vimtutor

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

在google上搜索由使用类似于您的工具链的人使用的良好.vimrc。打开语法突出显示。找到一个不错的配色方案。

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


2

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

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


2

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

然后通过vimtutor运行(:help vimtutorvimtutor在命令行上)。

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

我说您肯定要开始使用它进行所有编辑。如果您担心生产力下降,那么请花一个周末来进行稳固的练习(我曾经这样做是从qwerty切换到dvorak,到周一我的生产力足够高,之后又坚持使用)。

值得付出努力,您不会回头!


1

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

就我而言,Viemu + vimperator可以解决问题。


我使用的是Komodo Edit,它具有内置的vi绑定,因此切换到这些绑定和安装vimperator可以极大地帮助您。现在,如果我只能更改rtorrent ...
熊加米奥夫09年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.