iPX社員によるブログ

iPX社員が"社の動向"から"自身の知見や趣味"、"セミナーなどのおすすめ情報"に至るまで幅広い話題を投下していくブログ。社の雰囲気を感じ取っていただけたら幸いです。

Windows と Emacs でのメモの取り方

初めに

また当番が回ってきました。砂子です。

何を書こうか迷いましたが、自分が行なっているEmacsでのメモの取りかたを 書いてみることにしました。もしかしたら既出の内容かもしれませんが、その 際はご容赦願います。

ある程度Emacsを知っている人向けの解説になります。

未来技術遺産にPC98シリーズが選ばれたのでそちらを書こうとも思いました が、それは次の機会にしましょう。http://sts.kahaku.go.jp/material/

前提

下記環境を前提とします。Windowsは多分7、8.xでも大丈夫です。 Emacsは本家のWindows版のバイナリを利用します。

記事の動作は上記で大丈夫ですが、本家版はIMEでの日本語入力に不具合が あります。ご注意ください。

WindowsEmacsを利用するのには幾つか方法があるのですが、私には強く推 薦できるものはありません。ここでは日本語入力には目を瞑って本家バイ ナリを使用します。

後述するemacsc.exeとemacsclientw.exeはEmacs本家のZIPを展開したbinフォ ルダに存在します。emacs.exeを実行するとEmacsが起動します。

Emacs

Emacs側では3つの事柄の説明が必要です。

  • org-mode
  • emacsclientw.exe
  • elisp

org-mode

org-modeはEmacs拡張機能の一つで独自のフォーマットで記述したテキス トファイルを操作して色々なことを実現します。

本記事で利用するのはメモをとる機能の org-capture とういうものです。 org-modeはEmacsに最初から付属していますから、利用に際して準備は必要 ありません。

emacsclientw.exe

emacsclientw.exeはEmacs本体を外部から操作する手段を提供するプログラ ムです。テキストファイルをコマンドラインからEmacsで編集したりできま す。

このプログラムを利用するためにEmacsの設定ファイルに下記を追加します。

(when (not (server-running-p))
  (server-start))

Emacsを再起動して、設定を反映させたら次のコマンドをコマンドプロンプ トで実行してみてください。

emacsclientw.exe -e "(make-frame)"

Emacsのウィンドウがもう一つ表示されれば設定は成功です。

elisp

上記でも少し触れましたが、Emacsは設定ファイルにelispというプログラ ミング言語を使って拡張します。

今回の目的の為に書いたelispは下記のようなものです。設定ファイルに書 きこんでEmacsを再起動します。

; メモ用のファイル指定とメモのテンプレートを指定
; ファイルは%USERPROFILE%フォルダに作成されます
(setq org-capture-templates
      '(("m" "Memo" entry (file+datetree "~/memo.org" "Memo")
         "* %?")))

; org-capture起動関数
(defun take-note ()
  (progn
    ; Emacsのウィンドウを最前面に移動
    (raise-frame)
    (set-buffer (car (buffer-list)))
    ; メモ用のバッファ表示
    (org-capture nil "m")))

Windows

必要なEmacsの準備は整ったのでWindowsでそれらを利用します。

  • ショートカットの作成
  • ショートカットキーの設定

ショートカットの作成

emacsclientw.exeのショートカットを作成します。作成したショートカッ トの名称を『take-note』とします。

そして、プロパティを開きリンク先の末尾に『 -e "(take-note)"』を追加 します。

これでこのショートカットを実行すると、起動しているEmacsが最前面に表 示されメモが書ける状態になります。

ショートカットキーの設定

ショートカットを作成しただけでは直ぐにメモを取れる状態とはいえませ ん。どのような状況からでも即座にメモを取れるようにショートカットキー を設定します。

そのためにまず作成したショートカットをスタートメニューに移動します。 エクスプローラのアドレスバーで『shell:start menu』でスタートメニュー のフォルダに移動できます。

移動したら再度プロパティでフォーカスをショートカットキーに移動させ、 このショートカットを起動するキーを決定します。ここではShift + Alt + \とします。

これでEmacsが起動している状態でショートカットキーを押せば、即座にメ モを取れます。

また、Windowsキーを押下して『take-note』と入力すればショートカット を実行できます。

結び

いかがだったでしょうか?Emacsをある程度知っていないと分からなかった かもしれません。

しかし、ショートカットを作成してショートカットキーで即座に実行や Windowsキーからキー入力で実行などは応用が効くと思います。

正直ショートカットキーがスタートメニューでだけ有効というのはこの機能 を考えたときに初めて知りました。プロパティにショートカットキーという 項目があったのは知っていたのですが。。。