20

使用 vim 我想用另一个字符替换直到某个字符的所有字符,比如空格 -而不会影响行中字符的布局/数量。这是一个例子:

前:

real(kind=R12), intent(out) :: my_var

替换, intent(out)为空格后(即从 开始,,一直到)):

real(kind=R12)              :: my_var

我知道r要替换一个字符,并且nr要替换n字符,但我想知道我是否可以在不先计算要替换的字符的情况下完成我的任务。

非常感谢您的回复!

4

4 回答 4

40

视觉模式可能是这里最短的方式:

vt:r 
  • v进入视觉模式
  • t:选择直到:
  • r(注意后面r的空格)用空格替换所选区域。
于 2012-07-30T16:01:29.233 回答
4

在命令模式下键入“ df ?” 最多删除那个 (?) 字符。然后' i '返回插入。

例如,如果您认为以下句子:

The wizard quickly jinxed the gnomes before they vaporized.

然后你输入 dfs

您将得到:

 before they vaporized.
于 2017-05-18T15:14:42.737 回答
2

我知道 r 替换一个字符

你知道这R会让你处于替换模式吗?所以你可以点击R然后按住Space,直到你替换了你想要的所有东西。

但是,我仍然会接受托尔的回答。可视模式允许您在 vim 中使用高效的文本导航方法,而无需计算字符。

但如果您不同意,总会有EasyMotion

于 2012-07-31T03:08:13.853 回答
1

您可以在此处使用正则表达式(用于(.*?)引用直到标记的所有值)。

例如:

正则表达式:(.*?)foo将摆脱 foo 之前的所有内容。

于 2012-07-30T15:47:39.323 回答