如何根据位置VIM插入字符



到目前为止我所知道的。"^">字符是一个特殊的搜索字符,表示为行首
g表示全球变化。基于如何在Vim中的每行末尾添加文本?以及如何在vi/Vim 中的多行选择的开头插入文本

: - enter command mode
% - for every line
s/ - substitute
$ - the end of the line
/ - and change it to
, - a comma

下面有:3个字段:整数、字符串/字母、整数
我一直在努力解决以下问题。

  • 在第一个整数值字段后插入逗号,

  • 为第二个字母串插入单引号''

  • 插入逗号将字符串值字段分隔到最后一个整数值字段。

(1     a        80
(1     b        50
(2     a        90
(2     b        120
(3     a        200
(3     b        140
(4     a        110
(4     b        430

如果你真的想使用Ex,那么

:%s/((d+)s+(w+)s+(d+)/1, '2', 3

然后按回车键。()块是regex组的vim-regex等价物。要了解更多关于vim-regex的信息,它与普通regex有很大不同:http://www.vimregex.com/

因为您的数据是对齐的,所以视觉模式会让这变得很容易。假设你不想触摸空白,可能是制表符或空格:

CTRL-v           # enter visual mode with cursor on first int in first line
j or down arrow  # to the last line/last int
shift-i , ESCAPE # to insert comma and apply to visual range

单引号问题几乎是一样的,只是点击shift-a来附加后面的单引号。要在末尾添加逗号,请在任何要结束的列上选择并点击:

$A,

其将附加到行的末尾。我还假设这里没有尾随空格,否则它将在末尾。

最新更新