More than 1 year has passed since last update.

高機能で人気のエディターソフト、Emacs(イーマックス)をもっと便利に使うための設定についてまとめました。

高機能のエディターソフト、Emacs

システム開発では、エディターは必携のツールです。VimやEmacs、Sublime Text、mi、サクラエディタなどさまざまなテキストエディターが知られていますよね。最近では、GitHubが開発したAtomなんかも注目を浴びています。

本記事のテーマは、プログラミング用として人気が高く、カスタマイズ性にも優れたEmacs(イーマックス)です。オススメの基本設定についてまとめました。

Emacsの基本設定オススメまとめ

Emacsの設定ファイルは .emacs.el です。設定情報はこちらに書き込んでいきましょう。ファイルは ~/.emacs.el にあります。

もちろん、コンパイルも忘れずに。

.emacs.el
;; ロードパスの設定
(setq load-path (append
                 '("~/.emacs.d"
                   "~/.emacs.d/packages")

;; 環境を日本語、UTF-8にする
(set-locale-environment nil)
(set-language-environment "Japanese")
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
(set-buffer-file-coding-system 'utf-8)
(setq default-buffer-file-coding-system 'utf-8)
(set-default-coding-systems 'utf-8)
(prefer-coding-system 'utf-8)

;; スタートアップメッセージを表示させない
(setq inhibit-startup-message t)

;; バックアップファイルを作成させない
(setq make-backup-files nil)

;; 終了時にオートセーブファイルを削除する
(setq delete-auto-save-files t)

;; タブにスペースを使用する
(setq-default tab-width 4 indent-tabs-mode nil)

;; 改行コードを表示する
(setq eol-mnemonic-dos "(CRLF)")
(setq eol-mnemonic-mac "(CR)")
(setq eol-mnemonic-unix "(LF)")

;; 複数ウィンドウを禁止する
(setq ns-pop-up-frames nil)

;; ウィンドウを透明にする
;; アクティブウィンドウ/非アクティブウィンドウ(alphaの値で透明度を指定)
(add-to-list 'default-frame-alist '(alpha . (0.85 0.85)))

;; メニューバーを消す
(menu-bar-mode -1)

;; ツールバーを消す
(tool-bar-mode -1)

;; 列数を表示する
(column-number-mode t)

;; 行数を表示する
(global-linum-mode t)

;; カーソルの点滅をやめる
(blink-cursor-mode 0)

;; カーソル行をハイライトする
(global-hl-line-mode t)

;; 対応する括弧を光らせる
(show-paren-mode 1)

;; ウィンドウ内に収まらないときだけ、カッコ内も光らせる
(setq show-paren-style 'mixed)
(set-face-background 'show-paren-match-face "grey")
(set-face-foreground 'show-paren-match-face "black")

;; スペース、タブなどを可視化する
(global-whitespace-mode 1)

;; スクロールは1行ごとに
(setq scroll-conservatively 1)

;; シフト+矢印で範囲選択
(setq pc-select-selection-keys-only t)
(pc-selection-mode 1)

;; C-kで行全体を削除する
(setq kill-whole-line t)

;;; dired設定
(require 'dired-x)

;; "yes or no" の選択を "y or n" にする
(fset 'yes-or-no-p 'y-or-n-p)

;; beep音を消す
(defun my-bell-function ()
  (unless (memq this-command
        '(isearch-abort abort-recursive-edit exit-minibuffer
              keyboard-quit mwheel-scroll down up next-line previous-line
              backward-char forward-char))
    (ding)))
(setq ring-bell-function 'my-bell-function)

;; Macのキーバインドを使う
(mac-key-mode 1)

;; Macのoptionをメタキーにする
(setq mac-option-modifier 'meta)