LoginSignup
0
0

More than 1 year has passed since last update.

VSCodeの文字列検索で改行コードを確かめるな高校

Last updated at Posted at 2023-04-20

VSCode派の皆さんこんにちは!
Sakura Editer派、Vim派、その他いろいろ派の皆さんもこんにちは。
テキストエディタはみんなちがって、みんないい。

本稿では世にも奇妙な改行コードにまつわる怪談について語らせていただく。
これは実際に起きた本当の話である。

改行コードについて

まずは簡単に改行コードについておさらい。
改行コードには3種類あります。簡単に表にするとこんな感じ。

種類 正規表現 使用OS
CR \r 昔のMac
LF \n 最近のMac、Linux
CRLF \r\n Windows

VSCodeでグレップしてみる

試しにあるドキュメントファイルを\nでグレップしてみます。
ちゃんと正規表現の検索をOnにしてくださいね。
image.png
各行末に\nがあるのがわかりますね。

続いて\rでグレップしてみましょう。
image.png
行末に\nがあって\rがないのでLFにな・・・っていません。実は。

せっかくなのでダメもとで\r\nもグレップしてみましょうよ。
image.png
まぁなんもかからないですよね。

よく見るとVSCodeの改行コードはCRLFになってましたね!
vscode-crlf.png
ちなみにここをクリックするとLFなどに切り替えることができます。
VSCodeの力ってスゲー!

?「あれ、でもCRLFなら\rとか\r\nが引っかかるはずでは?」

VSCodeの改行検索の仕様

こちらを参考にしてください。

翻訳するとこんな感じ。

検索ウィジェットで、正規表現モードでファイル内のEOL列(\nまたは\r\n)をターゲットにすることができます。\r\nのEOLシーケンスの\rのみをターゲットにすることはできません。これは、誤って混在した行末が作成されるのを防ぐために実施しています。

つまり\rでグレップできないのは意図的な仕様ということでした。
改行コードに寄らず改行は\nのみでグレップできます。

これで改行コードを変換したいとき、グレップによる置換はできないことがわかりましたね。
したがって、1ファイルずつWindow右下のボタンをポチポチして変換することになりそうですね

VSCodeで改行コードを変更するときは右下のCRLF(またはLF)ボタンをクリックして変更しましょう!

まとめ

筆者はグレップでまとめて置換!みたいなのを別のエディタでやってたので、無意識にグレップによる置換を試みて爆散しました。
意外と落とし穴なので、皆様も気を付けてください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0