什么是最常用的vim命令/按键?

时间:2011-03-23 04:11:32

标签: vim keyboard-shortcuts macvim

我是一个试图从Textmate切换到MacVim的Ruby编程,而且我无法浏览你在VIM中可以做的大量事情以及它们的所有按键。我已经厌倦了“你可以使用'我'来插入文字,或者'a'用于在文字后添加文字,或'A'用于在文字末尾添加文字,或者......”我无法想象每个人都使用所有20个不同的按键来导航文本,10个左右的按键开始添加文本,以及18种方式来直观地选择内部块。或者你呢?

我理想的备忘单是30-40个最常用的按键或命令,每个人每天用来编写代码,以及rubyists每天使用的绝对必要插件和10个最常用的命令。从理论上讲,一旦我拥有它并开始变得像我在Textmate中那样精通VIM,那么我可以开始学习成千上万的其他VIM命令,这些命令会让我更多高效。

或者,我是否完全以错误的方式学习VIM?

10 个答案:

答案 0 :(得分:269)

答案 1 :(得分:19)

答案 2 :(得分:10)

这是一个很棒的cheat sheet for vim

enter image description here

答案 3 :(得分:4)

您是否浏览过Vim的内置教程?如果没有,请转到命令行并键入vimtutor。这是学习初始命令的好方法。

Vim具有令人难以置信的灵活性和强大功能,如果您像大多数vim用户一样,您将学习很多新命令并忘记旧命令,然后重新学习它们。内置帮助很好,值得定期浏览以学习新东西。

互联网上有几个很好的常见问题解答和备忘录。我建议您搜索vim + faqvim + cheatsheetCheat-Sheets.org#vim是一个很好的来源,Vim Tips wiki也是如此。

答案 4 :(得分:3)

大多数人所做的是从基本的基础开始,例如 i yw yy p < / KBD>。您可以继续使用箭头键移动,使用鼠标选择文本,使用菜单等。然后,当某些内容减慢时,您会查找更快的方法来执行此操作,并逐渐添加越来越多的命令。你可能每天都会学习一个新的命令,然后它会每周涓涓细流。一个月你会感觉很有成效。一年之后你将拥有一个非常稳固的曲目,并且在2 - 3年后你甚至不会有意识地想到你的手指在打字,如果你必须为某人拼出来它会显得很奇怪。我在1993年学习了vi,并且每年仍然会学习2到3个新命令。

答案 5 :(得分:3)

@Greg Hewgill的备忘单非常好。几个月前我开始从TextMate切换。现在我和TM一样高效,并且不断对Vim的力量感到惊讶。

这是how I switched。也许它对你有用。

Grosso modo,我不认为做一个彻底的转换是个好主意。 Vim非常不同,最好逐步推进。

要回答你的问题,是的,我每天都使用iaIAoO全部进入插入模式。一开始看起来确实很奇怪,但过了一段时间你才真正想到它。

某些命令对任何与编程相关的任务非常有用:

  • rR替换字符
  • <C-a><C-x>增加和减少数字
  • cit更改HTML标记的内容及其变体(catditdatci(等。)
  • <C-x><C-o>(映射到,,)进行omnicompletion
  • 使用<C-v>
  • 选择视觉区块
  • 等......

一旦习惯了Vim方式,在其他编辑器或文本字段中编辑文本时,一直很难点击ox

答案 6 :(得分:2)

  

我无法想象每个人都使用所有20个不同的按键来导航文本,10个左右的按键开始添加文本,以及18种方式来直观地选择内部块。或者你呢?

我愿意。

  

理论上,一旦我拥有它并开始像在Textmate中那样精通VIM,那么我就可以开始学习数以千计的其他VIM命令,这些命令会让我更有效率。

这是正确的方法。从基本命令开始,然后选择可提高工作效率的命令。我喜欢关注this blog,了解如何使用vim提高我的工作效率。

答案 7 :(得分:2)

tuxfiles.org拥有相当不错的备忘单。我认为学习命令还有几点要点:

  • 定期阅读备忘单。不要担心使用它们,或者记住所有键,只要知道该命令存在。查找命令并在发现自己做重复的事情时使用它。
  • 如果您发现自己经常做某事(比如在特定字符d$后删除整行),请进行快速谷歌搜索以查看是否可以找到该命令。
  • 记下您认为有用的命令,并在编写代码时将该列表保存在可以看到的位置。我会反对打印出来的东西,而是鼓励你一次只使用几个命令来发布便条。
  • 如果可能,请观看其他程序员使用vim,并询问他们正在使用哪些命令,因为您看到他们做了一些有趣的事情。

除了这些提示之外,您还应该了解一些基本概念。

  • vim将使用相同的字符来表示相同的功能。例如,要在字符使用d$后删除一行。要在特定字符后突出显示一行,请使用v$。请注意,$表示您将在光标当前所在行的末尾执行某些操作。
  • u已撤消,ctrl+r已重做。
  • 在命令前放一个数字将重复执行。 3dd将删除光标所在的行以及后面的两行,同样3yy将复制光标所在的行以及后面的两行。
  • 了解如何浏览缓冲区,使用:ls列出缓冲区,:bn:bp循环浏览缓冲区。
  • 仔细阅读:help中的教程这可能是“学习绳索”的最佳方式,以及您将通过使用学习的其他命令。

答案 8 :(得分:2)

将它放在你的.bashrc中,用最后编辑过的行

打开最后编辑文件的vim
alias vil="vim  +\"'\"0"

答案 9 :(得分:1)

转到Efficient Editing with vim,了解入门所需的内容。并非该页面上的所有内容都是必不可少的,所以樱桃选择你想要的东西。

从那里开始,将vim用于一切。即使不是最有效的方式,“hjkl”,“y”和“p”也会让你走得很远。当你遇到一个你不知道神奇键的任务时,你可以有效地(或根本没有)做到这一点,而你发现自己已经做了好几次了,那就去查吧吧。一点一点地它将成为第二天性。

我发现vim在许多月前很畏惧(当它最后没有“m”时),但它只需要一周的稳定使用才能提高效率。我仍然觉得它是最快的编辑器,可以完成任务。