使用VIM可视块连接块

使用VIM可视块连接块,vim,Vim,我尝试使用VIM通过连接字符串块来构建SQL查询。例如,我在VIM的三个选项卡中有以下字符串: # block one where c = '123' where c = '2345' ... # block two set b = 12 set b = 345 ... # block three update myTable set a = 'abc', update myTable set a = '23423', ... 每个块包含100行(SQL查询片段)。我想将这些块

我尝试使用VIM通过连接字符串块来构建SQL查询。例如,我在VIM的三个选项卡中有以下字符串:

# block one
 where c = '123'
 where c = '2345'
 ... 

# block two
set b = 12
set b = 345
...

# block three
update myTable set a = 'abc', 
update myTable set a = '23423', 
...
每个块包含100行(SQL查询片段)。我想将这些块连接到一个完整的SQL查询中:块一+块二+块三(100行),如下所示:

# sql queries
update myTable set a = 'abc', set b = 12 where c = '123'
update myTable set a = '23423', set b = 345 where c = '2345'
...
忽略第一行,它只是为了解释。我认为可视块可以用于:

  • 猛拉选项卡“第二块”中的所有线
  • 将缓冲区粘贴到开头的“block three”选项卡上
  • 猛拉选项卡“第一块”中的所有线
  • 将缓冲区粘贴到开头的选项卡“block three”
  • 然而,我尝试了提示(前两个y和p示例),我无法得到预期的结果。粘贴不会将缓冲区字符串连接到块。不知道我做错了什么。或者其他替代方法

    我最近看到了一集,描述了如何在视觉块模式下进行编辑。看看视频,我相信他描述了你想要什么。

    我最近看到了一集,描述了如何在视觉块模式下进行编辑。看看视频,我相信他描述了你想要的东西。

    你试过视觉块(
    ctrl-v
    )吗?它们必须是相同宽度的线,但它可以工作

    您可能需要做一些更改,但希望它至少能给您一些想法。

    您是否尝试过Visual blockwise(
    ctrl-v
    )?它们必须是相同宽度的线,但它可以工作


    您可能需要做一些更改,但希望它至少能给您一些想法。

    我认为使用一个简短的脚本(python,或者可能是bash)可以更轻松地完成这项工作。另外,您应该使用参数化查询,而不是字符串串联,因为发送普通字符串会使您面临sql注入攻击。我认为使用短脚本(python,或者可能是bash)可以更容易地做到这一点。另外,您应该使用参数化查询,而不是字符串串联,因为发送普通字符串会使您面临sql注入攻击。是的。我先拖动块,然后P将块粘贴到要插入文本块的位置。谢谢对我先拖动块,然后P将块粘贴到要插入文本块的位置。谢谢
    # Yank the lines from the other file
    gg V G 
    # Add whitespace to the end
    :%s/$/  /
    # Select the whitespace at the end of the other file, and paste it
    gg $ ctrl-v $ p