MacのEmacsのフォントサイズをCommand-+, Command--で変更する

Macのアプリケーションは、フォントサイズ変更のショートカットがCommandキーと+, -になっているのが普通なので、Emacsもそれに合わせたい。

CommandキーはEmacsではSuperキーとして扱われるので、次のようにキーマップを変更する。

(global-set-key (kbd "s-+") 'text-scale-adjust)
(global-set-key (kbd "s--") 'text-scale-adjust)

Hiki のバージョンアップ

Hikiを動かしていたサーバがもろもろバージョンアップされてHikiが動かなくなった。この機会に他の Wiki clone か Google Apps とかに乗り替えようかと思ったが、いまいち良さげなものがないので、Hikiのバージョンを上げる(よくわからないが2.0.0pre1らしい)ことにした。

  • Ubuntuだとパッケージもあるが、バージョンが古いようだったので、GitHubからzipを落としてきてインストール。
  • rbenvを使っているので、Apacheから実行する時はPATH上にrubyが無い。Emacs の find-grep-dired で /usr/bin/env ruby が書いてあるファイルを探して、/usr/local/lib/rbenv/versions/2.0.0-p247/bin/ruby に書き換える。(Apacheのユーザにもrbenvの設定をすれば良いのか?)

ついでに hiki-mode.el もインストール。

バージョンアップとは関係ないが、Hikiでサポートされていないマークアップを生のHTMLで書く方法がないので不満に思っていたが、プラグインが簡単に作れるので、自分でどんどんプラグインを作ればよいと分かった。参考資料:Hikiプラグインの作り方 第一回 - えすにズムの坩堝

EmacsでURLを開く時、今のデスクトップにSafariのウインドウを開く

Emacsの中でbrowse-url-at-pointなどを使うとSafariでURLを開くことができるが、複数デスクトップを使っていて、他のデスクトップにSafariのウインドウが開いていると、そこで開いてしまう。そうではなくて、今のデスクトップに新しいSafariのウインドウを開かせる方法。

まず、次のAppleScriptのプログラム safari-new-window.scpt を作ってどこか適当なところに置く。

on run argv
    tell application "Safari"
        make new document at end of documents with properties {URL:item 1 of argv}
        activate
    end tell
end run

~/.emacs.d/init.el に次の行を追加。

(eval-after-load "browse-url"
  '(defun browse-url-default-macosx-browser (url &optional new-window)
     (interactive (browse-url-interactive-arg "URL: "))
     (start-process (concat "open " url) nil "osascript" "/path/to/safari-new-window.scpt" url)))

ただし /path/to は safari-new-window.scpt を置いた場所に書き換える。

Ubuntuで/bootがあふれる

アップデートを繰り返すと、古いカーネルが溜まっていくので、そのうち/bootがあふれてしまう。

古いカーネルのパッケージ名を調べる:

$ dpkg -S /boot/vmlinuz-*

パッケージを削除する:

$ aptitude purge パッケージ名

Org-mode と Home-mode の衝突解消

一つのファイルで Org-mode と Howm-mode の両方を使っていると、

[[hoge]]

というのがそれぞれリンクとして解釈されるので、挙動がおかしくなる。Howmwiki風リンクよりもOrgの external link の方が使いでがありそうなので、Howm側のwiki風リンクの機能を消すことにする。

home-mode.el の252行目の ,wikiコメントアウト

$ diff -c howm-mode.el~ howm-mode.el
*** howm-mode.el~	2012-06-25 20:01:45.000000000 +0900
--- howm-mode.el	2013-09-03 16:36:26.000000000 +0900
***************
*** 249,255 ****
                  ,explicit
                  ,rev
                  ,@(if ks (list implicit) nil)
!                 ,wiki
                  ,@(if (howm-menu-p) nil (list date done))
                  ))
           )
--- 249,255 ----
                  ,explicit
                  ,rev
                  ,@(if ks (list implicit) nil)
! ;                ,wiki
                  ,@(if (howm-menu-p) nil (list date done))
                  ))
           )

MacのOpenOfficeでEmacs風キーバインディング

MacのアプリケーションはEmacs風キーバインディングが使えるはずだが、なぜかOpenOfficeは C-p, C-n, C-a, C-e は使えるのに C-f, C-b が使えなくてイライラする。ググってみたところ、OpenOffice Community Forumに解決法が書いてあった。要するに、OpenOfficeのバグでコントロールキーが認識されない場合があるので、MacOSXのショートカット機能を使って呼び出す。そのためにはメニュー項目である必要があるので、カーソルを動かす機能をメニューに入れておく。

  1. OpenOfficeの[ツール]→[カスタマイズ]→[メニュー]で、編集メニューに「文字の右」と「文字の左」というメニュー項目を追加する。
  2. システム環境設定の[キーボード]→[キーボードショートカット]→[アプリケーション]で、新しいショートカットを追加する。アプリケーションはOpenOffice、メニュータイトルは「文字の右」か「文字の左」。

EmacsでRails

list-packagesの中をrailsで検索してみると、helm-railsとrinariがある。helm-railsの方が新しそうだけど、anythingからhelmに乗り換えるのが面倒なのでrinariを入れてみる。

  • インストールする時にファイルが見つからないというエラーが出たが、手でバイトコンパイルすると問題ないようなので、気にしない事にする。
  • マニュアルにはido-modeと一緒に使えと書いてあるが、anythingと同じようなものだと思われるので、無視する。

init.elの中でglobal-rinrai-modeを実行しておけば、それらしいファイルを編集する時に自動的にrinari-minor-modeがオンになる。ただし、パッケージで入れた場合は、例によって設定のタイミングを遅らせなくてはいけない。

(add-hook 'emacs-startup-hook
	  (function (lambda ()
		      (global-rinari-mode))))