我有多个XML文件,每天需要编辑。我无法控制读取这些文件的源,也无法控制XML的格式。
问题在于,每个元素都需要在每个块内拥有自己的顺序编号。有时每个块内可能有多达200个元素。当我需要在现有的长块中插入一个命令时,我必须手动重新编号每个后续元素,这很繁琐且容易出错。
此外,名称/值对与所需的顺序编号之间没有任何连接。下面的值"origcmd1"可以是"foobar98765"。它们只是为了说明我的问题而进行编号。
例如:
从这里开始:
我现在必须手动重新编号cmd4和cmd5。当有数百个命令时,这变得非常令人沮丧。
目前的解决方案包括尝试编写宏以从第一行开始重新编号,假设它总是正确编号为1。然后我将使用一系列的删除/粘贴和Ctrl-a来增加每个后续行号。不幸的是,我无法使宏正常工作。
我还查看了vim.org的vim插件,但我没有发现我认为是解决方案的插件。
Vim对我来说很新,但我喜欢它,而且这似乎是它擅长解决的问题。任何关于快速技术或我错过的插件的想法都会受到赞赏。
问题在于,每个元素都需要在每个块内拥有自己的顺序编号。有时每个块内可能有多达200个元素。当我需要在现有的长块中插入一个命令时,我必须手动重新编号每个后续元素,这很繁琐且容易出错。
此外,名称/值对与所需的顺序编号之间没有任何连接。下面的值"origcmd1"可以是"foobar98765"。它们只是为了说明我的问题而进行编号。
例如:
从这里开始:
<block1>
<cmd1 name="origcmd1"></cmd1>
<cmd2 name="origcmd2">someCmdsTakeParams,param2</cmd2>
<cmd3 name="origcmd3"></cmd3>
</block1>
<block3> <c>no guarantee blocks are sequential #</c>
<cmd1 name="cmd1"></cmd1>
<cmd2 name="cmd2"></cmd2>
<cmd3 name="cmd3"></cmd3>
</block3>
如果我需要在origcmd1和origcmd2之间添加一个命令:
<block1>
<cmd1 name="origcmd1"></cmd1>
<cmd2 name="NEWcmd1"></cmd2> <c>cmd2 & cmd3 inserted</c>
<cmd3 name="NEWcmd1"></cmd3>
<cmd4 name="origcmd2">someCmdsTakeParams,param2</cmd4>
<cmd5 name="origcmd3"></cmd5>
</block1>
<block3> <c>no guarantee blocks are sequential #</c>
<cmd1 name="cmd1"></cmd1>
<cmd2 name="cmd2"></cmd2>
<cmd3 name="cmd3"></cmd3>
</block3>
我现在必须手动重新编号cmd4和cmd5。当有数百个命令时,这变得非常令人沮丧。
目前的解决方案包括尝试编写宏以从第一行开始重新编号,假设它总是正确编号为1。然后我将使用一系列的删除/粘贴和Ctrl-a来增加每个后续行号。不幸的是,我无法使宏正常工作。
我还查看了vim.org的vim插件,但我没有发现我认为是解决方案的插件。
Vim对我来说很新,但我喜欢它,而且这似乎是它擅长解决的问题。任何关于快速技术或我错过的插件的想法都会受到赞赏。
<cmd2 name="schoolCount">ls -l,grep -c teacher</cmd2>
变成了:<cmd2 teacher</cmd2>
除此之外,一切似乎比之前好得多了。 (编辑时弄清楚了如何在注释中格式化代码) - Tye