2010-08-19 51 views
14

我已经开始使用VIM进行一些编程。
我很有感情到目前为止。一方面我喜欢这个想法,另一方面 - 很难记住一切。如何不放弃VIM?

所以我采取了的学习方法,实际上做的是一些东西(Ruby on rails开发)。
不幸的是没有机会在地狱我更富有成效在其他“传统”的文本编辑器现在。看起来需要相当多的时间才能习惯VIM。

我注意到,我通常不会使用 VIM导航/搜索&替换能力,而是像我在其他编辑器中那样移动。

我努力推自己不使用,除非VIM其他编辑器打开任何东西,所以我可以了解它

但是,老实说,昨天我放弃了,并做了我在GEdit最后20分钟的编码。

更新:我想说我为什么给 - 只是因为我会完成我所需要的更快(这是veeeery迟了,这不是学习VIM的最佳时间)。事实上,我的确喜欢使用VIM。但我总是有“there must a better way of doing this”的感觉,并花了很多时间找到这种方式。

所以我的问题是:如何学习和开始使用VIM更有成效的日常提供,我想在学习时做一些真正的编码?

谢谢,
德米特里。

+2

拥抱Vim或放手吧。 – 2010-08-19 10:41:50

+23

当你处于这个状态时,你可以轻松** ** bold **。 :-) – 2010-08-19 10:43:08

+3

另请参阅http://stackoverflow.com/questions/74625/what-is-the-best-way-to-force-yourself-to-master-vi – 2010-08-19 10:58:43

回答

23

请牢记以下。虽然对手指的速度有物理限制,但对大脑可以执行的处理似乎没有限制。因此,在学习vi(m)的键盘编辑命令和快捷键时,随着编辑速度的提高,打破了使用传统编辑器时遇到的物理速度限制,您将花费大量时间回馈您。例如,要删除vi(m)中接下来的五个单词,请键入5dw并插入50个字符即可输入50i* ESC

在学习很少的命令后,您可以开始使用vi(m):基本移动,插入,更改,删除,打开新行和保存文档。将这些命令结合在一起产生强大的组合。当你掌握这些,你会寻找更多。

打印vi参考表(如thisthisthis more extensive list),并随时保持在您附近。

+1

谢谢。我应该时刻牢记:“你花时间学习vi(m)...的时间会随着时间的推移而得到回报。” 并感谢您的链接! – 2010-08-19 14:24:50

5

为什么?使用最适合你的编辑器,使你成为最有成效的人。我使用vi编辑配置文件,因为它通常是编辑几行然后退出的最快方法。对于严肃的编程,它可以是TextMate(ruby),Emacs(在没有TextMate的平台上是python或ruby)或Xcode(objective-c)。

+3

不要去那里。请。 Vim vs. Emacs太具争议性了。 – 2010-08-19 10:37:55

+7

虽然他有一点。如果在战斗一段时间之后你没有掌握任何东西,为什么会削弱你的生产力?使用您熟悉的工具。我不认为这个答案是Vim/Emacs flamewar的开始。 – musiKk 2010-08-19 10:48:44

+2

@the_drow我不会去那里,我会说无论用途如何,或者两者兼而有之,无论他们看起来最适合什么目的。你提出了争议。 – 2010-08-19 10:51:29

2

我听说过SwaroopCH的Byte Of Vim book很好的东西。还没有到处阅读它自己呢,但他的Python Byte的书绝对是优秀的。

+0

我使用Learning Vi和Vim编辑器这本书很不错。但是我得到的最好的提升是从PeepCode Smash到vim。 – 2010-08-19 15:04:48

6

当它是有道理的使用它开始:在配置文件快速编辑,提交信息,README更新等...

启动速度很难被打败。

当你掌握了一些基础知识的时候,如果你认为“我现在需要做的事情必须有一些东西在里面”,那么请浏览帮助文件。 ...

建立知识逐渐....一步一步...

直到你找到有一天,你做了很多你的VIM编辑或发现你的工具链以及与Vim的整合。

我个人使用哪个效果最好,为的IntelliJ Java的,为的Emacs Clojure的,Vim的于Perl和Ruby脚本,...

+0

然后将其用于一切。然后意识到你只是在你的Microsoft Word文档中放入了一系列'j',因为你试图走下一条线;) – espais 2010-08-19 11:03:24

+0

你发现我:'我必须做些什么来完成我现在需要做的任务' 。这正是我的感受。在编码的时候,我大部分时间都在想这个问题,确实浏览书籍和搜索互联网给我带来了很好的答案。因此,现在进行实际编辑的时间非常庞大,因为我经常试图找出如何更好地完成某种工作。我希望随着时间的推移,我会越来越多地学习。 – 2010-08-19 15:03:58

+0

我认为VimClojure插件很漂亮,但后来我不知道emacs。 – intuited 2010-08-19 15:35:23

4

我努力推自己不要打开除VIM其他编辑什么所以我可以学习它。 但是,说实在的,昨天我放弃了,并在GEdit中做了最后20分钟的编码。

开发人员应该对他工作的环境感到满意。这就是为什么开发人员为开发人员开发了大量编辑器的原因。

只要编辑器按你想要的方式做,你想要的方式,这一切都很好:编辑器只是一个工作的意思。

所以我的问题是:如何在日常学习和开始使用VIM时提供更高的效率,前提是我想在学习时做一些真正的编码?

对于VIM,不幸的是,我的建议是花费数天的时间,而不做任何真正的工作,而只是学习。我花了大约两天的时间才了解高效编辑所需的基本功能。我知道这位编辑会在我的日常工作中发挥重要作用,这就是为什么我在业余时间接近一周的时间内学习VIM和Emacs的原因。

我的前同事还保留a VIM cheat sheet作为他的桌面壁纸。在开始时帮助。

+0

PeepCode的粉碎入VIM让我开始非常快。我现在在学习VI和VIM书附近。但我不确定我是否可以正确学习VIM而不是真正编码。 – 2010-08-19 15:00:40

+0

IMO书籍不帮助以vi/VIM开头。必须学习基本知识:四处移动,选择/复制/粘贴,搜索/替换。在涵盖基础知识之前,我已经使用[nano](http://www.nano-editor.org/)。就我而言,VIM的采用也得益于我对外壳的了解以及我是触摸打字员的事实。帮助系统(':h')也很棒,[Vim Wiki](http://vim.wikia.com/wiki/Vim_Tip​​s_Wiki)非常有帮助。但是如果你在尝试几周后不喜欢VIM,那么不要强迫自己,更好地使用你喜欢的任何东西。 – Dummy00001 2010-08-19 16:24:43

0

VIM需要花费大量的时间来习惯,实际上是生产力与 这是我如何看待它: 假设你的生产率指数是在任何地方1到10之间 当你开始使用其他编辑器,您的工作效率索引就像6,并且可以上升到8. 当你开始使用vim时,你的生产力就像2,但是你可以高达10。这只是需要时间。

7

我使用Gvim(GUI模式)。如果您忘记了某些操作的按键顺序,则可以通过GUI调用它。对于大多数操作,您还可以看到必需的键,以便Gvim也可以作为Vim的快速参考。

当然,不同的文本编辑器不会神奇地让你更有效率。但是如果你喜欢在主流编辑器上使用键盘快捷键,你会喜欢Vim,因为你可以通过几个按键触发相当强大的动作。

我个人不喜欢Vim,我更喜欢主流编辑。但Vim具有REST语法着色功能,并且在大约一周后我发现它完全可用。

+2

GVim的+1。当我使用本地文件时,我经常使用GVim,它允许执行许多类似于其他编辑器(例如剪切/复制和粘贴)的操作,这在一开始就有所帮助。 – dbemerlin 2010-08-19 11:30:33

+0

+1用于为键盘快捷方式提供发现/提醒的菜单。 – 2010-08-23 09:09:53

5

我更静态类型语言的家伙,这是我的故事:

对我来说是VIM在正常模式+ intert模式下,所有关于hjkl运动。我发现它非常高效,我想随时随地都有它。

然后,我开始读时间备忘时间和拾起最佳的姿态记住(从最常用的,以某种方式排序,以更少有用的):bwxgjgkggG,数g*#%f/t/F/T/>><<=v然后用j/k,标记/=/>>

然后我开始写Makefiles到一切,并配置Vim来填充它。所以我做:mak,我正好在发现错误的那一行。

然后发生自动补全(绑定到TAB)。

然后自然语言检查z=

然后我写了一个切换缓冲区的包装。用:e filename.c打开它们,然后做Ctrl + l,Ctrl + h

我有我的配置在这里git的存档可公开获得的: http://github.com/dpc/vim-config

2

了解你的节奏。我想你应该开始掌握基础知识:

  • 模式:命令,正常和视觉
  • 的命令:粘贴,猛拉,删除。

然后你就可以提高这些知识:

  • 学习在命令模式下的一些命令(名单缓冲区,替换)
  • 学会更快地移动(开头的字/行/文件/结束)
  • 搜索/替换的模式
  • 看看人们的vim的配置和定制你的

在做这件事时,请始终在您附近留下vim作弊表。基本命令很容易记住(d为删除,p为粘贴,y为yank,i为插入,a为附加,...)。

逐步学习,保持简单。

+0

我已经将PeepCode的Smash转换为Vim系列并使用其配置(稍作改动)。按照我的节奏学习是一个很好的建议。谢谢。 – 2010-08-19 14:21:01

1

书怎么样?

这些的人是极好的:

  1. Learning the vi and Vim Editors

  2. VI Editor Pocket Reference

而且毕竟,有什么 - 这样你就不会用vim工作。 vim有什么大附加值,值得学习它的难度?

+0

我正在与第一个。对我而言,这不是关于大的附加价值(虽然它非常重要),而是知道与传统上被接受的不同之处。 就像我在C#之后学习Ruby(动态语言)一样。 – 2010-08-19 14:18:33

1

以下是来自Ruby on Rails团队核心成员Yehuda Katz的一些新颖建议,他们最近转向了Vim:尝试使用它,就像任何其他编辑一样,因此您可以保持高效。也许这意味着首先继续使用箭头键或* gasp *鼠标。不要试图一次学习所有的Vim方法。相反,让他们慢慢自然地来。

完整的文章是一个伟大的阅读:

Everyone Who Tried to Convince Me to use Vim was Wrong

此外,尝试在其他应用程序中使用六键绑定。如果你的shell支持vi移动,那就使用它。对于网页浏览,请尝试惊人的Vimperator Firefox plugin

+0

如何在地狱我可以想念他的文章... 感谢您的好建议。目前我使用Visual Studio很多,所以我想我也可以尝试VIM。 当我在VIM中导航时,“常规”对我来说总是感觉很脏。现在我可能需要重新审视它。希望以后它不会成为一种习惯。 – 2010-08-19 15:16:17

+0

http://stackoverflow.com/questions/7579213/is-there-an-interactive-way-to-learn-vim – SergioAraujo 2011-09-28 17:41:20

0

这里是我学会了如何当我切换从Windows到Linux:

1)我打印出来的VIM quick reference card(PDF),并在任何时候都保持它紧挨着我的键盘。

2)我开始使用gvim并使用easy模式(gvim -y或evim)。这使得vim的行为类似于普通的编辑器 - 它总是处于插入模式,并且键被映射为像普通的编辑器(例如用于剪切/复制/粘贴的CTRL-X/C/V)一样工作。您仍然可以使用CTRL-o访问所有vim功能以输入单个Vim命令,然后它将返回到插入模式。

经过一段时间,我厌倦了使用CTRL-o或菜单,并切换到适当的Vim模式。从那以后,我一直没有回头,现在甚至在Windows上都使用Vim。我甚至在FireFox上使用Vimperator

它也值得看看Cream - 这就像类固醇vim简单模式。

如果你发现你使用evim或者cream很舒服,那么无论你使用vim纯粹主义者怎么说,你都不需要一路转换到正常的vim模式。你应该瞄准成为你的工具的主人,而不是他们的奴隶。

1

也许一些复活节彩蛋会帮助你开始右脚。请尝试以下,并享受开放源代码的传统,包含愚蠢:)

  • 遗留的奇妙世界:帮助42
  • :帮助圣 - 圣杯
  • :救命!
  • :帮助地图模式(参见有关表下面的评论:nunmap)
  • :帮助UserGettingBored
  • :帮助勺子
  • :帮助表演赛(阅读说明)
  • :倪!

(了解更多:参观vim.org

3

任何人都希望学习Vim应该检查出Open Vim网站。对于Vim的任何新手来说,这都是一个绝佳的资源。它有一个互动教程和各种沙盒模式,可供编辑玩耍。玩的开心!