はじめに
今年は頑張ってアウトプットを増やすことを目標にした。 とはいえ、特に書くこともなかったので、Emacsについて書く。
正月やることがなかったので、またEmacsの設定を見なおした。 Emacs Rocksという動画に触発されて、動画で説明することにした。 普段pythonとTeXとMarkdownしか書かないので、それらについての設定しかできていない。
環境
python
yasnippet
予め登録されているnpとかmainとかの後にtabを打つと、スニペットを挿入してくれる。 自分でスニペットを登録できるので、独自のライブラリに関するスニペットとかも作れて便利。jedi
jediはオムニ補完、つまり文法的な部分をある程度汲んだ上で補完をしてくれる。 動画ではやらなかったが関数定義にジャンプしたりもできる。 importした直後とかはたまに補完候補をだすのに数秒かかることもある。flymake-python-pyflakes
文法エラーやwarningの表示。 flymake-cursorを入れないとカーソル位置のエラーが表示されなかったようなそうでもなかったような気がする。py-autopep8
pep8準拠のコードに自動的に修正。 演算子の両側にスペースを入れたり、改行を入れたり。 after-save-hookに登録して、保存時に修正するといい感じ。iedit
複数箇所の同時編集。変数名を変えたいときに便利。 範囲を関数内に限定したり、手動で範囲を決めたりできる。 multiple-cursorsとどっちがいいんでしょうか。smartparens
括弧などの補完。 補完もそうだけど、範囲選択して括弧を入力すると、その範囲を括弧で囲ってくれるのがいい。highlight-parentheses
括弧の色を深さで変える。 趣味。
TeX
AUCTeX
以前までYaTeXを使っていたけど、どちらがいいかわからなかったので、とりあえず使ってみている。 数式に関するショートカットがなくなったけど、yasnippet使うしどっちでもいい気がする。 C-c C-c でlatexmkを呼ぶようにできるらしいので、その点はこっちのほうがいいかも。yasnippet
機能はpythonと同じだが、複雑な構文が多いのでかなり役に立つ。 figureの構文とか覚えてられないし。 TeX固有の機能として、cite + Tabとかref+Tabでreftexを呼ぶようになっている。 デフォルトのままなので、自分の環境に合わせてもうちょっといじったほうがいいかなと思っている。reftex
bibファイルは使い回しなので、どういう名前で登録したか覚えていないし、 長い文章を書いていると、\labelで設定した名前なんか忘れる。 reftexは参考文献入れるときや\refを使うときに、名前を補完してくれる。 参考文献は特に著者名前でもキーワードでもヒットするので便利。
同じbibファイルを使いまわすときは、default-bibliographyに登録しておくと便利。magic latex buffer
\beginとか\endを▽△に変えたり、数式を表示したり、見やすいように色々やってくれる。コマンドのタイポに気づきやすい。 数式以外の場所で"_"を打っても添字扱いされるところが少し困る。
Markdown
OrgTbl
markdownで表を書いてると、自分で合わせない限り縦棒がずれているので見にくい。 orgの表を書くモードをMarkdownモードでも使えるので、それを使う。 orgとMarkdownで一部書式が違うので、保存時に変換している。flymd
Markdownのリアルタイムプレビューはいくつかパッケージがあるけど、今はflymdを使っている。 画像や数式もちゃんと表示されるのでいい。misc
研究ノート的なものをmarkdownで書いているので、C-x C-nで常に同じファイルが開くようになっている。 org-modeでいいじゃないかという気もしている。
その他
git-gutter-fringeの見た目をちょっといじって使っている。 いい感じ。
今後の課題
未だに改行をEnterでしか打てないので、C-mとかC-jとか使っていきたい。
参考
- Emacs Rocks!
- PythonをEmacsで書く+α - やったことの説明
- GitHub - joaotavora/yasnippet: A template system for Emacs
- GitHub - tkf/emacs-jedi: Python auto-completion for Emacs
- GitHub - purcell/flymake-python-pyflakes: Emacs flymake handler for python using pyflakes
- EmacsWiki: Flymake Cursor
- EmacsでPythonコードをPEP8に準じたコードへ自動整形 - Qiita
- 複数箇所を同時編集するieditとmultiple-cursorsの比較 - Qiita
- https://github.com/Fuco1/smartparens
- EmacsWiki: Highlight Parentheses
- AUCTeX - TeX Wiki
- AUCTeX で PDF をコマンド一つで生成する. - Qiita
- biblatex - RefTeX won't find my .bib file in local library tree - TeX - LaTeX Stack Exchange
- GitHub - zk-phi/magic-latex-buffer: [Emacs] magical syntax highlighting for LaTeX-mode buffers
- Markdown で表(テーブル)を描く - Qiita
- GitHub - mola-T/flymd: flymd - Emacs on the fly markdown preview
- GitHub - syohex/emacs-git-gutter-fringe: Fringe version of git-gutter.el