如何并排放置两组块(以JavaScript对象样式)?

如何并排放置两组块(以JavaScript对象样式)?,javascript,vim,Javascript,Vim,换句话说,如何扭转这种局面: hello: goodbye: 'Hello' 'Goodbye' 在Vim里 hello: 'Hello', goodbye: 'Goobye' 我之所以要这样做,是因为我从Exel表中获取了一长串字符串,需要将它们转换为JavaScript对象,就像我在评论中所说的,在Vim中这样做可能会使事情过于复杂。使用Excel,很容易将两列相邻放置,并将这些结果复制/粘贴到Vim以进行最终调整(如果需要) 下面的替换命令可能会让您开始使用仅适用于Vim的解决方案

换句话说,如何扭转这种局面:

hello:
goodbye:

'Hello'
'Goodbye'
在Vim里

hello: 'Hello',
goodbye: 'Goobye' 

我之所以要这样做,是因为我从Exel表中获取了一长串字符串,需要将它们转换为JavaScript对象,就像我在评论中所说的,在Vim中这样做可能会使事情过于复杂。使用Excel,很容易将两列相邻放置,并将这些结果复制/粘贴到Vim以进行最终调整(如果需要)

下面的替换命令可能会让您开始使用仅适用于Vim的解决方案

0,/\v^$/-1s/\v(.*)/\=子匹配(0).getline(行('.')+3)。','

要点是

  • 设置从文件顶部到第一个空行减去1的范围
  • 在一组中捕获整行
  • 用捕获的组替换整行,并附加当前行的内容+3
我没有办法让+3变量变成这样

  • 您需要计算出第一个和第二个“列”之间的#行以传入替换命令
  • 之后仍然需要手动删除第二列中的所有行

如果您熟悉宏,这将有所帮助。如果不是,只需按击键并排录制1个块,然后重新使用宏

  • 转到文件顶部(在本例中,将光标放在hello:)并键入以下内容以录制宏
  • qq}jdd'pkJA,j
    
  • 首先,这应该能够正确地执行该过程。要重复此过程,请按
    @q
    ,如果需要重复此过程100次,请按
    100@q

  • 需要运行宏时,将光标放在需要并排配对的下一行,然后运行
    @q


  • 并不是说使用Vim是不可能的,但在我看来,将excel中的长列表粘贴到单独的列中,并将最终结果复制/粘贴到Vim中,以添加一些最终格式,要容易得多。
    qq}jdd''pkJA,<escape key>j