Vimで改行の検索や置換による挿入で迷ったことがある方は多いのではないでしょうか。特に挿入する際のキーの入力方法は独特です。またWindowsファイルとの改行コードの違いも悩みどころですよね。
この記事では、Vimエディタで改行を一括置換で挿入・削除する方法についてご紹介していきます。Vimのバージョンは8.1を利用しています。
改行を置換で挿入する方法
コマンドモードでは、次のキーを入力することで改行コードを表現できます。コマンド上では「^M」と表示されます。
- 「Ctrl + Shift + v」キー → 「Ctrl + Shift + m」キー
改行を置換によって挿入したい場合は、置換先に上記の改行コードを入力します。
:%s/置換前文字/置換後文字^M/g
例えば、「c」の文字後ろに改行を入れたい場合は、置換後の文字列を「c^M」で表して、次のように入力します。
:%s/c/c^M/g
上記のコマンドで文字「c」の後ろに改行を挿入することができます。
改行を置換で削除する方法
改行コードを検索する場合は、正規表現の「\n」で検索することができます。
そのため、改行コードを置換により削除したい場合は、置換前の文字列には「\n」を設定し、置換後の文字列には何も入れません。
削除用のコマンドは次のようになります。
:%s/\n//
上記のコマンドで、改行を一括で削除して1行にまとめることができます。
Windowsの改行コードを置換で削除する方法
改行コードを表す正規表現「\n」は、ファイルフォーマットに応じてCRLFやLFにマッチします。
改行コードがCRLFのWindowsファイルでも、Vimエディタのファイルフォーマットがdosであれば「\n」で改行コードを指定できます。
ただ、改行コードがCRLFのWindowsファイルを、ファイルフォーマットがunixの状態で開いたとき、「\n」では正しく改行コード「^M」にマッチしません。
上記の場合は、CRLFの改行コードは、「\r\n」で検索することでマッチさせることができます。
したがって、改行コードCRLFの置換による削除は以下のコマンドで対応可能です。
:%s/\r\n//
以上、Vimで改行を一括置換で挿入・削除する方法でした。
コメント