Mai*_*tor 6 navigation vim keyboard-shortcuts
假设您在第640行并在第671行注意以下内容:
if (jumps_over(quick_fox[brown],the_lazy_dog)) the_lazy_dog.bark();
Run Code Online (Sandbox Code Playgroud)
导航到"树皮"的最有效方法是什么?
这是对Vim的一个常见误解:Vim的设计效率不高.
Vim旨在使用可重复的,通常是复杂组合的小型构建块来实现您的目标.它本身并不是一个有效的过程,但对于复杂任务的一个子集,它是有用的.例如,[motion] [macro]或[count] [command],这些是在链中组合在一起的小构建块.单击屏幕是最有效的移动,但在大型文本操作任务的子集中可能没有用,您必须执行数千次.
以下是我通常使用的所有我记忆中的方法,你可以看到这些都不是运动的有效用途,也不是我的认知处理能力.(IDE通过完成下面列出的所有工作来有效地完成工作).
一旦上线,我会亲自使用, f.l因为快速扫描显示这是一个独特的角色.或者T.如果你已经过去了.如果最终不止一个.我会;用来重复这个发现直到我达到它.或者,混搭w或W直到我接近,因为w在Vim中基本上不可能猜到涉及标点符号时小写会占用你的位置.
如果你有:set relativenumber,你可以看到它有多少行,并输入n j去那里,然后键入f.跳到它旁边
如果你有:set number,你可以输入(因为你知道行号)671G(或:671Enter)f.
如果你已经标记了该行,说ma你可以跳到行'a或者确切的字符`a(但是大多数键盘`无法达到:(如果它是一个随机的外观,你可能不会使用这个 - 需要修复跳.
如果您安装了EasyMotion,则可以键入leaderleaderfbsubchar以直接跳转到它
你可以像@kev建议的那样搜索它,然后用它nN来反弹直到你得到它.如果bark是常见的但the_lazy_dog你是独一无二的/dog.b/eEnter(e将光标置于比赛结束时)并向Vim神祈祷,你的搜索特定到足以匹配该线.这更像是一个有趣的猜谜游戏.
具体情况取决于行是在屏幕上,你可以使用(正偏移)H,M或L(高中间低),以获得更接近它,并使用jk一次在那里.
或者,如果该行在其上方/下方有空行,您可以键入超级方便{或}帮助您靠近.
或者你可以使用鼠标,如果你在笔记本电脑上,触控板在附近+ gvim.我很认真,尽管我可能永远不会这样做.如果你玩过第一人称射击游戏,你的触发手指可能比任何键盘快捷键更加准确和快速;)
尽管所有Vim'm疯狂的键盘力量,但并不总是有一种直接或好的方法来做某些事情,比如非常特殊的跳跃.你需要保持并不断建立一套技巧,以帮助你四处走动,并使用适当的工具.我使用上述所有相当均匀且经常(我使用relativenumber),取决于我认为最快的.EasyMotion非常方便,除了执行一个命令的5次击键真的很笨拙并且容易出错.
所以在我谦虚的几年Vim体验中,我会说没有好办法,但是有很多平庸的方式,你可以结合成一个体面的方式.