座学録

id:hikaru515 の技術ブログです

(また) Markdown記事執筆 & メモ環境を Emacs につくった

まえおき

一体 Emacs の環境を作り直すの何回目だろうか.

ここのところ, ある有料エディタの無料試用期間で試していた. そのエディタを使って Markdown でメモをとっていた. しかし, どうにも課金する気にはなれず.

エディタに不満があったわけではない. 今まで試したどんなものよりもファイルの管理が簡単だったし, 自動同期機能などは最高だった. Dropbox でファイル同期させたりするのが苦手な僕としてはとてもよかったのだが...

ということで, 少し慣れている環境を(また)手放しててきとうにプレーンテキストでメモ, 記事執筆をできる環境を整えることにした.

で, また Emacs である.

メモエディタとして使う

他の候補

一時期 Vim のプラグインの memoist.vim を使用していたのだが, あんまり好きになれなくてやめた.

僕はどうも Vim で複数のファイルを管理するのが好きではないらしい. メモにはどうしても「あのメモどこに書いたっけ?」と複数のファイルから探すとか, 複数のバッファを行き来するとかいう作業が必要だ.

僕が Vim を使うときは(基本ターミナルから使用するのだが)別ファイルに移動するときは :q してシェルに戻ることが多い. ディレクトリが同じだったりすると稀に :e することもあるが, あんまりしない. 矯正しようと思ったこともあったが, やっぱり長続きしない. 僕にとっては Vim は頻繁に落とし, 起動することを繰り返す使い方のほうが自分には肌に合う.

一方で, VSCode や Atom はただメモをするエディタとしてはあまりにもオーバースペックだろう. もしも Atom で書くなら outline-mode とか使うのだろうが, 僕の用途*1には不要だ.

ちなみに, Atom で Markdown を書きたいという人は以下の記事がとても参考になると思う.

takezoe.hatenablog.com

Emacs

そこで Emacs ですよ. となったのは3つ要因がある.

  • 最近シェル芸を少しやったので Emacs キーバインドがやっと身にしみた
  • 年越しってエディタ環境を見直す時間の余裕が生まれるから
  • Windows を無視できるようになった

まず僕が Emacs を使っていないのは C-b とか C-f とかが覚えられなかった(矢印キーを使うしかカーソル移動の方法がなかった)からなのだが, シェル芸をするときにコマンドをカーソル移動してなんどもこまめに書き換えたりしているうちに C-f とか C-e とかは当たり前のように使えるようになった. なのでせっかく Emacs like なキーバインドを選んでいるのだから, Emacs 自体もその延長で使おうよ, と思えるようになった.

次に, 時間に余裕がある*2なのでエディタ環境を見直したくなった. この休みのうちに自分好みにカスタマイズしておけば向こう 3ヶ月は使えるんじゃないかということで.

後に, 仕事でほとんど Windows を使っていないのでもうガン無視してよくなった. メモも Mac や Linux, もしくは ブラウザで取るのでいい.

なんで Spacemacs じゃないの?

Spacemacs にする(というか戻る)ことも考えたのだが, やりたいことがコードをバリバリ書くエディタじゃなくて, 日本語(Markdownとorg-mode)を書くエディタなこと, なんでもできるエディタというより特定の要素にフォーカスしたエディタにしたかったのでやめた.

やったこと

成果物は GitHub にリポジトリをつくったので, 結果はそちらで.

github.com

ちなみに現在, リポジトリに Python 環境の設定とか書いてあるが使っていない. たぶん今後使われることはない気がする.

パッケージマネージャー

使い慣れた package.el で, 特に書きたいこともない. 手前味噌だが, もし知らなければ下記などが参考になるかと.

blog.515hikaru.net

Markdown

package-isntall RET markdown-mode しかしていない. 見た目は悪いが, とりあえず気にしないことにした.

Markdown 拡張ではないですが, open-junk-file と組み合わせて, 記事を書くテンプレート Markdown を作る関数を定義している.

(defun open-article-file ()
  (interactive)
  (setq open-junk-file-format "~/Dropbox/emacs/articles/%Y/%m/%Y%m%d-")
  (open-junk-file)
  (insert "# TITLE\n\n")
  (insert "### \n\n")
  (insert "<!-- more -->\n\n")
  (insert "### "))

プレビューとかつけていない. Markdown ってプレビューあっても僕はほとんど見ないことに気づいた. 投稿直前に見直せれば十分.

org-capture

例えばコードを書いていたり, ブログ記事を書いていたりしているときに, 今やっていることと 全く関係ない思いつきやタスクをメモしたりするときに, org-capture が便利.

次の2つを参考にした.

色々 Org Capture&nbsp;するskalldan.wordpress.com

ganmacs.hatenablog.com

(setq org-capture-templates
      ;; TODO リスト
      '(("t" "Todo" entry (file+headline "~/Dropbox/emacs/org/todo.org" "Tasks")
             "* TODO %?\n %i\n %a")
      ;; メモファイル
        ("n" "Note" entry (file+headline "~/Dropbox/emacs/org/notes.org" "Notes")
             "* \n%?\n%U\n%i")))

既存の作業にすぐ戻れる余地を残しつつ, かつ全く違う作業にシフトできるので便利.

まとめ

コードを書くテキストエディタは小規模だったら Vim, 規模が大きければ VSCode, PyCharm など IDE ともう決まっているのだが, 日本語を書くエディタはとても頻繁に変わっている気がする. どれもしっくり来ないんでしょう.

この環境もいつまで使い続けるのかわかりません. もしかしたらやっぱり自分で環境を作るのはダメだなとまた有料エディタに戻すかもしれない. が, とりあえず 2018 年のスタートはこれで行こうと思う.

追記

書き忘れたことがあった.

メモ環境には直接関係がないが, ちょっと便利になった拡張があったので紹介する.

window 最大化

github.com

起動したときに, windowが小さい. 勝手に最大*3にならないだろうかと思っていたらやっぱり同じことを考える人はいるようで見つけた.

M-x package-install maxframe

と入力してインストールし,

(add-hook 'window-setup-hook 'maximize-frame t)

init.el に書き足せば終了. これで起動時に勝手にディスプレイいっぱいの Emacs になる. GUI版の Emacs を使っている人しか関係ないが.

*1:せいぜい5,000字程度のブログ記事の執筆とメモ

*2:要するに休日なので暇

*3:フルスクリーンではない