怎么不放弃VIM?

Dmy*_*iak 15 vim editor

我已经开始使用VIM进行一些编程.到目前为止,
我的感情非常复杂.一方面我很喜欢这个想法,另一方面 - 很难记住一切.

所以我采用了学习的方法,而实际上做了一些事情(对于Ruby on rails开发).
不幸的是,我现在没有机会像其他" 常规 "文本编辑器那样提高工作效率.而且似乎需要花费大量时间来适应VIM.

我注意到,我经常不使用 VIM导航/搜索和替换功能,而只是像在其他编辑器中那样移动.

我正在努力推动自己不要在除VIM之外的其他编辑器中打开任何东西,这样我就可以学习它.

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

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

所以我的问题是:如果我想在学习时做一些真正的编码,我怎样才能更有效地学习和开始日常使用VIM?

谢谢,
德米特里.

Dio*_*lis 24

请记住以下几点.虽然手指的速度存在物理限制,但是大脑可以执行的处理似乎没有什么限制.因此,您投入学习vi(m)的键盘编辑命令和快捷方式的时间将随着时间的推移而得到很好的回报,因为您编辑的速度可以提高打破使用传统编辑器时遇到的物理速度限制.例如,要删除vi(m)中的下五个单词,请键入5dw并插入50*个字符50i* ESC.

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

打印VI参照表(像这样,或这个更广泛的列表),并保持它靠近你在任何时候.


Eik*_*ike 7

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

当然,不同的文本编辑器不会神奇地提高你的工作效率.但是如果你想在主流编辑器上使用键盘快捷键,你会喜欢Vim,因为只需几次按键就可以触发相当强大的动作.

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

  • GVim为+1.当我使用本地文件时,我经常使用GVim,它允许做很多类似于其他编辑器的操作(例如剪切/复制和粘贴),这在一开始就有帮助. (2认同)

Pet*_*ans 6

在有意义的时候开始使用它:快速编辑配置文件,提交消息,README更新等等......

启动速度很难被击败.

当你掌握了基础知识时,如果你认为"那里必须有一些东西用于我现在需要做的任务",请浏览帮助文件....

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

直到你发现有一天你在VIM中进行大量编辑或发现你的工具链与Vim很好地集成.

我个人使用最好的方法,IntelliJ for Java,Emacs for clojure,Vim for perl和ruby脚本,......


Jak*_*org 5

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

  • 但他有一点意见.如果你在打了一段时间之后没有掌握一些东西,为什么会削弱你的生产力呢?使用您熟悉的工具.我不认为这个答案是作为Vim/Emacs的战争开始. (7认同)
  • 不要去那里.请.Vim vs. Emacs太具有争议性. (3认同)
  • +1 - 不要陷入[Real Programmers](http://xkcd.com/378/)必须使用Vim或者这个或那个的想法.真正的程序员提供并获得报酬:P (3认同)
  • @the_drow我不会去那里,我说要使用其中之一或两者,无论出于何种目的,他们似乎最适合.你提出了争议. (2认同)

dpc*_*.pw 5

我是更多静态类型语言的人,这是我的故事:

对我来说,VIM完全是关于hjkl正常模式+交互模式的运动.我发现它非常有效,我想随时随地都能拥有它.

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

然后我开始为所有内容编写Makefile,并将Vim配置为impretet.所以我这样做,:mak而且我发现错误就行了.

然后发生了自动完成(绑定到TAB).

然后自然语言检查z=.

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

我在git archive中公开了我的配置:http: //github.com/dpc/vim-config