こんにちは、五所です。
最近、EmacsからSpacemacsに乗り換えました。
結論としては、非常に快適です。
EmacsとVimに対する想い
Emacsは、拡張性が非常に高いです。
エディタの枠を超えて、ファイラー、Gitクライアント、ターミナルエミュレーター、Webブラウザ、画像ビューア、などで使えます。
またタグジャンプや auto-complete.el
を使えばIDEとしての機能も満足できます。
Vimは、圧倒的なテキスト編集の速さが売りです。UIが優れています。
EmacsではCtrlキーを常に押している必要がありますが、Vimではモードの切り替えの概念があるため、カーソル移動時と入力時の指の使い方が全く異なります。 これが心地よく、キーコンボを入力するのは、まるで格ゲーをしているような気分にさせてくれます。
Spacemacs
両者を統合したのがSpacemacs(正確に言えばEvilパッケージ)で、 Emacsの高い拡張性の上で、VimのUIを実現しました。 またSpaceキーを起点としてEmacsのコマンドを発行することで、より速く効率的なキーバインドを実現しています。
公式サイトでは
The best editor is neither Emacs nor Vim, it's Emacs and Vim!
と言っています。
日本語の紹介記事もちらほらあります。
spacemacsについて ~~spacemacsが最強で最高で神エディタであると思い始めた件~~
Vimも秘伝のタレも飲み込むEmacsの超強力ディストリビューションSpacemacsまとめ
少しだけ紹介すると、
- Space f f でファイルを開く
- Space g s で Git status
- Space w w で ウィンドウ切り替え
- Space w - で ウィンドウ水平分割
など、かなり直感的です。
日本語入力について
※ ここからはLinuxでの話です。Macの方は別の解決策があるんじゃないかなと思います。Windowsは(ry
Vimは、日本語入力との相性の悪さが随所で指摘されています。
特にターミナルで使っている時は、モード切り替えによって、インサートモードからノーマルモードに移行すると、日本語入力のままになるので不便です。
これを防ぐために、
.vimrc
autocmd InsertLeave * call system('fcitx-remote -c')
という設定もありますが、特定のIMEに依存した挙動をあまり入れたくはありません。
Emacsでは、 mozc
パッケージを使うことによりEmacs上で日本語を入力できるようになります。
Emacsが日本語入力を制御するので、非常に柔軟な挙動が実現できています。
またMozcはGoogle日本語入力のオープンソース版なので、使いやすいでしょう。
SpacemacsでEvilモードを使ってVimのキーバインドを再現している時は、ターミナルのVimの日本語入力より数段快適です。
下記のような挙動です。
- ノーマルモードに切り替えると、自動的に日本語入力OFF
- インサートモードに切り替えると、自動的に日本語入力ON
で、これはSpacemacsとはあまり関係が無いのですが、EmacsでMozcを動かす設定です。
~/.spacemacs
(defun dotspacemacs/layers () ;; (中略) (setq-default dotspacemacs-additional-packages '( mozc ) ;; (中略) dotspacemacs-install-packages 'used-only)) (defun dotspacemacs/user-config () ;; (中略) ;; Mozc settings (set-language-environment "Japanese") (setq default-input-method "japanese-mozc") (setq mozc-candidate-style 'echo-area) (defun mozc-start() (interactive) (set-cursor-color "blue") (message "Mozc start") (mozc-mode 1)) (defun mozc-end() (interactive) (set-cursor-color "gray") (message "Mozc end") (mozc-mode -1)) (bind-keys* ("<henkan>" . mozc-start) (bind-keys :map mozc-mode-map ("q" . mozc-end) ("C-g" . mozc-end) ("C-x h" . mark-whole-buffer) ("C-x C-s" . save-buffer)) )
Mozcが有効になっている時は、カーソルの色を変えています。もっと分かりやすい色にしないと。
また、自分はUSキーボードを使っているので、下記の設定で右AltをHenkanキーにリマップしています。
~/.xmodmap
! Clear alt mapping clear mod1 ! Alt_R => Henkan ! Set Henkan to Fcitx & Emacs IME activation key keycode 108 = Henkan Henkan NoSymbol NoSymbol
Mozc自体のインストールは下記です。Archはパッケージ名が fcitx-mozc
と競合するので注意。
# Arch sudo pacman -S emacs-mozc # Ubuntu / Debian sudo apt-get install emacs-mozc
これで、日本語入力ができるようになりました。
ススメ
Emacs派も、Vim派も、そうでない方もSpacemacsをぜひ試してみて下さい。
インストールは、GitHubのREADMEに従えば、迷うことは無いと思います。