存在を忘れられる備忘録

あれこれTwitterじゃ流れるから残しときたい書き物用

init.elのお話(前編)

ブログタイトル通りのことになっていたので更新。

この4ヶ月間でEmacsのinit.elが気づけば400行近くになっていたので、どういう設定をしているのかを確認するついでに便利だと思うものを紹介。前編では(多分)init.elに書くだけでいいお手軽なものを紹介。

load-path

(let ((default-directory (expand-file-name "~/.emacs.d/site-lisp")))
    (add-to-list 'load-path default-directory)
    (if (fboundp 'normal-top-level-add-subdirs-to-load-path)
        (normal-top-level-add-subdirs-to-load-path)))

確かこれで ~/.emacs.d/site-lisp 以下のディレクトリを全部ロードパスに追加してくれるはず。いちいちgit cloneするたびにload-path追加する必要とかなくなります。

ツールバーとかスクロールバーを消す

(tool-bar-mode 0)  ; ツールバーの非表示
(scroll-bar-mode -1)  ;スクロールバーの非表示

Emacs使ってる時にツールバーが必要になる場面が想像できないですし、限りある資源を有効活用するためにも消去した方がいいと思います。

スクロールバーに関しては大差無いような気もしますが、表示していると重くなるとかいう記事を何処かで見た気がします。

背景透過

(set-frame-parameter nil 'alpha 80 )

Emacsで背景に画像を表示しようとするとパッチ当てたりしないといけないみたいだったので、Emacsを透過してデスクトップの背景を表示させる作戦。かわいい女の子の画像が後ろに表示されてるだけで作業が捗る人種以外は、そこまで便利な設定でもないと思います。

対応する括弧の強調表示

(show-paren-mode 1)

その名の通り。emacs lispとか書いてるとかなり重宝します。

補完時に大文字小文字の区別をしない

(setq read-buffer-completion-ignore-case t)
(setq read-file-name-completion-ignore-case t)

無いと大文字のファイルを開く気が失せる。

行番号の表示

(add-hook 'find-file-hook (lambda () (linum-mode 1)))
(setq linum-format "%4d: ")
(setq linum-delay t)
(defadvice linum-schedule (around my-linum-schedule () activate)
(run-with-idle-timer 0.2 nil #'linum-update-current))

ただ行番号を表示させるだけなら上2行だけで大丈夫ですが、これがドチャクソ重いみたいで、軽くするために下3行の設定が必要、らしい。http://d.hatena.ne.jp/daimatz/20120215/1329248780 に詳しいことが。

C-kで行全体を削除

(setq kill-whole-line t)

最初の設定では改行だけ残すのを、改行ごと消す設定。C-k2回押しが身についている人は下手に有効にしないほうが良さそう。

wdiredによるファイルのリネーム

(require 'dired)
(require 'wdired)
(define-key dired-mode-map "r" 'wdired-change-to-wdired-mode)

diredのバッファを使ってファイルのリネームができる。その時に開いてるバッファ名とかもいい感じに変更してくれる。

コマンドラインからも現在開いているEmacsを使用

(require 'server)
(unless (server-running-p)
  (server-start))

そのまま。最初は有効にしてなかったけど、あると案外便利。

矩形選択

(cua-mode t)
(setq cua-enable-cua-keys nil)

Emacsデフォルトの矩形選択は使いにくさしかないですが、これを入れればC-Enterで矩形選択モードに入ることができます。

#!で始まるファイルに実行権限を与える

(add-hook 'after-save-hook
    'executable-make-buffer-file-executable-if-script-p)

chmod とか打ってられない人向け。正直そこまで使わない気もする。

後編に続く。