はじめに
-
Spacemacs
を使っていて設定したことを「Spacemacsの乗り換えてみた(1)」にちょこちょこ付け足していたが、なんだか長くなってきたので分割することにした
キーバインドの設定
dotspacemacs/user-config()の抜き出し
(defun dotspacemacs/user-config ()
"Configuration function for user code.
This function is called at the very end of Spacemacs initialization after
layers configuration.
This is the place where most of your configurations should be done. Unless it is
explicitly specified that a variable should be set before a package is loaded,
you should place your code here."
...
;;; personal key-bindings
(bind-key "C-h" 'delete-backward-char)
(bind-key "s-{" 'previous-buffer)
(bind-key "s-}" 'next-buffer)
(bind-key "s-[" 'previous-multiframe-window)
(bind-key "s-]" 'next-multiframe-window)
(bind-key "C-x o" 'ace-window)
(bind-key "C-x C-m" 'smex)
(bind-key "C-x m" 'smex-major-mode-commands)
(bind-key "C-x C-j" 'dired-jump)
(bind-key "C-x g" 'magit-status)
(bind-key "C-x M-g" 'magit-dispatch-popup)
...
;;; ivy-flx
(setq ivy-re-builders-alist '((t . ivy--regex-fuzzy)))
)
-
~/.spacemacs
のdotspacemacs/user-config()
の中に追記する - キーバインドの他にも、ユーザ設定はここに書けばよい
- すでに
秘伝のinit.el
を持ってる人は、ここにコピペすればよい
関数の説明の和訳
- ユーザ設定を書くための関数
- Spacemacsを起動後、一番最後に読み込まれる(レイヤーを使ったパッケージ読み込みよりも後)
- パッケージが読み込まれる前に設定すべき変数は例外だが、たいていの設定はここに書けばOK
- パッケージ読み込みの前に設定したい内容は
dotspacemacs/user-init()
に書けばよいらしい - その関数の説明には「設定のタイミングがよく分かんなかったら、とりあえず
user-config()
に書いてみ?」と書いてある
C-h
をdelete-backward-char
にする
delete-backward-char
(bind-key "C-h" 'delete-backward-char)
-
Emacs
を使う場合に、まず設定すべきキーバインド(だと思っている) -
C-h
をdelete-backward-char
に置き換える -
Spacemacs
ではuse-package
も使っているので、bind-key
を使って設定した - 今後、いろいろ追加する際、
bind-key
のほうが見通しよく書けるため
バッファの移動をタブ感覚で
(bind-key "s-{" 'previous-buffer)
(bind-key "s-}" 'next-buffer)
- 個人的にお気に入りのキーバインド
- ブラウザでタブ移動するときと同じキーバインドで、バッファ移動ができる!
-
SPC b p
、SPC b n
で同じことができる
ウィンドウ移動を簡単に
(bind-key "s-[" 'previous-multiframe-window)
(bind-key "s-]" 'next-multiframe-window)
(bind-key "C-x o" 'ace-window)
- これも個人的に好み
- バッファ移動と同じように
⌘ + ], [
で前のウィンドウ、次のウィンドウに移動できる-
Spacemacs
だと] w
、[ w
に割り当てられている
-
- デフォルトの
C-x o (other-window)
はace-window
に置き換えた
C-x C-m
をsmex
にする
smex
(bind-key "C-x C-m" 'smex)
;; (bind-key "C-x m" 'smex-major-mode-commands)
-
Prelude
ではsmex
を使っていたので、そのまま使えるようにしておいた -
smex-major-mode-commands
は、そのバッファのメジャーモードで使えるコマンド候補をリストするコマンド。C-x m
はmu4e-compose-new
に割り当てられているので、とりあえずコメントアウトしておく。
ディレクトリを開く
dired-jump
(bind-key "C-x C-j" 'dired-jump)
- これも
Prelude
使っていたころの名残り -
jump
の意味がよく分からなけれど、いま表示されているバッファ(ファイル)があるディレクトリをdired
バッファとして開く -
SPC f j
で同じことができる
Magitを使いやすく
magit-status
(bind-key "C-x g" 'magit-status)
(bind-key "C-x M-g" 'magit-dispatch-popup)
-
Magit
はgit
レイヤーを使うとインストールされる(はず) -
matig-status
はSPC g s
に割り当てられているが、なじみのあるC-x g
も追加した
ivy
で曖昧マッチングをする
- キーバインドの設定ではないが、
ivy
を使っていて、使いにくいと感じた点を改善 - これまで使っていた
ido
ではido-flx
にしていたので、ivy
を使った候補の絞り込みも同様に「fuzzy matching
(曖昧マッチング)」可能にした - 変更点は Better fuzzy matching support in Ivy を参照(←
Ivy
作者のabo-abo
さんのブログ記事) -
Spacemacs
のデフォルトだとivy--regex-ignore-order
だったので、ivy--regex-fuzzy
に変更した
目次
- Spacemacsに乗り換えてみた(1)導入編
- Spacemacsに乗り換えてみた(2)キーバインド編
- Spacemacsに乗り換えてみた(3)レイヤー編
- Spacemacsに乗り換えてみた(4)ウェブ制作編
- Spacemacsに乗り換えてみた(5)メーラ編
- Spacemacsに乗り換えてみた(6)LaTeX編(予定)