Vim:如何生成sql“IN”子句

时间:2016-03-22 20:53:38

标签: vim

这可能是Vim内部的简单请求:想要一个列表(当前缓冲区)并用单引号包装每一行,每行用逗号分隔,然后用括号括起来(也许还删除前导/尾随空格或空行如果存在)。

开始于:

999886
999887
999888
999893
999894
999895
999896
999897

结果:

('999886',
'999887',
'999888',
'999893',
'999894',
'999895',
'999896',
'999897')

1 个答案:

答案 0 :(得分:2)

有很多方法可以实现它。假设你的光标位于第1行,col1,你可以这样做:

<c-v>GI'<Esc>gvA',<esc>i(<esc>}r)

您只需按下这些按键,您就会看到文字是如何形成的 改变。

或者使用命令:

:%s/.*/'&',<CR>

然后:

}r){i(<esc>

当线条长度不同时,第二种方法很有用。

您也可以录制宏来执行此操作。