お元気そうで残念です

仕事とか趣味のメモを残します

use-packageを導入してみた

Emacs - use-packageで可読性の高いinit.elを書く - Qiita

上のサイトを参考にemacsにuse-package.elを導入してみた

 

require を use-package に書き換えるのはそのままなので問題なし

define-keyの書き換え方がいまいちわからない

:bind で ("キー設定" . 動作) はいいんだけど

キーマップの指定方法がよくわからない

 

よくわからないからuse-package.elに内蔵されてるbind-key.elで確認

 

「bind-key.el」タグの記事一覧 | るびきち「日刊Emacs」

 

(global-set-key (kbd "C-c x") 'my-ctrl-c-x-command)

(bind-key "C-c x" 'my-ctrl-c-x-command)

(define-key some-other-mode-map (kbd "C-c x") 'my-ctrl-c-x-command)

(bind-key "C-c x" 'my-ctrl-c-x-command some-other-mode-map)

なるほど 3つ目の引数でキーマップを指定すると

つまり

bind-key.el では

bind-key "キー設定" 動作 キーマップ

となる

 

ここで use-package.el の :bind に戻ってくると

:bind ( ("キー設定" . 動作 . キーマップ) )

ということになるように思える

試してみたけどどうも違うらしい

 

emacs use-package.el : Emacsの世界的権威が行っている最先端ラクラクinit.el整理術 | MELPA Emacs Lisp Elisp パッケージ インストール 設定 使い方 | るびきち「日刊Emacs」

 

他のサイトもぼちぼち見てみたけど

use-pakcage.el の解説では :bind 使用時にキーマップの指定をしているのが見つけられない

ということでキーマップが global-map 以外の場合は bind-key.el でいこう

 


まとめ

use-package.elを導入した

require

use-package 

define-key

キーマップが global-map の場合は
:bind ("キー設定". 動作)

キーマップがそれ以外の場合は use-package.el に内蔵されている key-bind.el を使う
(bind-key "キー設定" '動作 キーマップ) 

その他のオプションはそのうち追記予定