標準出力をシンタックスハイライトする


動機

  • 標準出力されたソースコードに色をつけて見やすくしたい
  • apt-get install などはしたくない
    • 見慣れたvimのハイライトで表示したい
  • わざわざテキストファイルとして保存はしたくない

やり方

例えばよくあるシチュエーションとして,Gitで過去のバージョンのファイルを単体で見たいときは,

git show <コミットのハッシュ値>:<開きたいファイル> | vim -c 'set filetype=xxx' -

とすることでvimで表示できます. (ファイル名は.gitが置いてあるディレクトリからみた相対パス)
ちなみにハッシュ値をブランチ名にすれば別ブランチのファイルを開けます.

毎回打ち込むのは手間なので.bashrcなどに設定しておくと楽です.

.bash_aliases
function vimgitshow(){
    git show "$1" | vim -M -c 'set nomod' -c "file ${1##*/}" -c 'filetype detect' -
}
vimgitshow <ハッシュ値>:<開きたいファイル>

参考URL

標準入力を読み込んで編集
https://vim-jp.org/vimdoc-ja/starting.html#--
編集できないようにする
https://vim-jp.org/vimdoc-ja/starting.html#-M
https://vim-jp.org/vimdoc-ja/starting.html#-c
https://vim-jp.org/vimdoc-ja/options.html#'nomod'
filetypeを設定する
https://vim-jp.org/vimdoc-ja/editing.html#:file
https://gnu/bash/manual/Shell-Parameter-Expansion
https://vim-jp.org/vimdoc-ja/filetype.html#filetype-detect