【问题标题】:How not to give up on VIM?如何不放弃VIM?
【发布时间】:2011-04-01 01:21:10
【问题描述】:

我已经开始使用 VIM 进行一些编程。
到目前为止,我有非常复杂的感觉。一方面我确实喜欢这个想法,另一方面 - 很难记住所有内容。

所以我采取了边做边学的方法(用于 Ruby on rails 开发)。
不幸的是,我现在没有机会像在其他“常规”文本编辑器中一样更有效率。而且似乎需要相当长的时间来适应 VIM。

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

我正在努力强迫自己不要在除 VIM 之外的其他编辑器中打开任何东西,以便我可以学习它

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

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

所以我的问题是:如果我想在学习时进行一些真正的编码,我如何才能每天更有效地学习和开始使用 VIM?

谢谢,
德米特里。

【问题讨论】:

  • 在您使用时,请轻松使用粗体。 :-)
  • 这个问题对我来说有点不具体。很明显,要学习 vim,您必须使用它。除了这个问题听起来很像这个:stackoverflow.com/questions/74625/…
  • @Brian,我正在努力拥抱。我不会放手的。 @Donal,我必须为此感到抱歉。我会 :) @Dan,@Sam,谢谢这个问题确实密切相关,但并不完全重复(我问的是如何不放弃它而不是如何学习)。
  • 安装环绕插件并使用ysiw* 之类的组合练习壮胆。实际上不要,您应该等到了解基础知识后再开始使用插件。但这是值得期待的。 __________ 说真的:如果您还没有,请查看visual cheat sheet。这是学习基本命令和动作的好方法。

标签: vim editor


【解决方案1】:

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

【讨论】:

  • 不要去那里。请。 Vim vs. Emacs 太有争议了。
  • 他说得有道理。如果你在与某件事抗争了一段时间后没有掌握窍门,那为什么要削弱你的工作效率呢?使用您喜欢的工具。我不认为这个答案意味着 Vim/Emacs 激战的开始。
  • @the_drow 我不会去那里,我是说使用其中一个或两个,无论它们看起来最适合什么目的。你提出了争议。
  • +1 - 不要陷入Real Programmers 必须使用 Vim 或这个或那个的想法。真正的程序员交付并获得报酬:P
  • 伙计们,我确实喜欢在 VIM 中编码。我的问题是我仍然没有足够的知识来提高工作效率。所以我放弃了,只完成了一件工作,因为那是一个深夜:)(这可能会花费我在 VIM 中的 30% 以上的时间)。
【解决方案2】:

我听说过关于 SwaroopCH 的 Byte Of Vim book 的好消息。我自己还没有开始阅读它,但是他的 Byte Of Python 书绝对是优秀的。

【讨论】:

  • 我用的是学习 Vi 和 Vim 编辑的书,很不错。但我得到的最好的提升是来自 PeepCode Smash Into vim。
【解决方案3】:

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

启动速度难以超越。

当您掌握了基础知识后,如果您认为“其中一定有我现在需要完成的任务”,请查看帮助文件。 ...

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

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

我个人使用效果最好的,IntelliJ 用于 Java,Emacs 用于 clojure,Vim 用于 perl 和 ruby​​ 脚本,...

【讨论】:

  • 然后将它用于一切。然后意识到您只是在 Microsoft Word 文档中添加了一系列“j”,因为您正试图向下一行;)
  • 你发现了我:there must be something in there for the task I need to do now。这正是我的感受。在编码时,我大部分时间都在考虑它,确实浏览书籍和搜索互联网给我带来了很好的答案。所以现在进行实际编辑的时间是巨大的,因为我经常试图找出更好的方法。我希望随着时间的推移我会学到更多。
  • 我觉得 VimClojure 插件很不错,但是我不懂 emacs。
  • @Intuied:我试过了,与nailgun的集成非常棒。 Paredit 是我更喜欢 emacs 的原因
【解决方案4】:

我正在努力让自己不要在除 VIM 之外的其他编辑器中打开任何东西,以便我可以学习它。 但是,老实说,昨天我放弃了,在 GEdit 中完成了最后 20 分钟的编码。

开发者应该对他所使用的环境感到满意。这就是为什么有很多开发者为开发者开发的编辑器。

只要编辑器做你想做的事,按照你想要的方式,一切都很好:编辑器只是做工作的手段。

所以我的问题是:如果我想在学习时进行一些真正的编码,我如何才能每天更有效地学习和开始使用 VIM?

不幸的是,对于 VIM,我的建议是花几天时间不做任何实际工作,而只是简单地学习。我花了大约两天的时间来了解高效编辑所需的基本功能。我知道编辑器会在我的日常工作中发挥重要作用,这就是为什么我花了将近一周的空闲时间来学习 VIM 和 Emacs。

我的前同事也将a VIM cheat sheet 作为他的桌面壁纸。一开始就有帮助。

【讨论】:

  • PeepCode 的 Smash Into VIM 让我快速入门。我现在把学习 VI 和 VIM 书放在我身边。但我不确定我是否可以正确学习 VIM 而不是真正的编码。
  • IMO 书籍无助于从 vi/VIM 开始。必须学习基础知识:四处移动、选择/复制/粘贴、搜索/替换。在涵盖基础知识之前,我一直使用nano。就我而言,VIM 的采用也得益于我对 shell 的了解以及我是一名打字员这一事实。帮助系统 (:h) 也非常好,Vim Wiki 非常有帮助。但是,如果您在尝试了几周后仍不喜欢 VIM,那么请不要强迫自己,使用您更喜欢的任何东西。
【解决方案5】:

vim 需要很多时间来适应并真正提高效率 这就是我的看法: 假设您的生产力指数在 1 到 10 之间 当您开始使用其他编辑器时,您的生产力指数就像 6,并且可以上升到 8。 当你开始使用 vim 时,你的工作效率是 2,但你可以高达 10。这只是需要时间。

【讨论】:

    【解决方案6】:

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

    当然,不同的文本编辑器不会神奇地提高您的工作效率。但是如果你喜欢在主流编辑器上使用键盘快捷键,你会喜欢 Vim,因为你可以通过几次击键来触发相当强大的操作。

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

    【讨论】:

    • GVim +1。当我处理本地文件时,我经常使用 GVim,它允许执行许多类似于其他编辑器的操作(例如剪切/复制和粘贴),这在开始时很有帮助。
    • +1 用于为键盘快捷键提供发现/提醒的菜单。
    【解决方案7】:

    这可能会有所帮助:Why, oh WHY, do those #?@! nutheads use vi?

    【讨论】:

    • 很棒的文章。谢谢。如果我以前读过,我不会放弃。现在我有更多的精力再次拥抱 VIM :)
    【解决方案8】:

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

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

    打印一张 vi 参考表(如 thisthisthis more extensive list),并始终将其放在您身边。

    【讨论】:

    • 谢谢。我应该永远记住the time you invest in learning vi(m) .... will be paid back handsomely over time。并感谢您的链接!
    【解决方案9】:

    我更喜欢静态类型语言,这是我的故事:

    对我来说,VIM 就是 hjkl 在正常模式 + 内部模式下的移动。我发现它非常高效,以至于我想随时随地拥有它。

    然后我开始不时阅读备忘单并挑选最好的手势来记住(不知何故从最常用到不太有用的手势排序):bwxgjgk, gg, G, 号码g, *, #, %, f/t, @/@9876543336@/F/@9876543376@/@987654376 987654339@, <<, =, v 然后标记j/k, <</=/>>

    然后我开始为所有内容编写 Makefiles 并配置 Vim 来实现它。所以我做了:mak,我就在发现错误的那一行。

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

    然后自然语言检查z=

    然后我编写了一个用于切换缓冲区的包装器。使用:e filename.c 打开它们,然后执行Ctrl+lCtrl+h

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

    【讨论】:

      【解决方案10】:

      按照自己的节奏学习。我认为你应该开始掌握基础知识:

      • 模式:命令、普通和可视
      • 命令:粘贴、拉拽、删除。

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

      • 在命令模式下学习一些有用的命令(列出缓冲区、替换)
      • 学会更快地移动(单词/行/文件的开头/结尾)
      • 搜索/替换模式
      • 查看人们的 vim 配置并自定义您的

      在执行此操作时,请始终将 vim 备忘单放在身边。基本命令很容易记住(d 表示删除,p 表示粘贴,y 表示 yank,i 表示插入,a 表示追加,...)。

      循序渐进地学习,保持简单。

      【讨论】:

      • 我已经获得了 PeepCode 的 Smash into Vim 系列并使用了它的配置(略有改动)。按照我的节奏学习是个好建议。谢谢。
      【解决方案11】:

      书呢?

      这些都很棒:

      1. Learning the vi and Vim Editors

      2. VI Editor Pocket Reference

      毕竟,那又怎样 - 所以你不使用 vim。 vim 最大的附加值是什么,值得学习它的难度?

      【讨论】:

      • 我正在与第一个合作。对我来说,这不是关于巨大的附加值(尽管它非常重要),而是知道一些与传统接受的不同的东西。就像我在 C# 之后学习 Ruby(动态语言)一样。
      【解决方案12】:

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

      整篇文章值得阅读:

      Everyone Who Tried to Convince Me to use Vim was Wrong

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

      【讨论】:

      • 我怎么会错过他的文章...感谢您的建议。目前我经常使用 Visual Studio,所以我想我也可以尝试使用 VIM。当我在“常规”的 VIM 中导航时,我总是觉得很脏。可能现在我只需要复习一下。希望以后不要成为习惯。
      【解决方案13】:

      以下是我从 Windows 切换到 Linux 时的经验:

      1) 我将 vim quick reference card(pdf) 打印出来并一直放在我的键盘旁边。

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

      一段时间后,我厌倦了一直使用 CTRL-o 或菜单,并切换到正确的 Vim 模式。从那以后我没有回头,现在一切都使用 Vim,即使在 Windows 上也是如此。我什至在 FireFox 上使用 Vimperator

      Cream 也值得一看 - 这就像 vim 的简易模式。

      如果你觉得使用 evim 或 cream 很舒服,那么无论 vim 纯粹主义者怎么说,你没有理由必须一直切换到正常的 vim 模式。您的目标应该是成为工具的主人,而不是它们的奴隶。

      【讨论】:

        【解决方案14】:

        也许一些复活节彩蛋可以帮助您从正确的角度开始。尝试以下方法,享受开源传统的美妙世界和包含愚蠢的遗产:)

        • :帮助 42
        • :帮助圣杯
        • :救命!
        • :help map-modes(参见表格下方关于 :nunmap 的评论)
        • :帮助 UserGettingBored
        • :帮勺
        • :help showmatch(阅读说明)
        • :你好!

        (了解更多:访问vim.org

        【讨论】:

          【解决方案15】:

          任何想要学习 Vim 的人都应该查看Open Vim 网站。对于任何刚接触 Vim 的人来说,它都是一个极好的资源。它有一个交互式教程和各种沙盒模式,可用于使用编辑器。玩得开心!

          【讨论】:

            猜你喜欢
            • 2015-08-13
            • 2012-03-09
            • 2014-08-26
            • 1970-01-01
            • 1970-01-01
            • 2023-03-10
            • 1970-01-01
            • 2020-04-21
            • 1970-01-01
            相关资源
            最近更新 更多