繁体   English   中英

如何在vim中快速添加一些内容?

[英]How can I quickly add something to a few lines in vim?

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

var1 = "1"
var2 = "2"
var3 = "3"
var4 = "4"

现在我希望这是:

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

使用箭头我会转到var1,插入并添加下划线然后向下箭头并执行相同的操作。 使用hjkl的问题是我不能处于插入模式,所以我必须esc out,向下移动,插入...冲洗重复,这需要更多的工作。 还有另一种方法来实现这一目标吗?

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

  • 转到“var1”中的“1”
  • CTRL+V
  • j下去选择你想要影响的所有行
  • I (那是首都)
  • _
  • <ESC>

现在应该将下划线插入所选行的所有行中的正确位置(出于某种原因,它需要一秒钟才能在我的机器上发生)

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

  • 1G0 →转到第一行的开头
  • f1 →转到第一次出现的“1”
  • i_<ESC> →插入“_”并返回正常模式
  • j. →按下一行并重复插入命令
  • j. →按下一行并重复插入命令
  • ...

或者,更好的是,使用“ex”命令:

  • :%s/var/var_/

或者甚至使用visual block命令,如johusman所说。

假设你在第1行,第1个角色......

使用宏:

qqfra_<Esc>+q3@q
  • q录制宏
  • q进入注册q
  • F查找
  • R 'R'
  • 一个追加
  • _下划线
  • Esc正常模式
  • +下一行的开始
  • 3三次
  • @播放宏
  • q来自注册q

标准杆11

或者(更好)使用替代品

:%s!r!&_<CR>

9杆!

[抱歉...... VimGolf太多了!]

我更倾向于:替代视觉块模式。

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

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

1,4 s/var/var_/

这类似于

% s/var/var_/

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM