2013-12-14 48 views
0

说,我有一个在Vim中正在编辑(HAML /红宝石)行,像这样:如何浏览水平

%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,计数或猜测词的量,并移动该量。这是非常低效的,我花了将近半分钟的时间指着我的屏幕来计算十三个单词。
  • $2B,移动到行尾,将两个字移回。在这种情况下,效率更高,但仍然需要计数,并在必须处于线路中间时断开。
  • /alt=<cr>h搜索alt=。然后向后移动一个字符。再次说明:在这种情况下工作,但是当搜索更常见的东西时会中断。例如,我想转到第14个"

我想我错过了一些简单的概念修改器,以便在水平方向上用更长的线条更有效地导航。纵向来说,有许多东西(文本对象)可以导航,并且还有像相对编号这样的助手。 这里的例子是代码。但是,在报告或文章中导航长段落文本时,我会遇到同样的问题。

你通常如何水平导航?

回答

1

我解决了这个问题:

$vT";;c } } 
+0

你指出我在';'和','',这是我知道的。它几乎是缺少的一块,的确如此。 *重复最新的f,t,F或T [count]次。* – berkes

1

我认为答案的至少一部分是(至少在我看来)长线是代码味道;不只是你带了导航问题,而且还因为

  • 他们很难理解(视觉,尤其是因为不同的编辑软打破不同它们)
  • 大多数工具都基于行的理解(例如,当在源代码控制中查看差异时),并且长线破坏(例如,谁改变了哪一行的“责备”输出)。

大多数语言/语法允许“中断”线(例如,在击,C等的\续行字符),并且我会主张使用的是,为了避免这样的过长的线尽可能可能。


这么说,我主要是坚持WORD明智W运动的(粗)的位置,或者f/t,如果有在附近一个明显的独特{char}

+0

我完全同意长行是代码味道。在代码中。在写文章时,长线不是一种气味,而只是一种写作风格。即使如此:如果你遇到一条长长的路线,并发现这种臭味,你可能会决定重构它。这意味着,您必须导航该行以重构它。换句话说:还有很多情况下,人们必须水平导航长线,并希望有效地这样做。 – berkes

+1

在文章中,段落通常(用':set wrap')在多个屏幕线上被软划分;然后我使用'gj' /'gk',或者用')'跳转到下一句。 –

1

我通常使用f<char>/F<char>然后;直到我找到正确的地方。如果我看到有很多角色实例,我会去附近的某个独特角色或退回到/搜索命令。这也是品味的问题。

0

一点点改进romainl答案:

$3T"C } } 

我不得不离开回答的评论,但我没有足够的声誉

相关问题