- better-defaults 20170613.2104(in MELPA)
- Fixing weird quirks and poor defaults
概要
Emacsは歴史がある分、古めかしい設定に固執している点があります。
ベテランはその挙動に慣れているから困らないだろうけど、
新参者にとっては使いづらいです。
そこで、 better-defaults.el は、よりよいデフォルト値を提供します。
本記事では変更点すべてを日本語で解説します!
- あいまいマッチの ido-mode が有効になる
- メニューバー 、 ツールバー 、 スクロールバー を非表示にする
- ファイルを閉じたとき、Emacs終了時に位置を保存する
- M-/ をより高度な M-x hippie-expand に置き換える
- C-x C-bを M-x ibuffer に置き換えてすぐに選択できるようにする
- M-zを M-x zap-up-to-char に置き換えて対象文字を削除しないようにする
- isearch は正規表現検索をデフォルトにする
- ただし、日本語ローマ字検索Migemo を使っているときは仇になるかも…
- ただし、日本語ローマ字検索Migemo を使っているときは仇になるかも…
- 対応する括弧を表示する
- タブのインデントをしない
- クリップボード・PRIMARYでコピー&ペーストできるようにする
- apropos.el で多くのシンボルを見付けるようにする
- マウスのヤンクは現在位置に
- ファイル保存時にファイル末尾に改行を入れる
- ベルを鳴らさないようにする
- ediff でフレームを使わない
- バックアップファイル は ~/.emacs.d/backups/ 以下に作成
インストール
パッケージシステムを初めて使う人は
以下の設定を ~/.emacs.d/init.el の
先頭に加えてください。
(package-initialize) (setq package-archives '(("gnu" . "http://elpa.gnu.org/packages/") ("melpa" . "http://melpa.org/packages/") ("org" . "http://orgmode.org/elpa/")))
初めてbetter-defaultsを使う方は
以下のコマンドを実行します。
M-x package-install better-defaults
アップグレードする方は、
以下のコマンドでアップグレードしてください。
そのためにはpackage-utilsパッケージが必要です。
M-x package-install package-utils (初めてアップグレードする場合のみ) M-x package-utils-upgrade-by-name better-defaults
インストールすると、 (package-initialize)
の時点で有効になるので、説明を読んで理解してください。
もちろん、一部だけをかいつまんで設定してもよいです。
特に Migemo を使っている人は戸惑うかもしれません。
内容
これがすべてです。
(progn ;;; ido-mode ;; C-x C-fやC-x bでファイルやバッファを開くとき ;; 部分文字列を指定してC-s/C-rで選択できるようにする (ido-mode t) ;; あいまいマッチ ;; 候補に "alpha", "beta", "gamma", "delta" があるときに ;; "aa" → "alpha", "gamma" ;; "ea" → "beta", "delta". ;; つまり文字を飛び超えられる! (setq ido-enable-flex-matching t) ;;; メニューバー・ツールバー・スクロールバーを切る (menu-bar-mode -1) (when (fboundp 'tool-bar-mode) (tool-bar-mode -1)) (when (fboundp 'scroll-bar-mode) (scroll-bar-mode -1)) ;;; M-z (zap-to-char)の亜種、zap-up-to-charを使えるようにする (autoload 'zap-up-to-char "misc" "Kill up to, but not including ARGth occurrence of CHAR." t) ;;; uniquify.el ;; 違うディレクトリで同じファイル名のファイルを開いたときに ;; バッファ名にディレクトリも付記するようにする ;; Emacs 24.4ではデフォルト (require 'uniquify) ;; /foo/bar/mumble/name, /baz/quux/mumble/nameというファイルなら ;; それぞれ bar/mumble/name, quux/mumble/name というバッファ名に ;; ただし、Emacs 24.4デフォルトでは post-forward-angle-brackets ;; に設定されるので name<bar/mumble>, name<quux/mumble> になる。 (setq uniquify-buffer-name-style 'forward) ;;; saveplace.el ;; ファイルを閉じたとき、次に開くときはその場所(point)から開く (require 'saveplace) (setq-default save-place t) ;;; デフォルトのキーバインドをより高機能なコマンドに置き換える ;; dabbrev-expand -> hippie-expand ;; dabbrev以外にも様々な展開・補完ができるようになる (global-set-key (kbd "M-/") 'hippie-expand) ;; list-buffers -> ibuffer ;; バッファメニューを高機能なibufferに! ;; 何よりバッファメニューがカレントになる!! (global-set-key (kbd "C-x C-b") 'ibuffer) ;; zap-to-char -> zap-up-to-char ;; zap-to-charはその文字までを削除するが ;; zap-up-to-charはその文字の直前までを削除する ;; その文字も削除したければ直後にC-dを押せばいい (global-set-key (kbd "M-z") 'zap-up-to-char) ;;; 普通のisearchと正規表現isearchのキーバインドを逆転 (global-set-key (kbd "C-s") 'isearch-forward-regexp) (global-set-key (kbd "C-r") 'isearch-backward-regexp) (global-set-key (kbd "C-M-s") 'isearch-forward) (global-set-key (kbd "C-M-r") 'isearch-backward) ;;; 対応する括弧を表示してくれる (show-paren-mode 1) ;;; タブでインデントしない (setq-default indent-tabs-mode nil) (setq ;; クリップボードでコピー&ペーストできるようにする x-select-enable-clipboard t ;; PRIMARY selectionを使う(Windowsでは対象外) x-select-enable-primary t ;; クリップボードでコピー・カットした文字列を ;; キルリングにも保存させる save-interprogram-paste-before-kill t ;; M-x apropos等でより多くのシンボルを見つけるようにする ;; ただし、ちょっと遅くなる ;; ;; M-x apropos-user-optionはすべての変数を ;; M-x apropos-commandはすべての関数を ;; M-x apropos-commandはすべてのシンボル(関数、変数、フェイス以外も) ;; M-x apropos-valueは属性リストや関数内も ;; M-x apropos-documentationはetc/DOC以外のすべての説明文字列も apropos-do-all t ;; マウスでyankしたとき、クリックした場所ではなくて現在位置を対象に mouse-yank-at-point t ;; 保存時にファイル末尾に改行を入れる require-final-newline t ;; エラー時などはベル音ではなくて画面を1回点滅させる visible-bell t ;; ediff時に新しいフレームを作らない(シンプルになる) ediff-window-setup-function 'ediff-setup-windows-plain ;; ~/.emacs.d/placesにファイル・位置情報を保存する save-place-file (concat user-emacs-directory "places") ;; バックアップファイルはカレントディレクトリではなく ;; ~/.emacs.d/backups 以下に保存する backup-directory-alist `(("." . ,(concat user-emacs-directory "backups")))))
Migemo使いはisearchをデフォルトに戻す
(global-set-key (kbd "C-M-s") 'isearch-forward-regexp) (global-set-key (kbd "C-M-r") 'isearch-backward-regexp) (global-set-key (kbd "C-s") 'isearch-forward) (global-set-key (kbd "C-r") 'isearch-backward)
text-mode (org-mode 等も含む) で文章を書いているときのみ
デフォルトに戻し、他(コード等)は正規表現isearchをデフォルトに
するときはこのようにしよう。
(define-key text-mode-map (kbd "C-M-s") 'isearch-forward-regexp) (define-key text-mode-map (kbd "C-M-r") 'isearch-backward-regexp) (define-key text-mode-map (kbd "C-s") 'isearch-forward) (define-key text-mode-map (kbd "C-r") 'isearch-backward)
本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。