日々の記録

アニメと読書の感想をメインにしたブログです。 ☆ゆるゆるっと更新中です☆


以前、emacs に導入した emmet-mode の lang 設定を変更する記事をかきました。

その時は、Github から git clone した emmet-mode の設定を変更して利用しました。しかし、この方法だと emacs で管理している package とは別に、emmet-mode を導入しなければならず、ちょっと面倒です。できれば、emmet-mode も emacs の package の1つとして管理したいです。

package として emmet-mode を導入した場合、問題が2つありました。
1つは、導入される package には設定を変更するための tool フォルダや conf フォルダが含まれていないことです。
もう1つは、package が更新される時、emmet-mode が導入されているフォルダ名が、以前と異なるものに変更されることです。

1つめの問題は、emmet-mode.el に設定されている lang 設定を、直接書き換えることで対応することにしました。これは sed を使えば簡単に実現できます。
2つめの問題は、変更作業を行う前に、その時に導入された emmet-mode のフォルダ名を探し出すことで対応することにしました。

その結果・・・

#!/bin/bash
init_dir="$HOME/.emacs.d"
pack_dir="elpa"
last=emmet_version
lang_code="ja"
dir=`ls $init_dir/$pack_dir | grep 'emmet'`

if [ -e $init_dir/$last ]; then
  old=`cat $init_dir/$last`
else
  echo $dir > $init_dir/$last
  old="Not Installed"
fi

if [[ $dir = $old ]]; then
  #"Not Changed"
   :
else
  echo $dir > $init_dir/$last
  cd $init_dir/$pack_dir/$dir
  # Using GNU sed => sed -i".bak" -e "s/lang=en/$lang_code/g" emmet-mode.el
  sed -i '.bak' -e "s/lang=en/lang=$lang_code/g" emmet-mode.el
  emacs -batch -f batch-byte-compile emmet-mode.el
fi

・・・というシェルスクリプトを用意しておき、emmet-mode が更新された時に実行することにしました。

一時は、このスクリプトを emacs の起動時に自動的に実行するようにしましたが、emmet-mode はそれほど頻繁に更新されるパッケージではないですし、新規に html ファイルを作成する時くらいしか lang 設定を書くことがないので、パッケージが更新された時だけ手動で実行することにしました。(^^;
2017.01.21 00:16 | Mac | トラックバック(0) | コメント(0) | .












管理者にだけ表示

トラックバックURL↓
http://ylupin.blog57.fc2.com/tb.php/9996-48f88441