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-xhelm-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)
キーボード比較
before
キーボード比較
after