LoginSignup
45
37

More than 5 years have passed since last update.

Keynote(Mac版パワポも)にソースコードを貼る

Last updated at Posted at 2016-09-02

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

Welcome! — Pygments

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が対応していれば何でもいけると思う。

貼り付けてみたスクリーンショット

image

あとは、背景色を同じ色で塗りつぶせばOK!

欠点

  • Macじゃないと使えない
    • Macにしかないコマンドを使っているため(pbcopyやtextutil)

貼り付け先がKeynoteなので「Macじゃないと」はあまり欠点にならない。今はこの方法で貼り付けている。

他のエディタはどうか?

他のエディタに同じようなプラグインがないか、ちょっとだけ調べてみた。(と言っても、AtomとVS Codeだけだけど。Emacsは多分あるでしょう。)

Atom

copy-as-rtf

上記プラグインがすぐ見つかったが、内部でPygmentsを使っているので、Pygmentsの欠点はそのまま引き継いでいると思う。

VS Code

Add ability to copy formatted code to clipboard · Issue #3518 · Microsoft/vscode

Issueがあった。みんな:thumbsup:しているが、Closeされていないし、おそらく実装されていないはず。プラグインも見つけられなかった。(ちょっとしか調べてないのであるかもしれないけど)

おわり

調べても、highlightやpygmentsの記事が殆どだったので、vim-copy-as-rtfについての紹介でした。
これ以外でおすすめの方法があったら、ぜひおしえてください。

追記:Mac版パワポでもOKでした。

image

背景色は消えますが、貼り付けることができました!便利!

45
37
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
45
37