2 つのテキスト ドキュメントがあるとします。
- 最初のファイルには
hi
、テキストとして " " が含まれています。 - 2 番目のファイルには
hi
、テキストとして " " が含まれています。
これら 2 つのファイルを gedit、vi、または vim で開くと、2 つのファイルはあらゆる点で視覚的に同一です。
ただし、xxd
ファイルを実行すると、次のようになります。
- 最初のファイルの 16 進数の内容は次のとおりです。
6869
- 2 番目のファイルの 16 進数の内容は次のとおりです。
6869 0a
あはは!目に見えない改行があります。vim では、ステータス バーに十分注意を払っていて、たまたまその[noeol]
意味を理解していれば、これに気付くかもしれませんが、gedit では、2 つのファイルがまったく同じように開きます!
小規模な調査で、gedit または vim のみを使用して 2 つのファイルを区別するよう人々に依頼したところ、100% の確率で失敗しました。リーフパッドまたは emacs を使用して同じタスクを実行するように依頼したところ、100% 成功しました。
vi と gedit は、作成するすべてのファイルに改行を追加したいことを理解しています (これにはおそらく利点があることを認識しています)。私が理解できないのは、gedit と vim が、この改行をユーザーから視覚的に隠すことが有益であると考える理由です。特に、この種の行動が非常に破壊的である可能性がある場合...
(たとえば、vi/gedit テキスト エディターでこれら 2 つのファイルの内容を同じように見る 2 人の C プログラマーを考えてみましょう。そして、彼らが見たものと同じものを取得したと仮定して、内容を配列に書き込み
char greeting[2]
ます。最初の最初のファイルを書いたプログラマーは、彼のコードは少しずさんですが、名声と富を手に入れることができますが、2 番目のファイルを書いた 2 番目のプログラマーは、悲惨な貧困の中で亡くなり、この目に見えない (そして防止可能な)スタック オーバーフローに混乱し、当惑します。)
では、vim や gedit などのテキスト エディターで、作成する各ドキュメントの最後に目に見えない改行を追加し、それらの改行をユーザーから隠して、これらのファイルの実際の内容が目に見えるだけになるようにすることの利点は何ですか。他のテキスト エディタを使用して検出可能ですか?