我是一个试图从Textmate切换到MacVim的Ruby编程,而且我无法浏览VIM中可以完成的大量事情列表以及它们的所有按键。 我厌倦了听到“你可以使用'I'来插入文本,或'a'用于在字符后添加文本,或者'A'用于在行尾添加文本,或者......”我无法想象每个人都使用全部20种不同的按键来浏览文本,10个左右的按键来开始添加文本,以及18种方式来直观地选择一个内部块。 或者你呢?
我的理想作弊表将是每天用于编写代码的30-40个最常用的按键或命令,以及Ruby日常使用的绝对基本插件和10个最常用的命令。 从理论上讲,一旦我拥有了这些,并开始像在Textmate中那样精通VIM,那么我就可以开始学习其他成千上万个VIM命令,这将使我更有效率。
或者,我是否完全错误地学习VIM?
这里有一个我曾经写过的小贴士,里面有我经常使用的命令:
参考
vim文档在线 先进的vim技巧 更有用的提示和图形化的备忘单 一般
几乎所有的命令都可以在一个数字之前进行重复计数。 例如。 5dd删除5行 <Esc>
让您退出任何模式并返回命令模式 前面的命令:在屏幕底部的命令行中执行 :帮助任何命令 导航
光标移动:← h ↓ j ↑ k 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在上面打开新行 更改
除r和R之外的所有更改命令均以<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将光标移动到块的另一端 d或x将块切割成粘贴缓冲区 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?