Vim 如何水平导航

Vim 如何水平导航,vim,navigation,Vim,Navigation,比如说,我有一行(HAML/ruby)正在Vim中编辑,如下所示: %img{ src: (@image.presence || 'http://placehold.it/60x80/'), alt: "", data: { "snippet-image" => "image" "<150x<80" alt="alt" /> 例如,我在第一个{。当我导航到“alt=”之前,我可以用C}替换它。问题在于如何高效地访问alt=部分 13W,计算或猜测单词的数量,然后移动

比如说,我有一行(HAML/ruby)正在Vim中编辑,如下所示:

%img{ src: (@image.presence || 'http://placehold.it/60x80/'), alt: "", data: { "snippet-image" => "image" "<150x<80"  alt="alt" />
例如,我在第一个
{
。当我导航到“alt=”之前,我可以用
C}
替换它。问题在于如何高效地访问
alt=
部分

  • 13W
    ,计算或猜测单词的数量,然后移动该数量。这是非常低效的,我用了将近半分钟的时间指着我的屏幕数数十三个单词
  • $2B
    ,移到行尾,向后移动两个单词。在这种情况下,效率更高,但仍然需要计数,当我不得不站在,比如说,队伍中间时,会中断
  • /alt=h
    搜索
    alt=
    。然后向后移动一个字符。再次说明:在这种情况下有效,但在搜索更常见的东西时会中断。例如,我想移动到第14个
我想我缺少了一些简单的概念修改器,可以在水平方向上更有效地导航,使用长线。在垂直方向上,有很多东西(文本对象)可以导航,还有一些辅助工具,比如相对编号。 这里的例子是代码,但我在报告或文章中浏览长段落时也遇到同样的问题


您通常是如何水平导航的?

我认为至少部分答案是(至少在我看来)长线是一种代码气味;不仅是因为您提出的导航问题,还因为

  • 它们很难理解(视觉上,特别是因为不同的编辑对它们的软划分不同)
  • 大多数工具对更改有一种基于行的理解(例如,在源代码管理中查看差异时),而长行会破坏这种理解(例如,谁最后更改了哪一行的“责备”输出)
大多数语言/语法都允许“中断”行(例如,在Bash、C等语言中使用
\
行延续字符),我主张使用这种方法尽可能避免这样过长的行



也就是说,我大多坚持按单词顺序移动到(粗略的)位置,或者如果附近有一个可识别的独特的
{char}
,我想至少部分答案是这样的(至少在我看来)长线是一种代码气味;不仅仅是因为你提出的导航问题,还因为

  • 它们很难理解(视觉上,特别是因为不同的编辑对它们的软划分不同)
  • 大多数工具对更改有一种基于行的理解(例如,在源代码管理中查看差异时),而长行会破坏这种理解(例如,谁最后更改了哪一行的“责备”输出)
大多数语言/语法都允许“中断”行(例如,在Bash、C等语言中使用
\
行延续字符),我主张使用这种方法尽可能避免这样过长的行



也就是说,我大多坚持按单词顺序移动到(粗略的)位置,或者如果附近有一个可识别的独特的
{char}
,我想至少部分答案是这样的(至少在我看来)长线是一种代码气味;不仅仅是因为你提出的导航问题,还因为

  • 它们很难理解(视觉上,特别是因为不同的编辑对它们的软划分不同)
  • 大多数工具对更改有一种基于行的理解(例如,在源代码管理中查看差异时),而长行会破坏这种理解(例如,谁最后更改了哪一行的“责备”输出)
大多数语言/语法都允许“中断”行(例如,在Bash、C等语言中使用
\
行延续字符),我主张使用这种方法尽可能避免这样过长的行



也就是说,我大多坚持按单词顺序移动到(粗略的)位置,或者如果附近有一个可识别的独特的
{char}
,我想至少部分答案是这样的(至少在我看来)长线是一种代码气味;不仅仅是因为你提出的导航问题,还因为

  • 它们很难理解(视觉上,特别是因为不同的编辑对它们的软划分不同)
  • 大多数工具对更改有一种基于行的理解(例如,在源代码管理中查看差异时),而长行会破坏这种理解(例如,谁最后更改了哪一行的“责备”输出)
大多数语言/语法都允许“中断”行(例如,在Bash、C等语言中使用
\
行延续字符),我主张使用这种方法尽可能避免这样过长的行


也就是说,我主要坚持按单词移动到(粗略的)位置,或者如果有一个可识别的唯一的
{char},则选择
f
/
t
在附近。

我通常使用
f
/
f
,然后
直到我找到正确的位置。如果我看到有很多字符实例,我会在附近寻找一些独特的字符,或者回退到
/
搜索命令。这也是一个品味问题。

我通常使用
f
/
和然后
直到我到达正确的位置。如果我看到有许多字符实例,我会在附近寻找一些独特的字符,或者返回到
/
搜索命令。这也是一个品味问题。

我通常使用
f
/
f
,然后
直到我到达正确的位置。如果我看到有许多指令,我会使用它字符的属性我选择附近的某个唯一字符,或者返回到
/
搜索命令。这也是一个品味问题。

我通常使用
f
/%img{ src: (@image.presence || 'http://placehold.it/60x80/'), alt: "", data: { "snippet-image" => "image" "<150x<80" } }
$vT";;c } }
$3T"C } }