Macで手に馴染むエディターがなかなかなくて、atomとかも使ってたのですが、どうも馴染めなくて楽しくない(笑)
Emacsはいいかもと漠然と思っていて、いままで何度か挫折してきたりしたが、再度チャレンジしてみようと思う。
目標は、macOS、Windows、Linuxで共通の操作性、、、
WindowsではWzエディターをEmacs風キーバインドでずっと使ってたので、基本のカーソル操作とかは問題なさそう。
macOSはUnixベースなので、Emacsは色々使われていて実績も多い。
まずは、macOSでの環境構築から始めたので備忘録としてメモを残す。Windowsについては、後の記事で紹介していく。
iTerm2をインストール
macOSにはbashベースの「コンソール」が標準で装備されているが、「iTerm2」は色々とカスタマイズ可能な高機能コンソールアプリ。
Metaキーなどのキーカスタマイズできるので、「iTerm2」をインストールして、そのコンソールからEmacsを起動する。
下記URLから Download ボタンで、iTerm2をダウンロード
https://www.iterm2.com/index.html
zip圧縮されているのでクリックで解凍し、アプリケーションフォルダにコピー。
Meta キーを左Command キーに割り当てる
まずは、Metaキーを操作しやすいキーに割り当てておく。いままで、これで挫折してたが、今回はiTerm2のお陰でなんとかなりそう。
以下のようにiTerm 2 の設定を変更。iTerm2メニューの [Preferences...
] から下記を変更。
Profiles → Keys:Left option (⌥) key acts as で [+Esc] をチェック
Profiles → Keys:Right option (⌥) key acts as で [+Esc] をチェック
Keys → Remap Modifier Keys で [Left command (⌘) key:
] を [Left Option
] にリマップ
Keys → Remap Modifier Keys で [Left option key:
] を [⌘ Left Command
] にリマップ
これで、CUIコンソール操作時、左⌘ command
キーが Metaキーになった。又、command+W
キーでiTerm2が不意に終了しなくなった。
Emacsのインストール
brewから下記コマンドで「Emacs Mac Port」をインストール。
尚、brewインストールに関しては、過去記事を参照。
$ brew tap railwaycat/emacsmacport
$ brew install emacs-mac --with-modern-icon
$ ln -s /usr/local/opt/emacs-mac/Emacs.app /Applications
【Note】
--with-modern-icon
を指定しないと、アイコンがGNUの牛になる。$ brew install emacs --with-cocoa
で本家のGNU Emacsも試したが、ATOKでの日本語入力時にチラついたりした。- アンインストールするには
brew uninstall emacs-mac
、アプリケーションのリンクは手動で削除
Emacsの起動
iTerm2から、下記コマンドで起動できる事を確認
$ emacs --version
.bash_profile
に下記エリアスを定義し、e
だけで起動。
alias e='emacs'
尚、Emacsの終了は
C-x C-c
コマンドから抜けるには
C-g
macOSのCtrl+Spaceのショートカットを無効にする
macOSはデフォルトでは、Ctrl+Spaceキーに機能が割り当てられているので無効にする。(Emacsではリージョン選択で使われるので)
システム環境設定→キーボード→ショートカット→「前の入力ソースを選択」のチェックを外す。(又はF13などの別のキーに変更する)
Emacsの初期設定ファイル
初期設定ファイルは、~/.emacs.d/init.el
ファイルに記述
まずは、下記を記述
;; C-hをbackspaceにする
(global-set-key (kbd "C-h") 'delete-backward-char)
;; Meta キーを左Command キーに割り当てる
(when (eq system-type 'darwin)
(setq ns-command-modifier (quote meta)) )
続いて、下記設定を追加
(set-language-environment 'Japanese) ; 日本語環境
(set-default-coding-systems 'utf-8-unix) ; UTF-8 が基本
(set-terminal-coding-system 'utf-8-unix) ; emacs -nw も文字化けしない
(setq default-file-name-coding-system 'utf-8)
(setq default-process-coding-system '(utf-8 . utf-8))
(prefer-coding-system 'utf-8-unix)
;; ロックファイル / バックアップファイルを作成しない
(setq create-lockfiles nil)
(setq make-backup-files nil)
(setq delete-auto-save-files t)
;; 自動保存ファイルを作成しない
(setq auto-save-default nil)
;; 対応するカッコを強調表示
(show-paren-mode t)
;; 時間も表示させる。
(display-time)
;; 行番号を常に表示させる
(global-linum-mode)
(setq linum-format "%4d ")
(column-number-mode t) ; 行番号と列番号を表示する
;; 現在行を目立たせる
(setq hl-line-face 'underline)
(global-hl-line-mode)
;; テーマを設定する
(load-theme 'manoj-dark t)
GUI版をコンソールコマンドから起動できるにする
.bash_profile
に下記エリアスを定義し、ee
で起動。
alias ee='open -a /Applications/Emacs.app $1'
パッケージ管理
Emacs 24 からパッケージ管理がデフォルトで出来るようになったらしく(package.el)
下記の設定を、~/.emacs.d/init.el
に追記する。
(require 'package)
(add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/") t)
(add-to-list 'package-archives '("marmalade" . "http://marmalade-repo.org/packages/") t)
(package-initialize)
パッケージをインストールするには、
M-x list packages
パッケージリストの更新は、
M-x package-refresh-contents
尚、インストールされたパッケージ情報は ~/.emacs.d/elpa/
フォルダに格納される。
undo-treeパッケージを入れる
undoのやり直しがredoであるが、Emacsのデフォルトではredoがわかりにくい。
そこで、undo-treeパッケージをインストールし、redoを快適に使えるようにする。
下記コマンドでundo-tree
パッケージのインストール
M-x package-install<RET>
undo-tree
続いて、~/.emacs.d/init.el
に下記設定を記述しundo-tree
を有効にする。
;;
;; undo-tree
;;
;; undo-tree を読み込む
(require 'undo-tree)
;; undo-tree を起動時に有効にする
(global-undo-tree-mode t)
;; M-/ をredo に設定する。
(global-set-key (kbd "M-/") 'undo-tree-redo)
これで、M-/ でredoが何度もできるようになる。
また、C-x u で、修正履歴がツリー表示され、好きな箇所に戻れる。
環境設定ファイルをGit管理
Emacsの初期設定ファイルは、いくつか定義できる場所があるが、~/.emacs.d/init.el
に記述しておく。
そして~/.emacs.d/
フォルダを、Gitサーバのリポジトリに登録し管理する。
これにより、他のMacやWindows、更にはLinuxで初期設定ファイルを共用できるようにしておく。
Emacsチャートシート
- Emacsの基本的なキー操作の一覧を1シートにまとめた「Emacsチャートシート」のPDFが、技術評論社の下記URLから入手でき参考になる。早見表として便利。
サポートページ:Software Design 2015年10月号 - 英語ではあるが、下記URLの「GNU Emacs Reference Card」も便利。
GNU Emacs Reference Cards - GNU Project - Free Software Foundation
所感
使ってみた感じ、思った以上にキビキビ動いて快適。そしてなんだか楽しい!(笑)
どんな事でもカスタマイズできそうで、都度、発見と驚きもあって少しづつ便利になっていくのが嬉しい。以前AIが流行った頃にLisp言語もかじった事もあったが、改めて勉強してみたくなった。
今まで、なんだか面倒という意識で、本気で使えてなかったけど、もっと早くからEmacsに取り組んでおけば良かったなと感じる。
<2017/01/25 追記>
私の使っている設定ファイル一式をGitHubに公開したのを下記記事で紹介。
補足
追記(2022/04/17)
Emacs 28.1にバージョンアップされました。(下記記事参照)
- 上記手順で
pacman
コマンドでインストールすれば、その時点の最新版がインストールされる。
参照記事
- 【macOS】パッケージマネージャー「Homebrew」を使う
- 【Emacs】Mac/Win及びGUI/CUIで初期設定ファイルを兼用する
- 【macOS】EmacsをServerで自動起動(emacsclientで高速化)
- 【Emacs 25】初期設定ファイルをGitHubに公開
- iTerm2 – 新石器Wiki
参考
- GitHub – railwaycat/homebrew-emacsmacport: Emacs mac port formulae for the Homebrew package manager
- GNU Emacs – GNU Project
- Emacs 25.1 を EMP版で快適に使う – Qiita
- Emacs Mac PortをHomebrewからインストールする – Qiita
- iTerm2を使いこなす – おしゃれな気分でプログラミング
- MacのiTerm/Emacsでメタキーを快適に使いたい – Qiita
- 突然だがEmacs を始めよう – Qiita
- Emacs の使い方 基本のキー | プログラマーズ雑記帳
- Emacs24に最初から同梱されているテーマ – AOEの日記
- MacでWindows用キーボードを使う。Mac OS Sierra対応版(フリーソフト使用):OBAKESAN.net|オバケサン
- るびきち「新生日刊Emacs」
コメント