20161001

Windowsで、Pygmentsを標準入出力(stdin,stdout)経由で使う。

(自分用メモ)これは、その内、きれいにしてからQiitaに書く。
pygmentsは、syntaxhighlighter。
以前、http://naga-tsuzuki.sblo.jp/article/175175856.html
で試した。

準備として、
pip install pygments
でpygmentsを入手するのを忘れずに。
また、-O noclasses=Trueなどを使用しないのであれば、cssをいじる必要がある。
http://field-notes.hatenablog.jp/entry/20111221/1324434018

さくらのブログが、Qiitaの様に、マークダウンでsyntaxhighlightできないので、pygmentsを使っている。
今までプログラムをubuntu上でやっていたのに、なぜか、最近Windowsばかり使っている。
なぜかは分かりません。
ubuntuの端末(terminal)とコマンドライン(cmd)上でのpygmentsの使い勝手が違ったので、メモする。

(普通のやり方)
Pythonのコードを、a.pyに保存。

pygmentize -f html -l python -o a.html a.py

a.htmlから、コピペ。

(標準入力を使ったやり方)
pygmentize -f html -l python -O noclasses=True

標準入力にpythonのコード書く。

???

標準出力に表示されるのをコピペ。

下のやり方は、コマンドライン上だけで作業ができるというメリットの他にも、
後に残らないという、メリット(かつディメリット)がある。
pygmentize -l python -f html -O noclasses=True
-l python …………………………lexer(構文解析器)は、python用のを使う。
-f html ………………………………フォーマットはhtml
-O noclasses=True ……これがあると、cssいじらなくてもよくなる代わりに、毎回、htmlタグに色指定が入り、編集時に、ごちゃごちゃする。

-Oは、-oとは違う。(大文字小文字で意味が違う。)
The -o option gives an output file name. If it is not given, output is written to stdout.
-oオプションは、出力ファイル名を与えます。もし与えられなかったら、出力は、stdout(標準出力)に書かれます。
だそうです。訳があっていればいいのですが。
-o hogehoge.pyを抜かすと、標準入力画面で入力できる様になり、標準出力に、syntaxhighlightされたものが排出されるそうですが...
Windowsの標準入力から抜け出せないでござるの巻だった。
そう、要は↑これが問題だったんだけど...
ubuntuではできた。

pygmentsは、syntaxhighlighter。
以前、http://naga-tsuzuki.sblo.jp/article/175175856.html
で試した。
このやり方は、標準入力、標準出力を使っている。

標準入(出)力って、解説見ても意味わかんない。
使わないと。
http://bacspot.dip.jp/virtual_link/www/si.musashi-tech.ac.jp/www/DOS_command/page08.htm
とか、
http://www.adminweb.jp/command/redirect/index4.html
とかが、今見たらわかるけど、なんでわからなかったんだ。。。

Windowsのcmdの画面で、
>pygmentize -f html -l python
と書いてEnterすると、入力待ちになる。
入力待ちで入力した入力の事を、標準入力という。

その結果、勝手に出てくる出力の事を、標準出力という。
入力待ちの状態から、元の状態に戻る方法は、ctrl+Cとか、Ctrl+Breakだと思い込んでいた。
違った。
上の二つでは、出力は出てこない。
Ctrl+Zっていうのは、存在は知っていたものの、なぜか効かなかったのでやっていなかったのだった。
今回の場合、改行してCtrl+Z後、Enterキーで、標準入力の入力を終了してくれた。

ubuntuはCtrl+Dで出力してくれた。2手間
Windowsでは、改行→Ctrl+Z→Enter 4手間

これをもう少しキレイにまとめて、Qiitaに書く。
いわゆる二重投稿ですな。
まあ、だれも困らんし、いいでしょうという、軽い気持ちだった...
posted by yuchan at 07:00 | Comment(0) | python
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: