はじめに
-
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編(予定)