個人的に便利なemacsの設定まとめ
一般的な設定
;; 変更のあったファイルの自動再読み込み (global-auto-revert-mode 1) ;; スタートアップメッセージを非表示 (setq inhibit-startup-screen t) ;; Emacsからの質問をy/nで回答する (fset 'yes-or-no-p 'y-or-n-p) ;; バックアップファイルを作らない (setq make-backup-files nil) ;; オートセーブファイルを作らない (setq auto-save-default nil) ;; タイトルバーにファイルのフルパスを表示 (setq frame-title-format "%f") ;; 起動時のサイズ,表示位置を指定 (setq initial-frame-alist (append (list '(width . 145) '(height . 125) '(top . 0) '(left . 0) ) initial-frame-alist)) (setq default-frame-alist initial-frame-alist)
行番号の表示
;; 行番号を表示 (require 'linum) (setq linum-format '(lambda (line) (let *1 "d")))) (propertize (format fmt line) 'face 'linum)))) (global-linum-mode)
行番号は最初と最後の1行ずつだけで表示できるようになるが,「最低幅を確保した上で,常に右寄せで行番号を表示させ」るための設定.
(min-w 6)の数字を変更すると最低幅が変わる.
optionキーに割り当てられている機能を無効にする
これはあまり需要がないかもしれないが,例えば日本語パンクチュエーションを「,」「.」に設定していて,たまに「、」「。」が打ちたいときがあるとする.あるいはバックスラッシュと円マークは,どちらかがデフォルトになっているとき,optionで他方に切り替えるようになっていることがある.
ひとつめの方法は,キーバインドを新設してしまうというもの.
;; option + ./,の定義 (define-key global-map (kbd "M-,") "、") (define-key global-map (kbd "M-.") "。")
これでも実用上さして不便はないが,ひとつひとつ設定しないといけない.
もし英語以外のヨーロッパ言語を打つ必要がある場合,optionが生きていないとかなり不便なはずだ.
そこで以下,スタックオーバーフローで教えてもらった方法.
;; optionキーのemacs上の機能を無効化 (setq ns-alternate-modifier 'none)
参考:
macos - emacs上で,ことえりから「.」と「。」を切り替えて入力する方法 - スタック・オーバーフロー
バッファ間のカーソル移動のキーバインド変更
これも需要がなさそうな設定だが,ことえりで日本語入力モードになっていると,C-x oのようにcontrolを離してから押下するキーがきかない.
これがストレスだったのでcontrolを押しっぱなしにするバインドを追加した.
;; カーソルを次のバッファに移動するキーバインドをC-x C-oに設定 ;; もとのキーバインドも有効 (define-key global-map (kbd "C-x C-o") 'other-window)
参考:
Emacs講座 -第5回- キーバインドの変更 / マスタカの ChangeLog メモ
カーソル移動系はほかにもいろいろ要望があるが,おいおい考える.
*1:fmt (let ((min-w 6) (w (length (number-to-string (count-lines (point-min) (point-max)))))) (concat "%" (number-to-string (if (< min-w w) w min-w