Vim で改行を削除する方法

最終更新:2023-09-10 by Joe

Vim の文字削除は、カーソルを文字に移動して「x」と、簡単でおぼえやすいのですが、この方法では改行コードにカーソルが合わないので、「改行」を削除できません。

この記事では、Vimにおける改行の削除の方法を詳しく見ていきます。

挿入モードで改行の削除する方法

「i」を押して「挿入モード」に移行し、「DELETE」キーで改行を削除することができます。挿入モードでは「ENTER」で改行を入力できますので、VIM以外のエディタ同様、直感的な操作が可能です。

ノーマルモードで改行を削除する方法

Vimのノーマルモードでは、通常、行の削除などの文書の整形を行いますが、その中で「行を連結する」という操作があります。

ESCでノーマルモードに切り替え、所望の行までカーソルを移動したら、下記のコマンド改行を削除できます。

// カーソルのある行とその直下の行を連結する。
J

「SHIFT + j キー」である点にご注意下さい。この方法で、カーソルのある行の末尾の改行が削除でき、その下の行と連結できます。

改行を削除して、間にあるスペースを維持する場合

上記の「J」では、連結後に間にある余分なタブやスペースを自動で削除してしまいます。下記の方法でスペースを維持することもできます。

// カーソルのある行とその直下の行を連結する。その間にあるスペース・タブを維持する
gJ

j は「JOIN(連結)」の「J」なのじゃ、行を連結じゃ!これでもう覚えたじゃろ!

半年前にも、同じ話をどこかで見た気がするよ〜。わすれちゃうんだよね。

[参考] Vim で改行を挿入する方法

参考まで、ノーマルモードで改行を挿入するコマンドもおさらいです。

// カーソルのある行の直下の行を追加する
o

// カーソルのある行の上に改行を挿入する
O

これらのキーでは、改行を入力して、インサートモードに移行します。

文書内のすべての改行を削除する方法

ドキュメント内のすべての改行を削除する事もできます。ノーマルモードにコマンドラインから、下記を入力し、改行を空文字置換します。

// ドキュメント内の改行をすべて削除する。
:%s/[\r\n]//g

UNIX 系やMacOSにおける改行コードはは「\n」, 古いMacOSですと「\r」 Windows系ですと「 \r\n」となっています。上記はすべてをマッチする正規表現を空文字に置換して、あらゆる改行コードを削除します。