3年ほど前に私が作成した Spacemacs の Japanese Layer が去年あたりに Spacemacs の開発版にマージされていましたが, そのまま放置していました. その理由は:
- メインのエディタが Microsoft Visual Studio Code となってしまい, Spacemacs を弄る機会がめっきり減った,
- Japanese Layer で用いるパッケージ
avy-migemo
がMELPA 上で更新されなくなり, 一部の機能が動作しなくなった,
からです.
最近, 昔の投稿 にコメントがあり, 動作できるように README.org
を書き換えました. また avy-migemo
について動作する方法がみつかったので, ここで報告しておきます.
まずSpacemacs の開発版を使うには, Spacemacs のリポジトリが ~/.emacs.d
にあるなら
$ cd ~/.emacs.d
$ git checkout develop
$ git pull origin develop
$ git clone
と実行すればよいです.
なお安定版を使っているのなら, 最新の Spacemaces Japanese Layer は リポジトリ にあります. ただ開発版との違いはほとんどなく Ubuntu でも migemo の辞書を設定できるようにして, README.org
の記述を書き換えただけです.
最新の Spacemaces Japanese Layer を導入するために, 設定ファイルが ~/.spacemacs.d/init.el
にあるとするなら, ディレクトリ ~/.spacemacs.d/layers/
を作成し, 以下を実行する:
mkdir ~/.spacemacs.d/layers/
cd ~/.spacemacs.d/layers/
git clone https://github.com/kenjimyzk/spacemacs-japanese japanese
さて Spacemacs Japanese Layer を利用するには ~/.spacemacs.d/init.el
の dotspacemacs-configuration-layers
において
japanese
を追加します. ただこのままでは migemo が実行されません.
Spacemacs が helm
を用いているのか ivy
を用いているのかに応じて設定ファイルが異なります. 正確には最新版のREADME.org にある通りなのですが, ~/.spacemacs.d/init.el
にある dotspacemacs/user-config
を以下のように修正すればどちらでも対応可能です.
(with-eval-after-load "migemo"
(helm-migemo-mode 1)
(require 'avy-migemo-e.g.ivy)
(require 'avy-migemo-e.g.swiper)
(require 'avy-migemo-e.g.counsel))
ただ, このままではmigemo検索 (SPC s s
) はできるが, migemoジャンプ (SPC j j
) はできません. 冒頭で述べたように avy-migemo
が一年以上前から更新されていないからです.
これを回避するには, プルリクエスト中の フォークバージョン を使えばよいです.
いま avy-migemo.el
が ~/.emacs.d/elpa/avy-migemo-20180716.1455/
にあるとします (開発版や複数のバージョンを併用している場合, 別の場所にあるかもしれません).
このとき, どこかの作業フォルダ上で以下を実行します.
git clone https://github.com/tam17aki/avy-migemo
cp avy-migemo/*.* ~/.emacs.d/elpa/avy-migemo-20180716.1455/
そして ~/.emacs.d/elpa/avy-migemo-20180716.1455/
にある avy-migemo.elc
を新たにバイトコンパイルして生成するか, ファイルそのもの削除します. これでmigemoジャンプ (SPC j j
) が可能になります.
なお MELPA 上で avy-migemo.el
が更新されれば, さきほどの変更も更新されることになります. ただ, その更新で avy-migemo
が使えるようになるでしょう.
最初に書いたように, 最近は VSCode を使っていたが, Spacemacs Japanese Layer を作成した責任もあるので, 今後はこまめにメンテナンスしていきたいと考えています.