読者です 読者をやめる 読者になる 読者になる

$shibayu36->blog;

株式会社はてなでエンジニアをしています。プログラミングや読書のことなどについて書いています。

perlbrew.elの添削を取り込んだ話

id:syohexさんが、perlbrew.elの添削をしてくれていたので、perlbrew.elに取り込んでみました。
勝手に添削 perlbrew.el - Life is very short

perlbrew.elの使い方再び

perlbrew.elはhttps://github.com/kentaro/perlbrew.el/blob/master/perlbrew.el からダウンロードできます。

これまでの変更で、PATHやexec-pathをきちんと設定される様になったので、perlbrew.elを使っていれば、以下のように単純にperlコマンドを呼び出すだけで、自動的に指定したperlを使ってくれます。以下はflymakeの設定の例です。

(defun flymake-perl-init ()
  (let* ((temp-file (flymake-init-create-temp-buffer-copy
                     'flymake-create-temp-inplace))
         (local-file (file-relative-name
                      temp-file
                      (file-name-directory buffer-file-name))))
    (list "perl" ;; perlコマンド呼んでるだけ
          (list "-MProject::Libs" "-wc" (format "-I%s" (git-root-directory)) local-file))))

emacs上で使うperlを変えるにはperlbrew-useを使うだけ。

M-x perlbrew-use RET perl-5.14.2

今回学んだこと

勝手に添削 perlbrew.el - Life is very shortのエントリを見れば分かることですが、今回いろいろ学んだので、書いてみます。

defgroupの使い方

  • defgroupの:groupには親グループをつける
    • 他のelispで自分自身を指定していたやつがあったので間違えた

completing-readの第四引数

completing-readの第四引数を真にすると補完候補にマッチすることを強制できるので、強制させたい場合はそういうふうにする

(completing-read "Version: " (perlbrew-list) nil t)

executable-find

executable-findを使うと、コマンドの実行パスを取得出来る。

(executable-find "perl")