Pygmentsやhighlightを使う
Keynoteにシンタックスハイライトされたソースコードを貼り付けるには、RTFでフォーマットされたソースコードをペーストする必要がある。
Keynoteにソースコードを貼る - pirosikick's diary
上記ブログにまとめた内容が以前やっていた方法。CLIで変換してMacのpbcopy
コマンドでクリップボードにコピーし、Keynoteに貼り付ける。
# highlightの場合$ brew install highlight# file.jsの内容をRTFに変換しクリップボードにコピー$ cat file.js | highlight --syntax=js -O rtf | pbcopy# クリップボードにコピーしたソースコードをRTFに変換しクリップボードにコピー$ pbpaste | highlight --syntax=js -O rtf | pbcopy
Pygmentsは↑です。highlightよりドキュメントが充実している気がします。が、そこまで機能差は無いっぽいです。(あったら教えてください)
欠点
- 日本語が文字化けする
- いちいちCLIでコマンドを実行する必要があったので、面倒
- JSXやES2015など新しめのシンタックスに対応していない
文字化けは日本語を使わないでコードを書くなど工夫でどうにかなる。2つ目については、上記のブログにもあるように関数化したりaliasで割りと楽になる。
3つ目が個人的には一番辛くて、この方法はもう使っていない。
vim-copy-as-rtf
zerowidth/vim-copy-as-rtf: Copy syntax-highlighted code from vim to the OS X clipboard as RTF text
vimのプラグイン。インストールすると、CopyRTFコマンドが使えるようになる。:CopyRTF
とすると、そのファイルの内容をvimで表示されている見た目のまま、RTFに変換し、クリップボードにコピーしてくれる。また、Visual Modeで選択した後に:'<,'>CopyRTF
を実行すれば、選択範囲のみRTFに変換することもできる。
Vimの見た目のまま貼り付けることができるので、シンタックスに関してはVimが対応していれば何でもいけると思う。
貼り付けてみたスクリーンショット
あとは、背景色を同じ色で塗りつぶせばOK!
欠点
- Macじゃないと使えない
- Macにしかないコマンドを使っているため(pbcopyやtextutil)
貼り付け先がKeynoteなので「Macじゃないと」はあまり欠点にならない。今はこの方法で貼り付けている。
他のエディタはどうか?
他のエディタに同じようなプラグインがないか、ちょっとだけ調べてみた。(と言っても、AtomとVS Codeだけだけど。Emacsは多分あるでしょう。)
Atom
上記プラグインがすぐ見つかったが、内部でPygmentsを使っているので、Pygmentsの欠点はそのまま引き継いでいると思う。
VS Code
Add ability to copy formatted code to clipboard · Issue #3518 · Microsoft/vscode
Issueがあった。みんなしているが、Closeされていないし、おそらく実装されていないはず。プラグインも見つけられなかった。(ちょっとしか調べてないのであるかもしれないけど)
おわり
調べても、highlightやpygmentsの記事が殆どだったので、vim-code-as-rtfについての紹介でした。
これ以外でおすすめの方法があったら、ぜひおしえてください。