What are the most-used vim commands/keypresses?
我是一个试图从textmate切换到macvim的Ruby编程人员,我很难浏览你在vim中可以做的大量事情以及所有按键。我听腻了"你可以用‘i’来插入文本,或者用‘a’来在字符后面附加文本,或者用‘a’来在行尾附加文本,或者……"我不能想象每个人都用20个不同的按键来导航文本,用10个左右的键开始添加文本,用18种方法来直观地选择一个内块。还是你呢!?
我理想的备忘表是30-40个最常用的按键或命令,每个人每天都用它们来编写代码,以及Ruby每天使用的绝对必要的插件和10个最常用的命令。理论上,一旦我有了它,并且开始像在textmate中一样精通vim,那么我就可以开始学习其他成千上万的vim命令,这将使我更加高效。
或者,我是在完全错误地学习Vim吗?
这是我写过一次的小费单,上面有我经常使用的命令:好的。工具书类
- 在线VIM文档
- 高级VIM提示
- 更有用的技巧和图形化的备忘单
一般
- 对于重复计数,几乎所有命令前面都可以有一个数字。例如,5dd删除5行
使您退出任何模式并返回命令模式- 以:开头的命令在屏幕底部的命令行上执行。
- :任何命令的帮助
导航
- 光标移动:←H↓J↑K L→
- 用词:
- w下一个单词(标点);w下一个单词(空格)
- 背单词(标点);背单词(空格)
- e结束词(标点);e结束词(空格)
- 按行:
- 0行首;^第一个非空白
- 终点线
- 段落:
- 上一空行;下一空行
- 按文件:
- g g文件开始;g文件结束
- 123G转到特定的行号
- 标记:
- MX设置标记X;'X转到标记X
- '.转到上次编辑的位置
- ''回到跳跃前的最后一点
- 滚动:
- ^ F前进全屏;^B后退全屏
- ^ D下半屏;^U上半屏
- ^ e向上滚动一行;^y向下滚动一行
- ZZ中心光标线
编辑
- u撤消;^ r重做
- . 重复上次编辑命令
插入
所有插入命令都以
- 在光标处插入文本;在行首插入文本
- 光标后的附加文本;行尾后的附加文本
- o打开下面的新行;o打开上面的新行
改变
除R和R之外的所有变更命令都以
- r替换单个字符;r替换多个字符
- s更改单个字符
- cw更改字;c更改为行尾;cc更改整行
- C
改变运动方向的文本 - ci(更改括号内的内容(有关更多示例,请参阅文本对象选择)
删除
- 删除字符
- dw删除单词;d删除到行尾;dd删除整行
- D
沿运动方向删除
剪贴
- YY将行复制到粘贴缓冲区;DD将行剪切到粘贴缓冲区
- 在光标线下粘贴缓冲区;在光标线上粘贴缓冲区
- x p交换两个字符(x删除一个字符,p放回光标位置后)
阻碍
- v可视块流;v可视块线;^v可视块列
- 大多数运动命令将块扩展到新的光标位置
- o将光标移动到块的另一端
- D或X将块剪切成粘贴缓冲区
- Y将块复制到粘贴缓冲区
- >缩进块;
- gv重新选择最后一个可视块
全球的
- :%s/foo/bar/g将所有出现的"foo"替换为"bar"
- %是一个范围,指示文件中的每一行
- /G是一个标志,它改变了一行中的所有事件,而不仅仅是第一个事件。
搜索
- /向前搜索;?反向搜索
- *向前搜索光标下的单词;向后搜索光标下的单词
- 同一方向的下一个匹配;相反方向的下一个匹配
- fx向前到下一个字符x;fx向后到上一个字符x
- ;再移到同一方向的同一字符;,再移到相反方向的同一字符
文件夹
- :w将文件写入磁盘
- :w
name 将文件作为name 写入磁盘 - ZZ将文件写入磁盘并退出
- :n编辑新文件;:n!在不保存当前更改的情况下编辑新文件
- :q退出编辑文件;:q!退出编辑而不保存更改
- :e再次编辑同一文件(如果在VIM之外更改)
- E。目录资源管理器
窗户
- 新窗口
- ^ wj向下到下一个窗口;^wk向上到上一个窗口
- ^ w"使当前窗口最大化";^w=使所有窗口大小相等
- ^ w+增大窗口大小;^w-减小窗口大小
源导航
- %跳转到匹配的括号/括号/大括号或语言块(如果加载了语言模块)
- gd转到光标下本地符号的定义;^o返回到上一个位置
- ^]跳转到全局符号的定义(需要
tags 文件);^t返回到上一个位置(保留任意位置堆栈) - ^ n(在插入模式下)自动完成字
显示本地更改
VIM具有一些特性,可以很容易地突出显示源代码管理中从基本版本更改的行。我已经创建了一个小的vim脚本,使这变得容易:http://github.com/ghewgill/vim-scmdiff好的。好啊。
http:///a vi vim www.viemu.com _ _ _图形_ _查阅各种辅导课程_作弊表
这是最伟大的东西会为学习Vim。
这是一个很好的VIM备忘单:
你贯通Vim的内置的教程?如果需要删除的命令行和
Vim有难以置信的灵活性和功率的量,如果你就像个Vim用户,你会学到很多新的命令和一relearn忘记旧的,然后他们。内置的帮助很值得浏览和定期学习新的东西。
有几个很好的FAQ和作弊条for Vim在互联网上。我寻找一个好的
@格雷格·休吉尔的作弊记录很好。几个月前我开始从textmate调换。现在,我和TM一样富有成效,对维姆的能力一直感到惊讶。
这是我如何转换的。也许它对你有用。
格罗索·莫多,我不认为做一个彻底的转变是个好主意。VIM非常不同,最好是逐步进行。
为了回答你的子问题,是的,我每天都用所有的
一些命令对于任何与编程相关的任务都非常有用:
r 和r 替换字符 和 增加和减少数字cit 更改HTML标记的内容及其变体(cat 、dit 、dat 、ci( 等)。 (映射到,, )实现全包- 用
选择视觉块 - 等等…
一旦你习惯了vim的方式,当你在其他编辑器或文本字段中编辑文本时,你就很难一直不点击
大多数人所做的是从基本的东西开始,比如IBD、YW、YY和PBD。您可以继续使用箭头键来移动、用鼠标选择文本、使用菜单等。然后,当有事情使您减速时,您可以查找更快的方法来执行此操作,并逐渐添加越来越多的命令。你可能会在一段时间内每天学习一个新的命令,然后它会慢慢变为每周一个。一个月后你会觉得很有成效。一年后,你将有一个相当坚实的剧目,2-3年后,你甚至不会有意识地思考你的手指在打字,如果你必须为某人拼出来,这看起来会很奇怪。我在1993年学习了六级,但一年仍有两三个新的指挥部。
把它放在.bashrc中打开vim,最后一个编辑的文件位于最后一行。
1 | alias vil="vim +"'"0" |
tuxfiles.org作弊表持有相当好。我认为有几点学习的命令:
- 读表经常作弊。不要担心所有的人使用,或成为所有的钥匙,只是知道命令的存在。外观上的指挥和使用它,当你发现自己重复做的事。
- 如果你发现自己经常做什么(样线后,整个代码是字符
d$ )CRP快速Google搜索,看看你可以找到一个命令的信息。 - 写下所有你认为你会找到有用的和保持列表,在那里你可以看到它在你写你的代码。我会员对印刷的东西出去而不是鼓励你使用Notes邮件信息就一个命令在一个时间。
- 如果可能,观察其他程序员使用Vim命令他们,问他们什么,他们使用的是为你做一些有趣的湖。
除了论文的提示,你应该有一些基本概念的理解。
- vim使用相同的字符代表要到相同的功能。例如,一个删除线字符
d$ 后使用。一个突出的A线后使用v$ 特定字符。特别注意到,你想这样做的东西$ 结束线是从目前在你的光标。 u 是撤消,重做和ctrl+r 是。- 把a number of a命令前要反复执行它。你想删除
3dd 光标线的线,是在遵循同样的3yy 想复制你的光标是一个线对线和两个后续。 - 了解如何使用
:ls 浏览通过缓冲区的缓冲区列表,和:bn :bp 周期,到通孔。 - 通过阅读本教程在
:help 是最好的方式来学习的绳索",和其他所有你想了解的通孔使用。
I can't imagine everyone uses all 20 different keypresses to navigate text, 10 or so keys to start adding text, and 18 ways to visually select an inner block. Or do you!?
我做的。
In theory, once I have that and start becoming as proficient in VIM as I am in Textmate, then I can start learning the thousands of other VIM commands that will make me more efficient.
这是正确的方式来做。开始与基本命令,然后拿起一个提高你的生产力。我喜欢这个博客,我的技巧如何提高生产力和VIM。
一个高效的Vim编辑去学习你所需要的和想获得的开始。在那一页需要的一切是必不可少的启动开关,使樱桃挑选你想要的。
从那里,使用Vim的一切。"hjkl"、"Y",和"P"想让你很长的路,即使它不是最有效的方式。当你对一个任务来了,你不知道这样做获得魔法钥匙(或所有),和你自己做它不止一个时代,去看它。渐渐地它会成为第二天性。
我发现许多卫星前(后)daunting当它没有"M"的结局,但它只把)大约一周使用Get of稳定高效。我仍然找到它的quickest编辑器和得到的东西做。