使用vim命令/按键?

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

我的理想作弊表将是每天用于编写代码的30-40个最常用的按键或命令,以及Ruby日常使用的绝对基本插件和10个最常用的命令。 从理论上讲,一旦我拥有了这些,并开始像在Textmate中那样精通VIM,那么我就可以开始学习其他成千上万个VIM命令,这将使我更有效率。

或者,我是否完全错误地学习VIM?


这里有一个我曾经写过的小贴士,里面有我经常使用的命令:

参考

  • vim文档在线
  • 先进的vim技巧
  • 更有用的提示和图形化的备忘单
  • 一般

  • 几乎所有的命令都可以在一个数字之前进行重复计数。 例如。 5dd删除5行
  • <Esc>让您退出任何模式并返回命令模式
  • 前面的命令在屏幕底部的命令行中执行
  • :帮助任何命令
  • 导航

  • 光标移动:← hjk l→
  • 用词:
  • w下一个单词(用标点符号); W下一个单词(按空格)
  • b背单词(按标点符号); B背单词(按空格)
  • È端字(由标点符号); E结束词(按空格)
  • 按行:
  • 0开始行; ^第一个非空白
  • $行结束
  • 按段落:
  • {先前的空行; }下一个空行
  • 按文件:
  • gg文件开始; G结束文件
  • 123G转到特定的行号
  • 按标记:
  • mx设置标记x; 'x去标记x
  • ”。 转到上次编辑的位置
  • ''跳回到最后一点
  • 滚动:
  • ^ F全屏前进; ^ B向后全屏
  • ^ D下半屏; ^ U上半屏幕
  • ^ E滚动一行; ^ Y向下滚动一行
  • zz中心光标线
  • 编辑

  • ü撤消; ^ R重做
  • 重复上次编辑命令
  • 插入

    所有插入命令都以<Esc>结束以返回命令模式。

  • 在光标处插入文字; 在行首插入文本
  • 游标后面追加文本; 行结束附加文本
  • o在下面打开新行; O在上面打开新行
  • 更改

    rR之外的所有更改命令均以<Esc>结束以返回命令模式。

  • r替换单个字符; R替换多个字符
  • 换个单个字符
  • cw改词; C改为行结束; cc改变整条线
  • c <motion>在运动方向上改变文本
  • ci(在圆括号内进行更改(有关更多示例,请参阅文本对象选择)
  • 删除

  • x删除字符
  • dw删除单词; D删除到行尾; dd删除整行
  • d <motion>会沿运动方向删除
  • 剪切和粘贴

  • yy将行复制到粘贴缓冲区中; dd剪切成糊状缓冲区
  • 光标行下方的p贴上缓冲区; 上述光标线P粘贴缓冲区
  • xp交换两个字符( x删除一个字符,然后p把它放回光标位置后面)
  • v视觉块流; V视觉阻挡线; ^ V视觉块列
  • 大多数运动命令会将块扩展到新的光标位置
  • o将光标移动到块的另一端
  • dx将块切割成粘贴缓冲区
  • y将块复制到粘贴缓冲区中
  • >缩进块; < unindent块
  • gv重新选择最后一个视觉块
  • 全球

  • :%s / foo / bar / g将所有出现的“foo”替换为“bar”
  • %是指示文件中每一行的范围
  • / g是一个标志,可以改变一行中的所有事件,而不仅仅是第一个事件
  • 搜索

  • /向前搜索; 向后搜索
  • *向前搜索光标下的单词; 向后搜索光标下的单词
  • ñ下一场比赛在同一方向; 在相反的方向N下一个匹配
  • fx转发到下一个字符x; Fx返回到前一个字符x
  • ; 再次移动到相同方向的同一个字符; 再次朝相反的方向移动到相同的角色
  • :w将文件写入磁盘
  • :w name将文件写入磁盘作为name
  • ZZ将文件写入磁盘并退出
  • :n编辑一个新文件; :N! 编辑新文件而不保存当前更改
  • :q退出编辑文件; :Q! 退出编辑而不保存更改
  • :e再次编辑相同的文件(如果在vim之外更改)
  • :e。 目录浏览器
  • 视窗

  • ^ Wn新窗口
  • ^ Wj下到下一个窗口; ^ Wk直到上一个窗口
  • ^ W_最大化当前窗口; ^ W =使所有窗口大小相等
  • ^ W +增加窗口大小; ^ W-减小窗口大小
  • 来源导航

  • 跳转到匹配括号/支架/支架,或语言块如果语言模块加载
  • gd转到光标下的局部符号定义; ^ O回到以前的位置
  • ^]跳转到全局符号的定义(需要tags文件); ^ T返回到前一个位置(维持任意一堆仓位)
  • ^ N (在插入模式下)自动完成单词
  • 显示本地更改

    Vim有一些功能可以轻松地突出显示源代码控制中基本版本已更改的行。 我已经创建了一个简单的vim脚本,它使得这很简单:http://github.com/ghewgill/vim-scmdiff


    http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html

    这是学习VIM的最伟大的事情。


    这里是vim的一个很好的备忘单:

    在这里输入图像描述

    链接地址: http://www.djcxy.com/p/49487.html

    上一篇: used vim commands/keypresses?

    下一篇: How do I do redo (i.e. "undo undo") in Vim?