コマンドラインからコードを確認する際はlessコマンドなどで確認するのですが、どうやらシンタックスハイライトを行って表示することができるようなので試してみました。

目次

  1. GNU Source-highlightを導入する

  2. lessコマンドへパイプする

  3. エイリアス/関数を作成する

GNU Source-highlightを導入する

GNU Source-highlightはソースコードからシンタックスハイライト したドキュメントを作成するためのプログラムです。ソースファイルを引数として呼び出すとHTML形式でドキュメントを生成してくれます。

[shell]

% brew install source-highlight

[/shell]

 

source-highlightは以下のようにして使用します。

[shell]

% source-highlight hello.c

Processing hello.c … created hello.c.html

[/shell]

hello.c.htmlをブラウザで表示するとシンタックスハイライトされているのが確認できます。

シンタックスハイライト

またデフォルトの出力形式はHTMLですが他の形式も選べます。

docbook, esc, esc256, groff_man, groff_mm, groff_mm_color, html, html-css, html5, htmltable, javadoc, latex, latexcolor, mediawiki, odf, sexp, texinfo, xhtml, xhtml-css, xhtmltable

lessコマンドへパイプする

出力形式を esc にして結果を less へパイプしてやればいいです。

[shell]

% source-highlight -f esc -i hello.c | less -R

[/shell]

もしくは既存のスクリプトがあるので、これを利用したほうが簡単かもしれません。

[shell]

% src-hilite-lesspipe.sh hello.c | less -R

[/shell]

シンタックスハイライト

エイリアス/関数を作成する

最後にエイリアス/関数を作成します。csh/tcshとbash/zshでは作成方法が異なるのでコードを載せておきます。

[shell]

# csh/tcsh

alias lessh ‘src-hilite-lesspipe.sh \!* | less -R’

[/shell]

[shell]

# bash/zsh

function lessh() { src-hilite-lesspipe.sh $1 | less -R }

[/shell]

今回は lessh で実行できるようにしました。

コメントを残す

メールアドレスが公開されることはありません。