この記事は、「Vim Advent Calendar 2013」の124日目の記事である。
昨日はShougoさんの「あるVimmerのブログ: Web 製作者のための Sublime Text の教科書レビュー」だった。 Sublime Text ……使った事無いんだよね。どんなもんなんだろう?
なお、今までに当 Advent Calendar に天井冴太が投稿した記事は以下の2件である。
(The original picture is "Hank trying on shells | Flickr - Photo Sharing!" by Craig Cook. The License is CC BY-NC 2.0)
INTRODUCTION
hermitcrab.vimは、シェル関係の設定を一括変更する手段を提供します。また、好みのシェルでコマンドを実行する手段を提供します。
最新版
https://github.com/AmaiSaeta/hermitcrab.vim
以下GitHub上のReleasesページから利用したいバージョン(通常は最新の物を使って下さい)の圧縮ファイルをダウンロード。その中のtestディレクトリ以下のファイル以外を貴方の vimfiles (.vim) ディレクトリへ上書きして下さい。
Releases ・ AmaiSaeta/hermitcrab.vim
何らかのVimプラグインマネージャを利用している場合は、その設定方法に従って下さい。例えばNeoBundleであれば以下の通り。
NeoBundle 'AmaiSaeta/hermitcrab.vim'
USAGE
前もってg:hermitcrab_shells辞書変数に設定内容を記述しておきます。例えば次の例は、zsh用の設定を"ZSH"という名で、bash用の設定を"BASH"という名で参照出来るようにしています。
:let g:hermitcrab_shells = {
\ 'ZSH': {
\ 'shell': 'zsh',
\ 'shellcmdflag': '-c',
\ 'shellpipe': '2>&1 | tee',
\ 'shellslash': 1,
\ 'shellredir': '>&',
\ 'shelltemp': 0,
\ 'shellxquote': ''
\ },
\ 'BASH': {
\ 'shell': 'bash',
\ 'shellcmdflag: '-c',
\ 'shellpipe': '2>&1| tee',
\ 'shellquote': '',
\ 'shellredir': '>%s 2>&1',
\ 'shellslash': 1,
\ 'shelltemp': 1,
\ 'shellxquote': '',
\ 'shellxescape': ''
\ }
\ }
:HermitCrabSwitch
やhermitcrab#switch()
を用いると、シェル関係の設定をg:hermitcrab_shellsに定義した内容に一括変更出来ます。
" Zshに変更する例
:HermitCrabSwitch ZSH
:set shell? " == 'zsh'
:HermitCrabRun
やhermitcrab#run()
、hermitcrab#call()
で、任意シェルでコマンドを実行する事が出来ます。
let engine = &shell
" zshでlsコマンドを実行 (:!に相当)
:HermitCrabRun ZSH ls
echo engine == &shell " == 1; コマンド/関数実行後は元の設定に戻ります
" zshでlsコマンドを実行 (system()に相当)
:let result = hermitcrab#call('ZSH', 'ls')
続きを読む