如何根据位置 VIM 插入字符

How to Insert character based on position VIM

到目前为止我所知道的。 '^' 字符是表示行首的特殊搜索字符。
g 表示全局变化。 基于 How to add text at the end of each line in Vim? and How to insert text at beginning of a multi-line selection in vi/Vim

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

下面有:3个字段:integer,string/alphabetic,integer.
我一直在努力解决以下问题。

    (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\+\)/, '', 

然后按回车键。 \( \) 块是正则表达式组的 vim 正则表达式等价物。要了解有关 vim 正则表达式的更多信息,它与普通正则表达式有很大不同: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 附加尾随单引号。要在末尾添加逗号,select 在任何列结束并点击:

$A,

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