在Vim变得更好[关闭]


116

我使用Vim已有很长时间了,但是大多数时候我都处于使用插入模式的水平,并且我仍然使用箭头键来移动(!)。

我觉得我没有从我可爱的编辑器中得到最大的收获,特别是在导航(尤其是代码),复制和粘贴以及对现有代码进行其他操作方面。(尽管我对复杂的搜索/替换模式非常满意)。

  • 我应该如何学习更多?
  • 人们会推荐哪些资源?

8
使用箭头键四处移动有什么问题?那就是他们的目的
Vilx-

39
@Vilx,即使在计算机动作游戏中,您也不会移动箭头键!更不用说文本编辑器了……
P Shved

6
@Vilx:键盘上的箭头键在任何种类的导航中都非常不方便。这就是为什么在ViM中使用HJKL的原因,就像在第一人称游戏中使用WASD一样。
Will Vousden

4
WASD在那里,是因为用右手控制鼠标更容易用左手使用它。惯用左手的人使用箭头。而且HJKL太违反直觉了。哪一个移动到哪里?
Vilx-

8
好吧,我认为这与“箭头vs hjkl”无关,因为它是“光标移动vs文本对象”。
Matteo Riva

Answers:



66

以下是一些很棒的截屏视频,它们应该使您对接下来要学习的内容有所了解。也有用于中级和高级主题的视频,但新手实际上是最重要的。

另外,当我感觉自己停滞不前并没有真正学习“ Vim方式”时,我选择在普通模式和插入模式下都禁用箭头键。这迫使您使用ESC到达某个地方,并使您觉得更像Vim。最终,我在插入模式下再次启用了箭头键,但是我几乎从未使用过它们。通常,有更好的出行方式。

map <up> <nop>
map <down> <nop>
map <left> <nop>
map <right> <nop>

特别是

imap <up> <nop>
imap <down> <nop>
imap <left> <nop>
imap <right> <nop>

5
我喜欢禁用箭头键的想法,这是强迫自己停止使用它们的好方法。
伊丹·K

1
这对我来说效果很好,但是前几天非常令人沮丧。一旦您习惯了它,并养成了在插入模式下过分移动的习惯,我建议重新启用imaps。
萨拉(Sarah)2010年

这些截屏真棒。感谢您指出。
Mert Nuhoglu

2
禁用箭头键真是个好主意,我现在正在做。
gorsky

禁用箭头键是基于这样一个假设,即箭头键比hjkl更偏僻。更好的是获得更好的键盘。我使用Kinesis Advantage。即使使用标准键盘,由于使用dvorak,hjkl仍然没有意义。我的意思是:重点不是“不要使用箭头键”,重点是“使用最有效的方法,不要因为学习曲线而逃避效率的提高”。
有限赎罪


16

另外两个提示:

  • 使用Vim编辑所有内容(电子邮件,Web表单,代码等)。当某件事感觉缓慢时,可能有一种更快的方法。:helpgrep是你的朋友。

  • 前往http://vimgolf.com/竞争。这样我已经学到了很多技巧。[ 免责声明:在VimGolf比赛中“失踪”的长时间不承担责任。


2
整洁,我不知道vimgolf!
詹姆斯

1
@Autopulated:添加了免责声明。
Johnsyweb 2011年

2
@Johnsyweb:我真的很想能够对所有东西都使用vim,但是如何呢?在每个Web表单中获取适当的vim克隆将是理想的-因为我发现的所有浏览器插件通常仅实现Vim功能的一小部分随机子集,并重新映射键绑定以适应浏览器仍需要的事实访问某些键映射。
Conrad.Dean 2011年


10

这就是我学习Vim(以及其他事情)的方式。很简单

浏览帮助文档,找到您始终可以执行的命令。例如,删除整个单词。要记住这一点。

现在,下次您发现自己点击“ xxxxx”删除一个单词时,请停止,放回去并使用新命令。如有必要,请查找它。因此,您无需点击“ xxxxxx”,而是返回并点击“ dw”。

一遍又一遍地做,起初会很慢,但最终会坚持下去。

一旦有了该命令,请从顶部开始。查找您始终执行的操作的另一个命令...

您会惊讶于您以这种方式能够很快地掌握新的命令和技术。


7

如建议的那样重新映射/禁用箭头键是强迫自己不要使用它们的好方法。

需要考虑的另一件事:如果根本不愿意按键盘上的Esc键,则可能希望将Caps Lock映射到OS中的Esc键。对我来说,这是非常有用的一步,因为Esc在我的KB上很尴尬,这是另一个使我处于“插入”模式的障碍(因为很难退出)。在大写锁定键上使用Esc键可以使其达到很小的范围,并且可以快速插入和退出插入模式。

要在Vim中学习高级知识,最好的资源是:help,但是要掌握基础知识,您只需要这样做:肌肉记忆比什么都重要。您说您知道搜索。有意识地将其用作导航工具。搜索[/,?]和基于行内char的搜索[f,F,t,T]是Vim nav工具的关键。只需使用它们;结合禁用的光标键,您将立即浏览肌肉记忆。

文字对象。轻松地成为编辑器的最佳功能之一。这是立即有意识地练习的另一件事。“ yiw”,“ dit”等东西是如此强大且快速;单独学习和使用它们会使您感觉像Vim用户。

一旦有了文本对象和基本的导航功能,就可以开始定期从:help进行阅读和学习,并在网上搜寻真棒了的插件。认真地说,您可以使用Vim多年,并且拥有“啊哈!” 偶然地在:help未知的花絮上绊倒了您永远不会知道的。


与其重新映射到Caps Lock,我不建议使用Ctrl-C。这很容易输入,Linux用户也很熟悉。
BandGap 2012年

6

看到这个线程:Vim最有效的快捷方式是什么?

特别是第一个答案。


3
公平地说,作为“第一”答复的作者,我必须说,它不一定是总体上提高您对编辑器的掌握的最佳指南。当您将vi视为一种表达您想要操纵文本的方式,屏幕/终端以及编辑器本身的环境的语言时,它涵盖了许多关于vi可以做什么的基础。但是,其中的许多内容都相当先进。
吉姆·丹尼斯

1
通过阅读答案,我学到的东西不多,我认为阅读文档不会学到!
詹姆斯


3

我应该如何学习更多?

完整阅读vim手册(输入:h;您可以从那里浏览)。这是您了解所有运动和命令的方式。如果您已经了解基础知识并希望进行改进,那将非常有用。

人们会推荐哪些资源?

vim.org,浏览最受欢迎的vim脚本。如果发现感兴趣的内容,请检查它们的来源。或者只是安装并享受它们。该站点包含许多指向脚本的链接,这些脚本可帮助浏览不同语言的源代码。而且在这里找到它们相对容易。

StackOverflow.com也可能会有所帮助


3

我制作这个游戏是为了帮助我的侄子学习,但它只能在Firefox和Chrome浏览器上使用。 http://kikuchiyo.org

现在,它只处理移动并进入插入模式。Beta版本可让您用剑(左侧的“ i”和右侧的“ a”)攻击敌人:P

继续尝试学习Vim,这是值得的!

:)


现在,这是一个好主意!
詹姆斯

更新:该站点现在位于kikuchiyos-vim-game.herokuapp.com
kikuchiyo


2

我仍然使用箭头键来移动(!)。

我没有看到这个问题。

坦白说,您将不得不使用vim和缺少箭头键的键盘的可能性是多少?

您知道,大多数人使用vim是因为它可以完成工作(哦,好吧,因为他们在为他们完成工作时已将其掌握到一个水平),而不是成为精英人士(例如不使用箭头键)。

有关提高您的vim知识的一些建议:

  • 定期在随机位置打开vim帮助并阅读随机的独特功能。这将花费您几分钟。在接下来的X年内,您可能不会使用此功能。但是,如果幸运的话,您会遇到一种情况,您会发现您可以应用有关该功能的知识来完成特定任务。您将再次打开帮助以刷新您的记忆。在实践中多次使用该功能后,它将坚持下去。此时,您的vim知识将得到改善。
  • 使用:helpgrep来挖掘随机的文档位置。如果您需要做一些事情,并且在文档中找到了说明的地方,请不要就此止步。再读一次文档片段。查找关键字。对于每个关键字,使用:helpgrep关键字发现与vim文档其他部分的逻辑链接。

我想我那里有阅读文档的问题是,我发现我不会说没有真正非常有效地学习的东西他们。
詹姆斯

1
如果您的手指碰巧由于其他原因碰巧,使用光标键将光标移动短距离与使用[h],[j],[k],[l]键一样有效。使用任何线性光标移动超过几行或几行都是很糟糕的。通常最好考虑一下您要寻找的内容,并使用/或?直接在vi中表达出来。命令和正则表达式。foo附近的最后一点文字?G?foo [Enter](六次击键)。与“酒吧...一些一线..爆炸在它的1G /条*嘭[Enter]键(大约有十几个按键)...等等?。
吉姆·丹尼斯

尽管箭头键可能比伸手鼠标更有效,但是如果您在键入一系列字符后使用Home-row键进行重新组合,则无需输入任何基本移动键即可进行移动'j','k','l'和向左微移'titch'来获得'h'键。如果您以Vim的方式进行操作,则您的双手应始终更靠近本垒键而不是箭头键。继续练习,您会明白的。:)
kikuchiyo


2

我停止使用箭头键的方式不是禁用它们(我仍然在“插入”模式下使用它们),但是如果您想使用它,请使用小指作为l键,向右滑动食指,然后按一下h。无名指向上(“向上拨”)k键并“向下按下” j键。

因此,手上的四个数字中的第一个(忘了拇指)索引1最左边,而小指最右边。在电话中使用“响起来”一词,用无名指上扬,中指别无选择,只能下沉。

我发现忘记了键的名称(h,j,k,l)也很有帮助。用我发现的方式记住它们并没有一个很好的助记符,并且使用这些键的映射也没有太多。





By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.