假设您在第640行上,并在第671行上注意到以下内容:
if (jumps_over(quick_fox[brown],the_lazy_dog)) the_lazy_dog.bark();
导航到“树皮”的最关键的有效方法是什么?
最佳答案
这是关于Vim的一个常见误解:Vim并不是为了提高效率而设计的。
Vim旨在以可重复的,通常是复杂的组合使用小型构建基块,以实现您的目标。这不是一个固有的高效过程,但是对于一部分复杂任务而言,它很有用。例如,[运动] [宏]或[计数] [命令],它们是链状组合在一起的小构件。单击屏幕是最有效的移动方式,但是在必须执行数千次的大型文本操作任务的子集中可能没有用。
这是我通常会记住的所有方式,您看不到这些都是对运动的有效利用,也不是我的认知处理能力。 (IDE通过完成下面列出的所有工作来有效地完成工作)。
一旦上线,我将亲自使用f.l,因为快速扫描显示这是一个独特的字符。或T.(如果您过去了)。如果最终不止一个。我会用;重复发现,直到找到为止。或者,将w或W混搭直到我接近为止,因为在Vim中基本上不可能猜测出涉及标点符号时小写的w将带您到哪里。
如果您有:set relativenumber
,则可以看到它有几行,然后键入nj到那里,然后键入f。跳到它旁边
如果打开:set number
,则可以键入(因为您知道行号)671G(或:671Enter)f。
如果您已用标记该行,请说ma,您可以跳至带有'a的行或带有`a的确切字符(但是大多数键盘使`无法到达:(如果是随机外观,则可能不会使用此行) -需要修复的跳转。
如果您安装了EasyMotion,则可以键入leaderleaderfbsubchar来直接跳转到它
您可以按照@kev的建议进行搜索,并使用nN反弹直到获得它。如果bark
是常见的,但the_lazy_dog
是唯一的,则可以执行/dog.b/e
Enter(将光标放在比赛的末尾),并向Vim神祈祷,您的搜索是否足够具体,只能匹配该行。那更像是一个有趣的猜谜游戏。
根据行在屏幕上的位置,您可以使用(n个偏移量)H,M或L(高中低)以使其更接近并在其中使用jk。
或者,如果该行的上方/下方有空行,则可以键入 super 方便的{或}以帮助您跳近。
或者,如果您在gvim中+触控板在附近的笔记本电脑上,则可以使用鼠标。我对此很认真,即使我可能永远也不会做。如果您已经玩了足够多的第一人称射击游戏,那么您的触发手指可能比任何键盘快捷键都更准确,更快速;)
尽管Vim拥有疯狂的键盘功能,但并非总是直接或好的方法来执行某些操作,例如非常具体的跳转。您需要保留并不断积累一些技巧,以帮助您四处走动并使用适当的技巧来完成工作。根据我认为最快的速度,我会相当均匀且经常地使用上述所有内容(我使用relativenumber
)。 EasyMotion非常方便,除了执行一次命令的5次击键确实很尴尬且容易出错。
因此,以我在Vim的短短几年经验,我会说没有很好的方法,但是有许多平庸的方法可以组合成一个体面的方法。
关于vim - 在VIM上达到目标的最有效方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11918601/