Emacs設定変更
VS Codeに乗り換えようかと少し迷っていたが、結局Emacsの設定を充実させる方に舵を切った。この1ヶ月ほどで変えた設定について書いておく。全てpackage-install
で導入した。
NeotreeからTreemacsに乗り換え
Neotreeはあまり使わなくなっていて、Treemacsの方が少しだけ私の目的にあっていそうに思ったので、乗り換えた。 設定は以下のようにした。F1を基本として使う。
;; treemacs
(use-package treemacs
:bind
(:map global-map
([f1] . treemacs)
([(meta f1)] . treemacs-projectile)
("M-1" . treemacs-select-window)
)
)
helmからivy + counselに乗り換え
Helm development is now stalledというIssueをたまたま発見した。このことは、他のドキュメントにはまだどこにも書いてないように思われる。
ともあれ、もう更新されないのであれば乗り換えた方が良いだろう。他に似たようなものは、と探してivy + counselにたどりついた。counsel-M-x
はhelm-M-x
と違ってそのままでは履歴順になってくれないので、smexも導入した。
設定は以下のとおり。
;; counsel
(when (require 'counsel nil t)
(global-set-key (kbd "M-x") 'counsel-M-x)
(global-set-key (kbd "M-y") 'counsel-yank-pop)
(global-set-key (kbd "C-M-z") 'counsel-fzf)
(global-set-key (kbd "C-M-r") 'counsel-recentf)
(global-set-key (kbd "C-x C-b") 'counsel-ibuffer)
(global-set-key (kbd "C-M-f") 'counsel-ag)
(global-set-key (kbd "C-M-g") 'counsel-git-grep)
(counsel-mode 1))
(when (require 'smex nil t)
(setq smex-history-length 30)
(setq smex-completion-method 'ivy))
もう一つこまったのは「バックアップファイルの残骸が残っている場所に、そのファイル名で新たにファイルを作りたい」とき。
C-M-j
(ivy-imeddiate-done)で良いのだが、すぐに忘れそうで、すぐに困りそうだ。
counsel-projectile
counselに乗り換えたので、counsel-projectileも入れた。
最初はcounselなしのprojectileしか動かないね? と思ったら、counsel-projectile-mode
にしないといけないのでした。
< (projectile-mode 1)
---
> (counsel-projectile-mode 1)
modeline整理
modelineがめちゃくちゃ長くなって、普段右端に表示している行数が見えなくなることがよく起きていた。diminish.elを導入し、いくつかの、私にとっては表示不要なminor mode表示を消した。もっとまともなやり方がありそうだけれども、素朴な設定をした。
(eval-after-load "projectile"
'(diminish 'projectile-mode))
(eval-after-load "editorconfig"
'(diminish 'editorconfig-mode))
(eval-after-load "company"
'(diminish 'company-mode))
(eval-after-load "ivy"
'(diminish 'ivy-mode))
(eval-after-load "counsel"
'(diminish 'counsel-mode))
(eval-after-load "which-key"
'(diminish 'which-key-mode))
(eval-after-load "yasnippet"
'(diminish 'yas-minor-mode))
(diminish 'eldoc-mode)