很久以前,我读过viemu创作者的一篇文章,清除了很多关于vi的误解,并解释了为什么这是一个好主意(以及为什么它在过去的30年里非常受欢迎+).同一个人也有一套很棒的图形备忘单,可以一次教几个基础知识.
我相信.
事实上,我已经相信过去两年了.但我仍然没有强迫自己学习vi作为我的主编,学习曲线太高了.当我开始工作时,可接受但立即的生产力(使用我当前的编辑器)到目前为止已经超越了生产线(使用vi).
有没有人有任何好的建议来帮助我们超越学习曲线?它可以是直接的提示,一些其他教程或文章,无论如何.
编辑:请注意,我知道vi 的vim/gVim,Cream和MacVim(等)变种.我保留了关于vi的问题来引用整个vi家族.感谢所有的好答案.
自去年12月以来,我一直在使用Vim(更确切地说,MacVim).我不回去了:-)
祝他们的Vim掌握好运.
首先,你可能想要拿起Vim; 它具有非常出色的功能集以及vi所具有的一切.
也就是说,学习需要纪律.如果你有一份工作并且负担不起生产力(没有被解雇),我建议你去参加一个周末项目,其唯一目的就是学习编辑.在工作时保持文档的开放性,并保持足够的纪律,不要大吃一惊.随着你学到更多,变得高效并开始依赖肌肉记忆,坚持下去并不困难.
我一直在使用Vim这么久以至于我甚至没有考虑按什么键来搜索,导航或保存.我的手永远不会离开键盘.使用Vim是我在编程生涯中做出的最佳选择之一.
我要做的第一件事就是在你的方向键和你的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最大的好处之一就是它允许你的速度.箭头键也可以防止你真正拥抱模态本质,这在掌握时非常强大.
第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步:获利:)
多年来,我一直是vim的再次使用者(偶尔进行系统管理工作).我刚刚开始花更多时间在其中进行编程工作.我建议也开始使用gvim.它与大多数操作系统环境很好地集成,并且(甚至更好),您可以在需要时回退到鼠标:).
要使用vim,请通过vimtutor(与gVim捆绑)运行一次或两次(大约需要一个小时左右).我不能夸大它对我有多大帮助!特别是关于在文档中移动的不同方式的第一部分,以及如何使用动作命令等记录编辑动作等.之后,事情将变得更加清晰.
然后,开始用它进行快速,轻微的编辑(记事本替换的东西),直到你足够舒服,以快速剪辑进行有用的编辑.然后尝试在其中进行日常工作.你会发现自己很快就会想到其他编辑器中的"重复上一个动作"命令!
您要求提供有助于超越vi文本编辑器学习曲线的好技巧.许多以前的答案建议您不要使用其他编辑器.我认为这是一个很好的建议.从更加图形化的编辑器切换到vi需要改变思维方式.它需要考虑命令而不是视觉变化.
多年来我一直使用vi,并且相信唯一可以提高效率的方法就是记住你经常使用的命令.我这样做的方法是列出最常见的键盘命令.我按功能对这些命令进行了分组和颜色编码,即移动光标,编辑,搜索等.我小心地只包括我不知道的最常用的命令.我们的想法是创建一个快速参考,这也有助于记忆 - 而不是替换可用的帮助屏幕.然后我打印了这个清单并将其粘贴到显示器后面的墙上,这样我就能轻松看到它.(您提到的图形备忘单可能对某些人来说效果更好,但可能是比记忆工具更好的参考源.)
这是关键. 当我对其中一个命令感到满意时,我用铅笔画了一条线.如果我需要的话,我仍然可以看到它,但是我掌握了这个命令对我来说是象征性的.这给了我信心和动力,因为我可以看到定期的进步.一旦我把它们中的大部分划掉了,我就删除了它们并添加了一些较少使用的命令.我继续这个过程,直到我对vi的命令感到满意为止.我知道自己已经达到了这一点,当时我意识到我没有完成任何命令甚至长时间查看列表.
几年前,我需要在UNIX平台上工作,其中vi是唯一可用的编辑器.我在vi上买了一本小口袋参考书,但几乎没用过它.我最后制作了列表并将它们贴在墙上,就像我第一次使用vi时那样.到第一周结束时,即使我使用vi已经五年了,我也很舒服.
你应该从vim(Vi IMproved)开始,特别是它的GUI - gVim.GUI具有菜单,在Windows上您可以使用复制,剪切和粘贴快捷方式,因此您可以立即替换记事本.由于菜单显示快捷方式(vim命令),您可以学到很多东西.
从一开始你应该做的另一件事是根据你的需要配置vi.例如,您可以将vim转换为Python IDE.通过这样做,您将没有理由使用其他编辑器,因为vi将为您提供所需的一切.
对我来说,VI是一个很好的紧急编辑器,但如果还有其他选择,我不想使用它.我意识到这并不适合所有人,我并不是说它很可怕或者其他什么,我个人更喜欢可发现的用户界面.
但是如果你在Linux中做了很多重要事情,你真的必须知道VI!
所以只需学习基础知识:i =插入模式esc =保留插入模式:wq = save并退出:q!=不保存并退出x =当不处于插入模式时,删除字符./ =搜索
这将帮助您完成任何编辑紧急情况.对于那些少数命令(当然还有导航),你无法做任何事情.其余的你可以在你需要的时候"搞定".
保留参考或书籍 - 当您需要使用VI时,您可能无法浏览网页 - 但手册页可能有些用处.
强迫自己不要.掌握爱的途径是.
删除所有其他文本编辑器应用.
然后你将不得不学习它.
强迫自己最简单的方法可能就是从计算机中删除所有其他编辑器.摆脱诱惑:)
每当您执行复杂的编辑任务时,请不断想知道是否有更有效的方法来执行此操作.大多数情况下,当你可以用简单的术语描述的东西(比如"交换文本段落"或"删除注释行中X字符后的所有内容")时,你可以在vim中进行几次击键.
有一些非常有用的关键功能,您将始终使用.我最喜欢的是:
块选择(Ctrl-V)
宏录制(q)
虚拟编辑(:设置ve = all)
常用表达
管道到外部Unix程序
关键映射
自动完成(Cp,Cx Cp,Cx Cf)
操作+动作组合(这非常强大)
向其他程序员询问他们认为最有用的功能,并采用更适合您大脑的功能.窃取其他人的想法.vimrc
(这是我的)
我写了一篇关于Vim高效编辑的指南.你会发现它很有用.
我退后一步,问问自己"为什么我要学习这个编辑器?是什么让我觉得它会比我现在的文本编辑器更快或更好?" 然后学习那些使Vi(m)对您不可或缺的功能.
例如,Vim的CTags集成对我来说是完全不可或缺的.我使用非常非常大的代码库,并且能够在一次击键中跳转到一个函数或类定义(无论它在哪个文件中)是一个绝对杀手级的功能,一个我没有工作的麻烦.
使用.vimrc文件制作可自动执行常见任务的宏.
您的自动驾驶仪编辑选择器将选择能够以最少的精力完成工作的编辑器.一点准备工作将确保编辑器是Vim.:-)
编辑:我已经在在线间隔重复网站flashcarddb.com创建了一个闪卡,以防你感兴趣...
使用间隔重复的闪存卡程序,如mnemosyne,supermemo或anki,将学习和保留新命令纳入日常工作.仅仅使用vim作为日常编辑器是不够的.要掌握它,你必须将这些代码存储在你的头脑中,等待它们是手头任务的理想解决方案.
使用自定义维护.vimrc
编写或编辑vim插件
两件事会大大提高你的vi技能:
实践,实践,实践
Nethack
我的建议:从小做起.首先记住一小组最有用的命令.当我开始vi时,这些是我的前十名:
(Esc)返回命令模式(最重要!)
a在光标后添加文本
A在当前行的末尾添加文本
x删除1个字符
dd删除1行
R替换文本(覆盖)
你要撤消
:Q!(输入)退出而不保存
:w(回车)保存
ZZ保存并退出
只使用这些命令就可以完成很多基本编辑.一旦你感到舒服,其余的看起来并不太难.
顺便说一句,我想补充一点,我曾经依赖vi作为我的主要文本编辑器,但现在只有我必须这样做.在我的例子中,当我使用Emacs或Visual Studio等工具时,效率更高(请注意:"在我的情况下").尝试多种工具,并选择最能帮助您提高工作效率的工具.祝好运!
这听起来很傻,但是玩roguelike游戏(比如Nethack或Angband)是一种有趣的方式,可以轻松使用h
/ j
/ k
/ l
键进行光标导航.