vimで複数行の文字列を1行のCSVにする

2020-02-18

vimで複数行の文字列を1行のCSVにする方法です。
エディタで簡単なSQLのIN句を作成するときによく使います。

元のデータ

1134
1373
3985
4588

Ctrl + Vで先頭に'を入れる。

'1134
'1373
'3985
'4588

Ctrl + Vの後、$,Aして、',を入れる。

'1134',
'1373',
'3985',
'4588',

全行をjで選択してJで1行へ。

'1134', '1373', '3985', '4588', 

末尾の',を削除して、前後に()を入れて完成。

('1134', '1373', '3985', '4588')

スクリプトやコマンドを組み合わせてワンラインで書けそうな気もしますが、ややこしくなりそうなので、いつもこのようなコマンドを実行して整形しています。