Mac でキーリピートの速度設定を変更する

PC を使う際に自分の好みにあわせて色々と設定を変更することがあると思います。

Emacs などはその最たるものというか、こだわろうと思えばいくらでもカスタマイズができるので使用者にフィットした設定ができる反面、設定を煮詰める作業に多大な時間コストがかかるという諸刃の剣的な側面を持っているような気もします。

そういったアプリケーションの設定だけでなく、OS 自体についてもデフォルトの状態で使うのではなくいろいろと変更を加えたい部分があります。私の場合、キーリピートの速度もそのひとつです。

Mac の場合、システム環境設定の「キーボード」の中に「キーのリピート」、「リピート入力認識までの時間」という項目があり、ここを変更することでキーを押しっぱなしにしたときに連続して入力される速さを調整できます。キーリピートを速くすればするほど、押している間に入力される文字の数が多くなります。

私はどちらも一番速い設定にしていますが、それだけではまだ足りず、各種キーマッピングを変更できるユーティリティソフトウェア KeyRemap4MacBook [1] の方でも設定することでさらに速くしています。

今のところは「Delay Until Repeat」を 200ms、「Key Repeat」を 15ms にしています。Key Repeat は少し前までは 60ms にしていたので、15ms は少々速すぎるかなという気もしますが使っているうちに慣れてくる部分が大きいのでもう少しこのまま使っていこうと思います。

キーリピートが速いとスクロールさせるときの待ち時間が短くなり全般的にテキパキと入力・編集ができるのでおすすめですよ。

参照したページ

more ...

Emacs でバッファを常に自動で保存する

書籍 Binary Hacks やインクリメンタル検索の Migemo 等で有名な(と個人的には認識していました)高林哲さんのエントリで紹介されていた auto-save-buffers を導入してみました。

指定した時間ごとに変更があったバッファを自動で保存してくれるので C-x C-s を自分で入力する必要がなくなります。とりあえず標準の 0.5 秒で設定してみます。ちょっとでも編集するとすぐ保存されます。

なかなか便利そうで気に入りました。ただ、Dropbox で他の人と共有しているファイルの場合だと、保存するたびに相手のデスクトップでは「ファイルが更新されました」という通知が発生することになり、かなりうるさくなってしまうので特定のディレクトリにあるファイルを除外するようにします。

;; auto-save-buffers
;; http://0xcc.net/misc/auto-save/
(require 'auto-save-buffers)
;; Dropbox/share 以下のファイルは除外する
(run-with-idle-timer 0.5 t 'auto-save-buffers "" "Dropbox/share/.*\\..*$")

auto-save-buffers の引数としてディレクトリ・ファイル名の正規表現を渡せるようになっていました。ふむふむ。

あ ...

more ...

bash で大文字・小文字の区別をせずファイル名を補完する

~/.inputrc に以下のように書いて保存し、ターミナルを再起動すると反映されました。source .inputrc だけでは反映されなかったので .bash_profile などを読ませる必要があったのかもしれません。

set completion-ignore-case on

ちなみに Emacs では init.el に下記のように書いておくと区別せず補完してくれます。

;; 大文字小文字を区別しない
(setq completion-ignore-case t)

参照したページ

more ...

Pelican のファイルを Dropbox に置いた

Pelican のような静的 blog ツールではローカルで reST なり Markdown なりで書かれたテキストから記事の html を生成して、それをサーバーにアップするという方式を取ります。

そのため、MovableType や WordPress などのサーバーにインストールするタイプと異なり、どの PC からでもログインできる管理画面があるわけではなく、使用している blog ツールのプログラム本体と記事データが基本的に PC の中にあることになります。

この blog を自宅の Mac mini だけでなくノート PC からでも更新できるようにするにはそれらのデータをマシン間で共有する必要があるのです。なのでノートの方でも Python 3.3 系に Pelican をインストールし(pip install pelican とするだけ)、データ一式のディレクトリを Dropboxに置きました。

データの場所を変更しても特に設定ファイルの変更などは不要で、そのまま同じようにビルドできたので一安心です。

more ...

Pelican で手軽に記事ファイルを作成する

Pelican では reST 形式でテキストファイルを作成してその中身が HTML として作成されます。Emacs で autoinsert を使ってメタデータのテンプレートが自動で入るようにしたり していますがさらにお手軽に reST のテキストを書けるようにしたいと思い、少し Emacs をいじっていました。

  1. open-junk-file を流用して reST ファイルを作成する
  2. key-chord を設定して df 同時押しで↑を実行する

やったことは簡単で、まず open-junk-file.el をコピーしてリネームします。適当に open-rest-file.el としておきました。 ファイルの中身を開いて open-junk-file という文字列をすべて open-rest-file に置換します。

init.el に設定を書きます。ファイルの保存先ディレクトリとファイル名の形式を指定しましょう。

;; open-rest-file
;; open-junk-file をコピー
;; http://d.hatena.ne ...
more ...

Emacs のフォントサイズを変更する

Emacs のフォントサイズを変えたいというときに、これまでは init.el に書いている設定を書き換える方法しか知りませんでした。先日別のことを調べている際にもう少し便利な方法があることを知りました。

C-x C-+ ;; フォントを大きくする
C-x C-- ;; フォントを小さくする

上記キーバインドで現在のバッファのフォントサイズを変更できるのですね。(英字配列のキーボードの場合)"+" は shift と = を押さなくても = だけで大丈夫でした。

一回これを入力すると、ミニバッファに

+,-,0 for further adjustment:

と表示されて、続けて +,-,0 を単独で押せばそのままさらに大きく(小さく)したり、デフォルトの大きさに戻したりすることができます。これはなかなか便利ですね。

more ...

Pelican で syntax highlight を使用する

Pelican でコードを色分け表示(syntax highlight)をするのはどうしたらよいのかを調べました。Pelican では Pygments という Python のモジュールを使っているようなので Pygments のサイトを確認します。

書き方は .. sourcecode:: language-name というタグ(ディレクティブというのでしたっけ?)を書いて続くコードをインデントすればよいようです。

.. sourcecode:: python

   import os

   for i in range(10):
       print i

ちなみに Emacs lisp の場合は scheme と指定すれば OK でした。

あ、こちらにも解説が書かれていますね。 sourcecode ではなく ...

more ...

Emacs autoinsert でテンプレートを使う

Pelican ではエントリを reST で書いています。ファイルの冒頭部分に投稿日時やカテゴリ、タグなどのメタデータを記載するフォーマットがあって以下のように書いています。

:date: 2014-03-08 17:00:25
:category: misc
:tags: Emacs, reST, Pelican
:slug: emacs-autoinsert

毎回これを手で入力するのは手間なので過去のファイルからコピペしていたのですが、それもどうかと思い、yasnippet を導入してみようと考えたのでした。

今のところは yasnippet も導入できていないので別のアプローチということでファイル作成時に自動であらかじめ用意したテンプレートを読み込んで記述してくれる autoinsert を使ってみることにしました。

まずは ymotongpoo さんのエントリを見てそのまま真似してみました。そのあとでファイル作成時の日時を Pelican で使用しているフォーマットで挿入したかったのでその部分を書き換えています。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16 ...
more ...