【发布时间】:2010-11-24 21:34:46
【问题描述】:
我有一个大文件,里面的行看起来像
2 没有通往指定公交的路线 网络
3 没有到达目的地的路线
即行首的数字,后跟描述。
我想将其转换为结构初始化器
{2,"没有到指定公交的路线 网络"},
{3,"没有到达目的地的路线"},
我该怎么做?
【问题讨论】:
标签: c vim formatting
我有一个大文件,里面的行看起来像
2 没有通往指定公交的路线 网络
3 没有到达目的地的路线
即行首的数字,后跟描述。
我想将其转换为结构初始化器
{2,"没有到指定公交的路线 网络"},
{3,"没有到达目的地的路线"},
我该怎么做?
【问题讨论】:
标签: c vim formatting
试试
:%s/^\(\d\+\)\s\(.*\)$/{\1, "\2"},/
这使用搜索和替换并搜索以数字开头的行,然后是空格,然后是任意文本,直到行尾。这将替换为您指定的模式。
或者,使用“更多魔法”(感谢 cmets 中的 Al):
:%s/\v^(\d+)\s(.*)$/{\1, "\2"},/
【讨论】:
\d* 而不是\d。
:%s/\v^(\d+)\s(.*)$/{\1, "\2"},/ (:help \v) 节省一些反斜杠。如果你确定它们永远是空格,你可以这样做:%s/\v^(\d+) +(.*)$/{\1, "\2"},/
\v,非常有帮助。