208

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

我相信。

事实上,在过去的 2 年里,我一直深信不疑。但是我仍然没有强迫自己学习 vi 作为我的主要编辑器,学习曲线太高了。当我开始工作时,可接受但即时的生产力(使用我当前的编辑器)到目前为止已经赢得了更高的生产力(使用 vi)。

有没有人有任何好的提示来帮助克服学习曲线?它可以是直截了当的提示、其他教程或文章,等等。

编辑:请注意,我知道 vi 的vim/gVimCreamMacVim(等)变体。我保留了关于 vi 的问题,以提及整个 vi 家族。感谢所有伟大的答案。

更新(2009 年 4 月)

自去年 12 月以来,我在日常职业生涯中一直在使用 Vim(更准确地说是 MacVim)。我不会回去:-)

祝所有掌握 Vim 的人好运。

4

60 回答 60

126

首先,你可能想学习 Vim;它具有非常出色的功能集以及 ​​vi 的所有功能。

也就是说,学习需要纪律。如果你有一份工作并且负担不起生产力的损失(不会被解雇),我建议你参加一个周末项目,其唯一目的是学习编辑器。在你工作时保持它的文档是开放的,并有足够的纪律性,不要退缩。当你学得更多、变得更有效率并开始依赖肌肉记忆时,坚持下去就不会那么难了。

我使用 Vim 已经很长时间了,以至于我什至没有想过要按什么键来搜索、导航或保存。我的手永远不会离开键盘。使用 Vim 是我在编程生涯中做出的最佳选择之一。

于 2008-09-16T17:13:36.043 回答
66

我要做的第一件事是在你的方向键和 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 最大的好处之一是它为您提供的速度。箭头键还阻止您真正拥抱模态性质,掌握时非常强大。

于 2008-09-16T17:13:02.660 回答
40

步骤0:学会触摸打字。说真的 - 如果你的手指不知道键在哪里,那么 vim 会很痛苦。即使你拒绝 vim,触摸打字也会通过让大脑无摩擦地监控链接来改进你的编程(问Steve Yegge )。很多软件可以帮助您改善打字。

第 1 步:使用vimtutor帮助您入门。它在 gvim 中(我认为是在帮助菜单下),或者您可以在命令行中键入“vimtutor”。这将花费您 30-45 分钟的时间,然后您的手指就会了解 vi/vim 的基础知识,并且您应该能够编辑文件而不必将键盘扔出窗口。

第 2 步:到处使用 vim。有关在命令行、Web 浏览器、编写电子邮件、在 IDE 中使用 vim 和 vi 键绑定的提示和链接,请参阅此问题 ……您需要使用 vim 将键绑定嵌入到肌肉记忆中。

第 3 步:了解有关 vim 的更多信息。你只会用 vimtutor 划伤表面。你可以观看这个视频或阅读这篇文章(都关于“有效文本编辑的七个习惯”。你可以 阅读StackOverflow 上 的 提示技巧。你可以浏览vimtips。我的建议是经常学习一点 - 有这么多在那里坚持一口大小的块将是使知识坚持的最佳方式。

第 4 步:利润 :)

于 2009-05-07T13:06:52.807 回答
26

这些年来,我一直是 vim 的时断时续的用户(偶尔做系统管理员工作)。我最近才开始花更多的时间在里面做我的编程工作。我也建议从 gvim 开始。它可以与大多数操作系统环境很好地集成,并且(甚至更好),您可以在需要时回退到鼠标:)。

要开始使用 vim,请运行 vimtutor(与 gVim 捆绑)一次或两次(需要一个小时左右)。我不能夸大它对我的帮助!尤其是关于在文档中移动的不同方式的第一部分,以及如何使用运动命令记录编辑动作等。之后,事情会更加清晰。

然后,开始用它做快速的、小的编辑(记事本替换的东西),直到你足够舒服地在快速剪辑上进行有用的编辑。然后试着在里面做你的日常工作。您很快就会发现自己渴望在其他编辑器中使用“重复上次操作”命令!

于 2008-09-16T17:57:06.670 回答
20

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

多年来,我只使用 vi 并相信提高工作效率的唯一方法就是记住您经常使用的命令。我这样做的方法是列出最常见的键盘命令。我按功能对这些命令进行分组和颜色编码,即移动光标、编辑、搜索等。我小心翼翼地只包括我不知道的最常用的命令。这个想法是创建一个快速参考,同时也有助于记忆——而不是替换可用的帮助屏幕。然后我打印了这份清单,并把它贴在显示器后面的墙上,这样我就可以很容易地看到它。(您提到的图形备忘单可能对某些人更有效,但可能是比记忆工具更好的参考来源。)

这是关键。 当我对其中一个命令感到满意时,我用铅笔画了一条线。如果我需要它,我仍然可以看到它,但对我来说,我已经掌握了这个命令。这给了我信心和动力,因为我可以看到定期的进步。一旦我将它们中的大部分划掉,我就删除了它们并添加了一些更不常用的命令。我继续这个过程,直到我对 vi 的命令感到满意为止。当我意识到我已经很长时间没有划掉任何命令甚至查看列表时,我就知道我已经到了那个地步。

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

于 2008-09-16T17:49:05.553 回答
11

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

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

于 2008-09-16T17:19:24.157 回答
11

对我来说,VI 是一个很好的紧急编辑器,但如果有其他可用的替代品,我不想使用它。我意识到这并不适合所有人,我并不是说这很可怕或任何东西,我只是个人更喜欢可发现的 UI。

但是,如果您在 Linux 中做任何重要的事情,您真的必须了解 VI!

所以只要学习基础知识: i=insert mode esc=leave insert mode :wq=save and quit :q!=don't save and quit x=not in insert mode 时,删除字符。/=搜索

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

尽管保留参考资料或书籍——当你需要使用 VI 时,你可能无法浏览网页——但手册页可能有些用处。

于 2008-09-16T17:19:49.413 回答
11

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

有一些非常有用的关键功能,您将一直使用。我最喜欢的是:

  • 块选择 (Ctrl-V)
  • 微距录制 (q)
  • 虚拟编辑 (:set ve=all)
  • 常用表达
  • 连接到外部 Unix 程序
  • 键映射
  • 自动补全(Cp、Cx Cp、Cx Cf)
  • 操作+动作组合(这个厉害了)

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

于 2008-09-16T18:06:49.190 回答
11

强迫自己不要。掌握爱情的途径是。

于 2008-09-16T18:10:40.990 回答
10

删除所有其他文本编辑器应用程序。

然后你将不得不学习它。

于 2008-09-16T17:09:30.373 回答
9

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

于 2008-09-16T17:11:44.800 回答
9

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

我会退后一步,问自己“我为什么要学习这个编辑器?是什么让我认为它会比我目前的文本编辑器更快或更好?” 然后学习那些使 Vi(m) 对你来说不可或缺的特性。

例如,Vim 的 CTags 集成对我来说是完全不可缺少的。我使用一个非常非常大的代码库,并且能够在一次击键中跳转到函数或类定义(无论它在哪个文件中)是一个绝对杀手级的功能,没有它我很难工作。

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

您的自动驾驶仪编辑器选择器将选择能够以最快的速度完成工作并且花费最少的精力的编辑器。一点准备工作将确保编辑器是 Vim。:-)

于 2008-09-16T18:07:53.260 回答
8

编辑:我已经在在线间隔重复网站 flashcarddb.com 上创建了一个抽认卡集,以防你感兴趣......

  1. 使用间隔重复的闪存卡程序(例如mnemosynesupermemoanki)将学习和保留新命令融入您的日常生活。仅使用 vim 作为您的日常编辑器是不够的。要掌握它,您必须将这些代码存储在您的脑海中,等待它们成为手头任务的理想解决方案的时间。
  2. 维护一个带有自定义的 .vimrc
  3. 编写或编辑 vim 插件
于 2010-08-12T01:56:52.790 回答
6

有两件事可以极大地提高您的 vi 技能:

  1. 练练练练
  2. 网络黑客
于 2008-09-16T18:45:42.733 回答
6

我的建议:从小处着手。只需从记住一小组最有用的命令开始。当我开始 vi 时,这些是我的前 10 名:

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

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

顺便说一句,我想补充一点,我曾经依赖 vi 作为我的主要文本编辑器,但现在只有在我必须这样做的时候。就我而言,当我使用 Emacs 或 Visual Studio 之类的工具时,工作效率会更高(请注意:“就我而言”)。尝试不止一种工具,并选择最能帮助您提高生产力的工具。祝你好运!

于 2008-09-17T01:41:08.663 回答
5

这听起来很傻,但是玩roguelike游戏(例如NethackAngband)是一种有趣的方式来适应使用h/ j/ k/l键进行光标导航。

于 2009-01-18T23:13:34.160 回答
4

写下您在工作中使用当前编辑器时使用的所有快捷方式和功能。然后在星期六早上坐下来,使用谷歌和堆栈溢出来了解如何在 vi 中执行每一项操作。如果您为此使用一张(或多张)纸,这可能是最好的。

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

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

祝你好运!

于 2008-09-16T17:13:13.890 回答
4

不使用X11吗?

$ sudu rm /usr/local/bin/emacs

将您的登录外壳更改为vi

首先,强迫自己使用ed,那么vi会显得很奢侈吗?

在bash中使用vi键绑定?

一直开始使用vi

在我看来,学习编辑与学习语言并没有太大的不同。沉浸效果最好。

我使用vi进行非常快速的编辑,或者当我由于某种原因不能使用X11时,但我住在emacs中。真正强大的编辑器值得花时间学习。

于 2008-09-16T17:19:38.663 回答
3

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

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

我以前这样做是为了熟悉环境/编辑器,而且效果很好。

如果你在写东西时遇到问题,我建议你重做你在学校做过的项目(或者你以前做过的任何其他事情)。这种方法还有一个额外的好处,就是让你看到你已经成为了多少更好的开发人员。:)

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

于 2008-09-16T17:17:34.380 回答
3

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

我发现通过这些工作有助于克服最初的学习障碍。然后将我的 Visual Studio 切换到 ViEMU 帮助我磨练了我的 VI 技能。

此外, http: //vimcasts.org/上的截屏视频也很棒!

于 2008-09-16T17:47:13.607 回答
3

我记得当我第一次开始学习 emacs 时,我已经对 Vim 非常熟悉了,我和你在同一条或相似的船上,我知道如何在另一个编辑器中完成很多工作,所以当我开始使用 emacs,它总是非常缓慢。

但是,我认为您要做的只是吸收一点痛苦,并且始终,始终,始终确保您查找文档以执行您知道可以在以前的编辑器中执行的操作,例如如移动到行尾或选择文本区域。

如果您有当地的 vi 专家可以提出问题,或者如果您像我们公司一样推广结对编程,这也会有所帮助。这样,当您尝试做一些应该很容易的事情时,您可以简单地询问某人,他们会告诉您如何操作,如果您经常使用编辑器几个星期,您不必问更多然后在它成为第二天性之前几次。

如果您没有任何本地资源,网上有很多书籍/教程/参考资料应该能够回答您的大部分问题。

归根结底,学习 Vi 就像学习其他技能一样,没有灵丹妙药,你必须接受这样的事实,在一段时间内,你在 Vi 方面的工作效率会低于你现在的编辑器。只是不断告诉自己,“其他人已经能够学习 Vi,而且我至少和他们一样聪明”(这就是我告诉自己的 :))

于 2008-09-16T18:05:39.100 回答
3

我使用的主要原因vissh(或 Windows 上的 Putty):当您远程登录到 Unix 服务器时,vi它始终可用。当光标键和退格/删除都没有映射时,它可以与 VT100 一起使用。

还有一本像VI Editor Pocket Reference这样的书也有很大帮助。

于 2009-05-13T14:06:04.087 回答
2

每次开始编辑时,您都可以使用原始的 Happy Hacker 键盘(无箭头键)并将您的(无线)鼠标放在遥不可及的地方。

于 2008-09-16T17:24:36.750 回答
2

写出一大串命令/快捷方式很容易,但如果没有练习就很难记住它们。

一次专注于一个新命令。当它变得自动时,比如说在使用一两个星期后,在你的曲目中添加另一个。

你将在短期内花费很长的时间来完成某些事情——这些显然是学习新捷径的机会。

根据我的经验,当我尽量不要一次承担太多时,会更容易。

于 2008-09-16T17:26:57.180 回答
2

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

如果您不能触摸类型并且总是在寻找冒号或 hjkl 或 :%s/foo/bar,请忘记它。打字可能比使用鼠标更快,但如果你不是这种情况,vi 将无法工作。

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

于 2008-09-16T17:28:45.150 回答
2

面对这样一个事实,即它会立即对性能产生影响。当学习一个新工具时,你需要能够做一些你知道如何用其他工具做的事情,这样问题就不是你的问题了。使用新工具一段时间后,它会消失,您将只关注潜在问题。

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

最后,您可以将 vim 与它的一小部分功能一起使用,所以不要被所有的花里胡哨所淹没。想想 Word 中的所有功能,99% 的人使用它们吗?

于 2008-09-16T17:43:37.873 回答
2

ESC gg=G重新缩进代码:retab并将制表符转换为空格或将空格转换为制表符是我迷上 vim 的原因。所以实际上你不需要被迫使用它,你只需要学习它什么时候可以帮助你提高速度。

通过vimtutor

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

在 google 上搜索一个好的 .vimrc ,该 .vimrc 由使用类似于您的工具链的人使用。打开语法高亮。找到一个漂亮的配色方案。

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

于 2008-09-16T18:02:34.927 回答
2

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

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

于 2008-09-16T18:36:24.550 回答
2

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

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

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

我说您肯定想开始使用它进行所有编辑。如果您担心会降低工作效率,那么请花一个周末来练习它(我曾经这样做是为了从 qwerty 切换到 dvorak,并且在周一之前我的工作效率已经足够高,并且之后设法坚持下去)。

这是值得的,你不会回头!

于 2008-09-16T18:37:39.367 回答
1

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

就我而言,Viemu + vimperator 做到了。

于 2008-09-17T01:06:44.720 回答
1

使用便利贴方法:-)

使用 gvim 时,请允许自己使用菜单。阅读有关 vim 的书籍/教程,以便了解基础知识。(插入和命令模式)

选择一些您认为需要的非常酷的功能,并将它们写在便利贴上,然后将它们贴在显示器的下部。

一个好的开始可能是 i, a, o, gg, G, :10 ,/something

还有一些像 yy, dd, p 这样的剪切和粘贴

只需使用 v, V(视觉模式)+ 剪切和粘贴即可

然后,当您了解它们时,将便利贴替换为具有更酷功能的新便利贴,然后重复直到您满意为止。

/约翰

于 2009-01-18T22:25:35.987 回答
1

当我更年轻(11 岁)时,我的家人搬到了德国几年。我能够通过沉浸式学习语言——我别无选择,只能说这种语言(尽管如果我处境艰难,我可以找到会说英语的人)。

我的建议是你也这样做——除非你处于绝对绝望的境地(例如,“好吧,我刚刚删除了 /etc/passwd 并且需要恢复 root”),有意识地决定用 vi 尽力而为。如果您愿意,实际上学习基础知识并不需要那么长时间。

正如其他人所建议的那样,

vim-tutor

可以是一个非常好的起点,就像这张图片一样

于 2009-05-07T13:15:05.890 回答
1

如何强迫自己?我的建议是在一个工作环境中,你必须通过从 Windows telnet/putty 来维护 10 个 unix 盒子。您很快就会意识到,在 *nix 的多个变体上有效地编辑文本的唯一方法是使用我所知道的几乎所有发行版都附带的标准编辑器。此外,当 X11 没有在全新安装时启动时,vi 是你唯一的朋友 :)

于 2009-12-01T18:39:49.383 回答
1

十多年前,我在攻读硕士学位时学习了 vim/vi。当时我唯一可以使用的机器是 Sun Sparc 站(我认为是 Sparc 20)。vi 是它上面唯一的东西。因此,您可以“强制”自己做的一件事就是卸载您拥有的任何其他编辑器!

于 2011-10-14T14:41:48.560 回答
0

删除 notepad.exe 并创建一个名为 notepad 的 vim 快捷方式 :)

或者通过 ssh 或在没有 GUI 的机器上进行所有编码;)

于 2008-09-16T17:12:39.413 回答
0

我尝试保留一个小备忘单或常用 vi 命令的便签。我对我使用的 IDE 做同样的事情。我发现如果我在我的显示器上贴上键盘快捷键或命令的便签,它可以帮助我学习它们。一旦我使用了足够多的快捷方式并认为我记得很清楚,我将删除便笺。

于 2008-09-16T17:12:42.427 回答
0

嗯,这更像是一个生理学问题而不是一个编程问题,但是我能够做我真的不想做的事情的最好方法就是去做,并停止尝试激励自己的方法去做吧。

把它想象成刷牙。你必须激励自己去做吗?不,你只是这样做。

于 2008-09-16T17:15:20.890 回答
0

花十年时间从一台只有 vi 和 emacs 可用的机器上发布到 Usenet(当从 'rn' 调用时,emacs 的启动时间很长很烦人)。

我就是这样学会的。

但是为了更快的方法,我只能建议您只致力于学习它,并花几个小时处理一些源代码。如果您还没有 vim,请安装它 - 它具有出色的语法突出显示功能。

这很值得。我知道我可以在西方世界的任何地方访问几乎任何 Unix 机器,甚至可以通过慢速拨号连接或在无 GUI 的机器上,并在几分钟内完全工作。

于 2008-09-16T17:18:03.520 回答
0

等到您必须在实时环境中调试一个奇怪而奇妙的问题时,您所能做的就是进入命令行。您可能最终不会喜欢 VI,但它会为您节省大量时间,并且您将学习大量技巧来逐步浏览大量(日志)文件。

于 2008-09-16T17:28:39.923 回答
0

打印出您可以在 Internet 上找到的众多 Vi/Vim 备忘单之一,并强迫自己坚持几个星期。

一旦你学习了一些基本的命令,你就会变得非常高效。从那里开始,只要不时停下来学习一个新命令。您无法学习所有 vi 命令。我相信 vi 命令的数量比宇宙中的原子还多!!:)

于 2008-09-16T17:32:22.660 回答
0

最好的办法?将您的终端设置为使用 vi 键绑定。

于 2008-09-16T17:37:46.233 回答
0

我是在开始为 ISP 工作时才学习 vi,在该 ISP 中编辑域的脚本只在终端上打开 vi。我别无选择,只能学习它,但我从未后悔过。

简而言之,将自己置于别无选择,只能学习它的境地。

于 2008-09-16T17:49:11.700 回答
0

我从 O'Reilly 的优秀著作《Learning the vi editor》中学习了 vi 。

于 2008-09-16T17:54:36.803 回答
0

谷歌是你的朋友。保持一个方便的窗口或选项卡,当您需要多次执行某些操作时,例如缩进代码或使用正则表达式进行搜索,查找它。最好的提示站点将变得熟悉,为一些站点添加书签,并可能打印出备忘单。

于 2008-09-16T17:57:21.803 回答
0

我会从argdo开始,一旦你爱上了它,剩下的就很容易了......

于 2008-09-16T18:11:01.990 回答
0

在 vi 爱好者的网站http://nereida.deioc.ull.es/html/vilovers.html上花几个小时 - 与 vi 的热情粉丝一起阅读大量教程、链接等。

于 2008-09-16T18:13:00.800 回答
0

我开始使用 VI 是因为它是几乎所有操作系统(Windows 除外)的默认编辑器。再说一次,我不会在 Windows 上做很多编码,所以这会有所帮助。

如果您想强迫自己使用 *NIX/OSX 系统,只需删除其他编辑器或给它们起别名。剩下的就看你自己了。每次您不使用 VI 编辑文件时,您都不会得到 cookie。

于 2008-09-16T18:19:18.273 回答
0

我用它来编辑 Linux 网络服务器上的文件,而不是使用 FTP。那是9年前的事了,从那以后我就掌握了这些技能。

另一件事是找到可以在 VI 中执行的出色操作,例如全局搜索和替换或更强大的功能,并在需要时使用 VI。

于 2008-09-16T18:27:07.207 回答
0

我发现在现代 vi(vim?)中真正令人困惑的一件事是输入模式,它允许命令模式的某些功能,但不是所有功能。当输入模式完全简化为旧 Solaris vi 所具有的“仅覆盖,不能移动光标”时,我感觉更舒服。真正的 vi 要求您大部分时间都处于命令模式。

话虽如此,现在没有必要学习 vi - emacs 无处不在。:)

于 2008-09-16T18:37:27.387 回答
0

将系统上的每个终端编辑器符号链接到 vim,并将系统上的每个图形编辑器符号链接到一个脚本,该脚本打开一个运行 vim 的新终端窗口。

于 2008-09-16T19:50:22.827 回答
0

我最初的做法是花几分钟时间来复习最基本的东西——移动光标、前后搜索、跳到下一个和上一个单词/句子/段落等。插入、附加。任何你能装在你脑海里的东西。然后,当你有事情要做而不必在接下来的 15 秒内完成时,让自己使用它。

当你对基础相当熟悉时,慢慢学习更高级的命令——尤其是那些利用你以前学习的命令(比如替换接下来的 3 个单词,或删除到下一个搜索目标)

一旦我学会了如何使用,我就喜欢使用 VI。高级命令比大多数 GUI 编辑器似乎提供的要强大得多,而且它无处不在且基于文本,因此可通过 ssh 获得,这一点更好。

于 2008-09-16T22:00:18.023 回答
0

如果你强迫自己使用它几天,你会发现这些命令很快就会成为第二天性。如果您使用的是 posix 系统,我建议您从 BSD 许可的 nvi(经典的 1:1 vi 克隆)开始,然后继续使用 vim。如果您从 vim 开始,很可能您只使用编辑命令的子集,因为它的 INSERT 模式与 GUI 编辑器非常相似。

于 2008-09-17T00:59:59.057 回答
0

我在 Windows 上有 VI,我使用的版本在下面列出,如果我在控制台窗口中,我总是默认使用 VI,那么无论我在什么操作系统上运行,我都知道我可以编辑文件。相反,如果我处于 UI 模式,我会使用 Notepad++ go figure。

NT VI - 版本 0.23 开发者:Tony Andrews 基于程序:Tim Thompson

于 2008-09-17T01:08:09.663 回答
0

玩很多网络黑客。我上大学的时候就是这样,后来发现光标移动也是一样的。尽管此时您可能需要更改设置以使用 vi 样式键盘映射。

于 2008-09-17T01:10:26.897 回答
0

我为自己制作了一张方便的单页备忘单,并用它来学习所有非基本功能。然而,实践是掌握任何东西的唯一途径。

vi 很好,因为它在每台 UNIX 类型的计算机、Mac OS X、Solaris、Linux 上。在 eBay 上找到一个旧的收纳盒?它有 vi。Sun OS 4 怎么样?再次vi。

于 2008-09-17T01:53:13.547 回答
0

虽然我总体上是 vi 的忠实粉丝,尤其是 vim,但有许多强大的编辑器,你不应该觉得你需要使用 vi,或者它在某种程度上是一些绝对完美的编辑器,因为它不是。

如果你不得不强迫自己使用 vi,我会担心你不会觉得使用它有效率。但是,如果您坚持坚持,我可能会确保我在每个编辑任务中都使用 vi。每当我需要做某事并且我不是最好的方法时,我会尝试在vi中找到最佳的(就最小的击键而言)我以非最佳的正常方式完成之后. 然后我会用这个小提示(或者可能只是一个文本文件)做一个便利贴,这样我下次会记住它。

随着时间的推移,您使用 vi 的工作效率会显着提高。

于 2008-09-17T05:08:07.230 回答
0

为什么我不用自己的低摩擦方式来强迫自己呢?:-)

我所做的很简单:我尝试使用 vim(当您未在命令行中指定消息时的默认编辑器)制作我的 git 提交消息。

当然,提交消息太短了,几乎没有帮助。但是当使用它重新编辑消息时git commit --amend会更有帮助。

于 2008-09-19T14:53:02.710 回答
0

做我做的。将它用于一切,并在 freenode 上的 #vim 中闲逛。

于 2008-09-19T23:16:05.870 回答
0

当您需要快速搜索某些内容时,将所有内容放在一个页面上会有所帮助。

于 2008-09-24T21:05:05.893 回答
0

在我 16 岁的时候,我被迫为我的第一份编程工作学习 Vim(老板不会让我们使用其他任何东西),但直到我阅读了Steve Oualline 的 Vim 书,我才取得任何真正的进步——强烈推荐为如果你想认真对待 vim,这是一个起点。

Vim 实际上比某些编程语言需要更多的时间来掌握(功能就是这么复杂)。试图通过打印备忘单来“掌握”Vim 就像试图通过阅读几篇博客文章来掌握 Haskell。准备好投入一些认真的时间,你会得到很好的回报。

于 2009-01-21T07:49:19.733 回答