VIM替换第一个符号中的行的更好方法

VIM替换第一个符号中的行的更好方法,vim,text-editor,vi,Vim,Text Editor,Vi,具有以下代码: [Test] public void ShouldDoSomethingMeaningFull() { Assert.Fail(); } 我经常需要覆盖第(3)行Assert.Fail()。我现在做的是: 转到那行3G 选择从第一个非空白开始的所有内容^v$ 更改它-c 整个序列是:3G^v$c 虽然这对我很有效,但这不是一种有效的方法,因为我的手指会跳到“^和$”上 还有更好的办法吗 谢谢, Dmitry.对我来说,只需执行以下操作就可以更快: 3GddO 它转到第

具有以下代码:

[Test]
public void ShouldDoSomethingMeaningFull() {
    Assert.Fail();
}
我经常需要覆盖第(3)行
Assert.Fail()。我现在做的是:

  • 转到那行
    3G
  • 选择从第一个非空白开始的所有内容
    ^v$
  • 更改它-
    c
  • 整个序列是:
    3G^v$c

    虽然这对我很有效,但这不是一种有效的方法,因为我的手指会跳到“^和$”上

    还有更好的办法吗

    谢谢,

    Dmitry.

    对我来说,只需执行以下操作就可以更快:

    3GddO
    

    它转到第3行,删除该行,并在当前行上方插入一行(现在是右括号)
    O

    明显的改进是3GC(C表示更改为行尾,即与3GC$相同)

    如果你喜欢像Pavel Shved指出的那样改变整条线,那么也有一个不太明显的捷径。3GS与3Gcc相同


    帮助文件的“进行小更改”部分提供了更多详细信息

    正确的组合键应该是3Gcc


    cc将替换整行(与C相反,C只替换从当前字符开始的字符),并将保留行开头的空格。

    我喜欢使用
    S
    ,它删除行并将您置于插入模式,保留缩进。虽然
    C
    也可以工作,
    S
    在线路的任何位置都可以工作。

    3GC-对我来说最有意义。比进入视觉模式更容易。

    不错。我会自己尝试使用。很好的一个,前提是
    G
    总是跳转到行中的第一个非空白位置(看起来是这样)。很好的一个。如果
    cc
    C
    (由Brian Rasmussen建议)是相同的。@Dmitry,它是相同的,除非设置了
    startofline
    ,这使得
    G
    保留该列。我个人更喜欢设置它。
    C
    将从当前字符替换到结尾
    cc
    将替换整行,而不考虑光标的位置。另外
    C
    将光标保留在当前位置,而
    cc
    将光标放在第一列(因为行不是空的)。
    cc
    S
    仅在启用
    自动缩进时保留缩进,如果您正在编辑代码,可能是这样。在某些终端()上使用
    O
    可能会有问题。我认为,应该考虑一个更好的选择。这就是为什么我把它提交给KDE bugzilla不幸的是,这不起作用,因为
    S
    将光标放在行的开头(第一列),并且不会将其设置为第一个非空白字符。@Dmitry Nagirnyak-它应该适用于您上面发布的语法。试着打开c缩进::设置Cinset这不是一个真正的编程问题。这是一个vi问题,或者更一般地说,是一个“如何使用一个软件”的问题。投票发送给超级用户(尽管这篇文章有点陈旧)。VIM不仅仅是一个“软件”。这是一个程序员工具。最好的证明是StackOverflow上“VIM”问题的数量。