如何快速向vim中的几行添加内容?

如何快速向vim中的几行添加内容?,vim,Vim,我试图摆脱我的箭头使用,但有一件事我还没有解决没有使用箭头键。举个例子: var1 = "1" var2 = "2" var3 = "3" var4 = "4" 现在我希望这是: var_1 = "1" var_2 = "2" var_3 = "3" var_4 = "4" 使用箭头,我只需转到var1,插入并添加下划线,然后向下箭头并执行相同的操作。使用hjkl的问题是我不能处于插入模式,所以我必须退出,向下移动,插入…重复冲洗,这需要更多的工作。还有其他方法可以做到这一点吗?有很多方法可

我试图摆脱我的箭头使用,但有一件事我还没有解决没有使用箭头键。举个例子:

var1 = "1"
var2 = "2"
var3 = "3"
var4 = "4"
现在我希望这是:

var_1 = "1"
var_2 = "2"
var_3 = "3"
var_4 = "4"

使用箭头,我只需转到var1,插入并添加下划线,然后向下箭头并执行相同的操作。使用hjkl的问题是我不能处于插入模式,所以我必须退出,向下移动,插入…重复冲洗,这需要更多的工作。还有其他方法可以做到这一点吗?

有很多方法可以做到这一点。使用移动命令,例如:

  • 1G0
    → 转到第一行的开头
  • f1
    → 转到第一个出现的“1”
  • i
    → 插入“\”并返回正常模式
  • j.
    → 下一行并重复insert命令
  • j.
    → 下一行并重复insert命令
或者,最好使用“ex”命令:

  • :%s/var/var./

甚至可以使用可视块命令,如注释所示。

您也可以使用可视块插入:

  • 转到“var1”中的“1”
  • CTRL+V
  • 使用
    j
    向下选择要影响的所有行
  • I
    (大写字母I)

下划线现在应该插入到所有选定行的正确位置(由于某种原因,在我的机器上需要一秒钟时间)

假设您位于第1行,字符1

使用宏:

qqfra_<Esc>+q3@q
9杆


[抱歉…太多了!]

我倾向于选择:替换而不是视觉块模式

%s/var\zs\ze\d/_/

我总是打开行号,所以我会这样做

1,4 s/var/var_/
这类似于

% s/var/var_/

答案,但它只在命名行上起作用。如果您不喜欢在命令中键入范围(前缀
1,4
),可以使用可视模式标记行。

这与编程有关吗?哦,骗子;-)。我可以看出这可能与编程无关(我将留给比我更聪明的人来决定),但我知道的是,这类问题是对典型的SO费用(“plz hw到maek I-PHONE MAC XCODe wwr0k on RsS thx”)的巨大改进。这是我将在我的书签中提出的问题,尽管它可能属于另一个SE站点…@David,@Jonathan:看,这就是我试图避免的…从insert中来回移动。@Ryan:你不能来回移动,只需按
j.
(“j”后跟“.”)。试试看
1G0f1i_j.j.j.
@Ryan:避免一次进入插入模式的唯一方法是使用ex命令
:s
。每隔一种方式(视觉块、导航、宏等)都要求您访问一次。请尝试查看
:h timeoutlen
以摆脱暂停退出vblock模式。
% s/var/var_/