Monday, May 28, 2007

特定のディレクトリ以下を read-only で開く

ソースコードを読むことが中心の場合


$ find -type f | chmod 444


とかするのも一つの手だが、こうすると今度は編集したいときにいちいち警告が出たり、モードを替えねばならなかったりしてめんどくさい。

メンテナンス中心のソースコードで読むことが作業のほとんどな場合は以下のような設定を.emacs にしておいて、開いた時に read-only か less-mode になるようにしておくのがお薦め。


(add-hook 'find-file-hooks '(lambda ()
(if (buffer-file-name)
(if (eq 0 (string-match "/PATH_TO_YOUR_READONLY_DIR/"
(buffer-file-name)))
;(less-minor-mode))))) ;もし less.el をインストールしているのならこちらがおすすめ
(toggle-read-only)))))


read-only なディレクトリをリストにして管理したりするのはまだ今後の課題。

Sunday, May 27, 2007

emacsでタブ挿入コマンドを作る

通常のタブキーがモードによってスペースのインデント挿入に割り当てられていたりするのでC-xi でタブ挿入ができるようにした。
元のショートカット insert-file は使ったことがないので無視


(global-set-key "\C-xi" '(lambda (&optional n)
(interactive "P")
(insert "\t")))

Saturday, May 05, 2007

desktop-read で hs-minor モードが dired mode に対しトラブルを起こす

desktop-read で読み込んでいたバッファを復活させようとしたときに hs-mode がトラブルを起こすことがあるので以下のように .emacs あたりに書いておく

(add-hook 'dired-before-readin-hook
'(lambda()
(setq hs-minor-mode nil)
))