.dotfilesのソースを強調する基本色を作成するには?

.dotfilesのソースを強調する基本色を作成するには?

通常、これらのファイルをキャプチャするとき

ここに画像の説明を入力してください。

着色しないと読みにくいです。

私はcat次のようにソースハイライトを使用しました。

cdc() {
  for fn in "$@"; do
    source-highlight --out-format=esc -o STDOUT -i $fn 2>/dev/null || /bin/cat $fn
  done; }; alias cat='cdc'

これで、認識されたファイル拡張子(この場合は.sh)に対して次のように生成されます。

ここに画像の説明を入力してください。

ただし、.shがない場合、たとえばそのファイルを呼び出すと、.bash_functions色付けは行われません。ファイル拡張子がわからないからです。

color-highlightカラードットファイル(ドットで始まるファイル)をカラーで取得する方法はありますかsh

ちなみに、これはベースで作られました。未知のファイル形式を含む猫の出力を白黒で色付けする方法は?

man source-higlight以下が表示されますが、どうすればいいかわかりません。

...
--outlang-def=filename
      output language definition file

--outlang-map=filename
      output language map file (default=`outlang.map')

--data-dir=path
      directory where language definition files and language maps are searched for.   If  not  specified
      these files are searched for in the current directory and in the data dir installation directory

--output-dir=path
      output directory

--lang-def=filename
      language definition file

--lang-map=filename
      language map file  (default=`lang.map')

--show-lang-elements=filename
      prints the language elements that are defined

      in the language definition file

--infer-lang
      force to infer source script language (overriding given language specification)

ベストアンサー1

-s sh$fnドットファイルのように見える場合にのみ指定されます。

cdc() {
  for fn in "$@"; do
    OPTIONS="-f esc"
    case "${fn##*/}" in
      .*) OPTIONS="$OPTIONS -s sh" ;;
    esac
    source-highlight $OPTIONS -i "$fn" 2>/dev/null || \cat "$fn"
  done
}
alias cat=cdc

で追加のカスタムファイル名一致規則を追加できますcase

おすすめ記事