行末の空白文字を削除する
テキストエディタで行末の空白文字を削除する小ネタ。 いや,たまに使おうとすると忘れてるんだよね。
ATOM Editor の場合
以前は行末の処理は editorconfig でできてたはずなんだけど,いつの間にか trim_trailing_whitespace
と insert_final_newline
は “doesn’t work yet” になってる。
それとも私の勘違いだったのか。
気を取り直して。
行末の空白を一気に削除したいならコマンドパレットで whitespace
を検索すると “Remove Trailing Whitespace” があるので,これを実行する。
保存するたびに自動的に行末の空白文字を削除したいのであれば whitespace の Settings にある “Remove Trailing Whitespace” を有効にする。

おまけだが,同じ Settings 画面で “Ensure Single Trailing Newline” を有効にすると,テキストファイル末尾が改行になっていない場合は改行を補ってくれる。 他にもこまごまとした設定があり,しかもファイルタイプごとに設定できるようだ。 でもファイルタイプではなく editorconfig でコントロールできるようになってほしい。
もうひとつ余談だが, Go 言語環境ではコードの整形を行う際に whitespace の設定に関係なく行末の空白を削除してくれる。 他の言語でも整形ツールがあれば同様にできるかも。
秀丸またはサクラエディタの場合
現在,ほとんどの作業は ATOM に移行できているのだが,巨大ファイルを扱う場合などはまだ秀丸等1 のお世話になっている。 秀丸ではファイルタイプごとに保存時に行末の空白を削除するかどうか設定できる。 あるいは置換機能を使う方法もある。 手順は以下の通り。
- 「検索文字列」に
[ \t]+$
を指定する(行末の半角空白,全角空白,タブ文字を正規表現で指定する) - 「置換文字列」はブランクにする(何もセットしない)
- 「正規表現」の項目にチェックを入れて置換を開始する
ちなみに同様の手順はサクラエディタでも使える2。 てか, ATOM も含め置換処理に正規表現が使えるエディタならたいてい使える3。