我正试图摆脱我的箭头使用,但有一件事我还没有使用箭头键来解决。举个例子:
var1 = "1"
var2 = "2"
var3 = "3"
var4 = "4"
现在我想要这样:
var_1 = "1"
var_2 = "2"
var_3 = "3"
var_4 = "4"
使用箭头我会转到var1,插入并添加下划线然后向下箭头并执行相同的操作。使用hjkl的问题是我不能处于插入模式,所以我必须esc out,向下移动,插入...冲洗重复,这需要更多的工作。还有另一种方法可以实现这个目标吗?
答案 0 :(得分:7)
您还可以使用视觉块插入:
CTRL+V
j
向下选择您想要影响的所有行I
(那是首都i)_
<ESC>
现在应该将下划线插入所有选定行中的正确位置(出于某种原因,它需要一秒钟才能在我的机器上发生)
答案 1 :(得分:4)
有很多方法可以做到这一点。使用移动命令,例如:
1G0
→转到第一行的开头f1
→转到第一次出现的“1”i_<ESC>
→插入“_”并返回正常模式j.
→沿着一条线重复插入命令j.
→沿着一条线重复插入命令或者,更好的是,使用“ex”命令:
:%s/var/var_/
甚至使用visual block命令,如johusman注释。
答案 2 :(得分:1)
假设你在第1行,角色1 ......
使用宏:
qqfra_<Esc>+q3@q
q
q
的参议员11。
或(更好)使用substitute:
:%s!r!&_<CR>
Par 9!
[抱歉......太多VimGolf!]
答案 3 :(得分:0)
我倾向于选择:替换视觉模式。
%s/var\zs\ze\d/_/
答案 4 :(得分:0)
我总是打开行号,所以我会这样做。
1,4 s/var/var_/
这类似于
% s/var/var_/
回答,但它只在命名行上起作用。如果您不想在命令中键入范围(1,4
前缀),则可以使用可视模式标记线条。