昨日は @tadsan さんの .emacsの紹介 でした。.emacs
は定期的にメンテナンスをしたほうがいいですよね。最近自分もトレンドから遅れ気味です。
さて、唐突ですが、ansible.elの紹介をしたいと思います。
ansible.el
ansible.elはAnsibleのPlaybookを書くためのスニペットセットです。
インストール
M-x package-install ansible
使い方
YASnippetがインストールされていて、設定がされている前提で
M-x ansible
で有効になります。
また以下のようなコードを.emacsに追加することで、YAMLモードにフックさせることも可能です。
(add-hook 'yaml-mode-hook '(lambda () (ansible 1)))
(余談) ansible.elのsnippetの作成方法
自分のブログでも紹介したのですが、実はAnsible Moduleを実装しているそれぞれのソースコードには、Moduleの使い方などがYAMLで書かれています。(おそらくこのコードからドキュメントも生成している??)
YAMLで書かれているということはパースがしやすいということです。
これをスクリプトでパースして、YASnippet用のスニペットファイルを生成しています。現在はAnsible v1.8.1を対象に生成しています。
「Ansible Best Practicesで構成されたディレクトリを簡単に移動したい」
せっかく記述が簡単になってきたので欲しくなってくるのが、ファイル移動です。
「apacheロールのmain.ymlからphpロールのmain.ymlへ移動したい」ということもあるはずです。
この時気になるのが「同名ファイル」です。プロジェクトルートからファイル群を一気に検索してもいいのですが、視認性が悪いです。
そういった場合のファイル移動系のEmacs Lispはcake.elやcake2.elで作成経験がありました。
今回(というか半年前)ansible.elへ導入するために、そこを切り出してライブラリ化してみました(そして忙しさの中忘れ去っていました)。
インストール
使い方
(require 'helm-dirset)
(defun some-mode::helm-directories ()
(interactive)
(helm-other-buffer
(helm-dirset-sources '("/path/to/dir"
"/path/more/to/dir2"
"/Users/k1low")) nil))
こんな感じに設定することで、各ディレクトリのファイルがディレクトリごとに確認できます。
基本的に何かしらのマイナーモードに組み込む想定で作っていますが、
よく参照するディレクトリがあるなら、自身で関数を作ってもいいかも知れません。
というわけで
ちょっとしたHelmインターフェイスでした!
明日は @kaz-yos さんです!