说,我有一个正在Vim中编辑的(HAML / ruby)行,如下所示:
%img{ src: (@image.presence || 'http://placehold.it/60x80/'), alt: "", data: { "snippet-image" => "image" "<150x<80" alt="alt" />
我现在需要删除alt="alt" />
并将其替换为} }
将该行转换为
%img{ src: (@image.presence || 'http://placehold.it/60x80/'), alt: "", data: { "snippet-image" => "image" "<150x<80" } }
例如,我在第一个{
。当我导航到“alt =”之前,我可以用C} }
替换那个就好了。问题在于有效地进入alt=
部分。
13W
,计算或猜测单词的数量,并移动该数量。这是非常低效的,我花了将近半分钟的时间指着我的屏幕计算了13个单词。$2B
,移到行尾,移回两个单词。在这种情况下,更有效率,但仍然需要计数,并且当我不得不在线路的中间时断开。/alt=<cr>h
搜索alt=
。然后向后移动一个字符。再次:在这种情况下工作,但在搜索更常见的东西时会中断。例如,我想转移到第14 "
。 我认为我缺少一些简单的概念修饰符,可以在水平方向上更有效地导航,使用长行。在垂直方面,有许多东西(文本对象)可以导航,并且有一些帮助程序,如相对编号。 这里的例子是代码。但是,当在报告或文章中浏览长篇文章时,我会遇到同样的问题。
你通常如何水平导航?
答案 0 :(得分:1)
我认为至少部分答案是(至少在我看来)长线是代码气味;不只是因为你提出的导航问题,还因为
大多数语言/语法允许“中断”行(例如,使用Bash,C等中的\
行继续符),我会主张使用它来避免这么长的行尽可能。
那就是说,我主要坚持WORD明智的W
动作到(粗略)位置,或者f
/ t
,如果有一个可辨别的唯一{char}
in附近。
答案 1 :(得分:1)
我通常使用f<char>
/ F<char>
,然后使用;
,直到我到达正确的位置。如果我看到有很多角色的实例,我会去附近的某个独特角色,或者回到/
搜索命令。这也是一种品味问题。
答案 2 :(得分:1)
我用以下方法解决了这个问题:
$vT";;c } }
答案 3 :(得分:0)
对{{3}}回答略有改进:
$3T"C } }
我不得不对答案发表评论,但我没有足够的声誉