プレーンテキストファイルにタブ/スペースを表示する最良の方法は何ですか

プレーンテキストファイルにタブ/スペースを表示する最良の方法は何ですか

残念ながら、タブとスペースの両方を含むファイルがあります。

特定のスペースが実際にタブかスペースであるかを知るために表示するにはどうすればよいですか?

答え1

複数のオプション:

POSIX:

$ printf 'a b\tc \n' | sed -n l
a b\tc $

$ printf 'a b\tc \n' | od -A n -t cx1
   a       b  \t   c      \n
  61  20  62  09  63  20  0a

非常に携帯可能です。

$ printf 'a b\tc \n' | cat -vte
a b^Ic $

(一部の実装catにはエイリアスがあります)。タブにのみ興味があり、末尾のスペースに興味がない場合にのみ、またはGNUと一緒に使用してください。変換された文字のリストは実装によって異なります。-A-vte-vt-Tcatcat

viまたは で をview入力する:set listと、タブと行末が表示されます。

答え2

あなたのエディタがかなり最新バージョンのEmacsであると仮定すると、これはwhitespace-modeあなたが探しているものです。変数を使用すると、問題のあるスペースを強調表示するようにカスタマイズできますwhitespace-style

whitespace-styleで定義された変数ですwhitespace.el。その価値は
(face tabs spaces trailing lines space-before-tab newline indentation empty space-after-tab space-mark tab-mark newline-mark)

文書:可視化の空白の種類を指定します。

これは、次の値の一部または全部を含むリストです。

  • face 顔を通してすべての可視化を有効にします(下記参照)。

  • trailing 末尾のスペースは顔を通して可視化されます。 (上記参照)がにある場合
    にのみ有効です。facewhitespace-style

  • tabs TABは顔を通して可視化されます。 (上記参照)がにある場合
    にのみ有効です。facewhitespace-style

  • spaces 空間と硬い空間は顔を通して視覚化されます。 (上記参照)がにある場合
    にのみ有効です。facewhitespace-style

  • lines 列を越えて広がる線は、 whitespace-line-column ポリゴンで強調表示されます。
    ライン全体が強調表示されます。
    これを優先しますlines-tail(下記参照)。 (上記参照)がにある場合
    にのみ有効です。facewhitespace-style

  • lines-tail 列を越える線は whitespace-line-columnポリゴンで強調表示されます。
    ただし、列を超えて拡張された行部分のみが適用されますwhitespace-line-column 。 (上記参照)がに存在せず(上記参照)がに存在する場合にのみ
    有効です。lineswhitespace-stylefacewhitespace-style

  • newline 改行は面を通して可視化されます。 (上記参照)がにある場合
    にのみ有効です。facewhitespace-style

  • empty バッファの先頭および/または末尾の空白行はポリゴンを介して可視化されます。 (上記参照)がにある場合
    にのみ有効です。facewhitespace-style

  • indentation::tab 線の先頭の8つ以上のスペースは多角形で可視化されます。 (上記参照)がにある場合
    にのみ有効です。facewhitespace-style

  • indentation::space 行の先頭のタブ文字はポリゴンで視覚化されます。 (上記参照)がにある場合
    にのみ有効です。facewhitespace-style

  • indentationindent-tabs-mode(see)が0以外の場合、行の先頭に8つ以上のスペースが視覚化されます。それ以外の場合、行の先頭のTABはポリゴンで可視化されます。 (上記参照)がにある場合
    にのみ有効です。facewhitespace-style

  • space-after-tab::tab TABの後ろの8つ以上のスペースは、多角形で可視化されます。 (上記参照)がにある場合
    にのみ有効です。facewhitespace-style

  • space-after-tab::space TABの後に8つ以上のスペースがある場合、TABは多角形として可視化されます。 (上記参照)がにある場合
    にのみ有効です。facewhitespace-style

  • space-after-tabindent-tabs-mode (see)が0以外の場合、TABの後に8つ以上のスペースが可視化されます。それ以外の場合、タブは面で視覚化されます。 (上記参照)がにある場合
    にのみ有効です。facewhitespace-style

  • space-before-tab::tab TABの前のスペースはポリゴンを通して視覚化されます。存在する場合のみ
    有効です(上記参照)。facewhitespace-style

  • space-before-tab::spaceTABの前にスペースが表示されると、TABは面として視覚化されます。 (上記参照)がにある場合
    にのみ有効です。facewhitespace-style

  • space-before-tabindent-tabs-mode(see)がゼロでない場合はTABの前のスペースが可視化され、そうでない場合はタブが面として可視化されます。 (上記参照)がにある場合
    にのみ有効です。facewhitespace-style

  • space-mark スペースとハードスペースはディスプレイテーブルを介して可視化されます。

  • tab-mark TABはテーブルを表示することで可視化されます。

  • newline-mark 改行は表示テーブルを介して可視化されます。

関連情報