Neosnippetでシェルコマンド呼び出し結果をスニペットに差し込む

背景

vimデコーディングするう上で、もはや無くてはならないプラグインの一つである Shougo/neosnippet.vim 。 非常に便利です。

更に便利に使うために、以下の情報をスニペット展開時に自動的に差し込めるようにしてみよう。

  • 今利用している環境の情報
  • ディスク容量
  • ユーザー名

環境

今利用している環境は以下のとおり。このブログを編集中に利用したスニペットが自動で出力してくれています。

1
2
3
4
5
6
$ uname -a
Darwin genzouw-MacBook-Pro.local 15.0.0 Darwin Kernel Version 15.0.0: Sat Sep 19 15:53:46 PDT 2015; root:xnu-3247.10.11~1/RELEASE_X86_64 x86_64 i386 MacBookPro10,1 Darwin
$ zsh --version
zsh 5.1.1 (x86_64-apple-darwin15.0.0)
$ echo $USER
genzouw

設定方法

1. Neosnippetのインストール

ここでは割愛します。以下のページを参照下さい。

2.snippetsを開く

snippetsファイルの配置場所や書き方についても割愛します。

僕はブログ等を各ときには filetype=markdown となるように設定していることもあり、 markdown.snip というファイルに設定を追記しました。

3.スニペットを追加

以下のスニペットを追加。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
snippet        blog
options     head
prev_word   '^'
	## 検証環境

	\`\`\`bash
	$ uname -a
	`system("uname -a")`

	$ bash -version
	`system("bash -version")`
	\`\`\`

ポイントは以下の部分。

1
	`system("uname -a")`

ダブルクォート内に Bash なり Zsh のコマンドを記述すると、スニペット展開時にシェルコマンド実行結果が挿入されます。

ひとこと

df -h とかも表示できるし、 psql -h で日報にDBの内容を添付などしても面白いと思います。