vim-users.jp

Hack #103: シェルをNYACUSに設定する

Posted at 2009/11/21
このエントリーをはてなブックマークに追加

Vimはシェルの機能を呼び出すことができます。しかし、WindowsではデフォルトのシェルがCMD.exeになっており、UNIX系のシェルと比較して見劣りがします。特に貧弱なエスケープシーケンスやリダイレクトの処理が致命的です。そのようなときはNYACUSをVimのシェルとして設定すれば、だいぶ使いやすくなるのでお薦めです。Vimは標準的なシェルを認識するようになっていますが、このHackは独自のシェルをVimに設定するときにも便利だと思います。

NYACUSとは?

NYACUSはWindows上で動作する、tcshライクなシェルです。キーバインドがtcshに似ており、lsコマンドを内蔵しています。パスは/を\に自動変換、補完も有効です。簡単なスクリプト処理も記述できますが、制御構文はまだ実装が不十分のようです。

NYACUSのシェル設定

NYACUSをシェルとして使用するため、私は次のように設定しています。

" Shell settings.
" Use NYACUS.
set shell=nyacus.exe
set shellcmdflag=-e
set shellpipe=\|&\ tee
set shellredir=>%s\ 2>&1
set shellxquote=\"

shellには、使用するシェルへのパスを設定します。shellcmdflagには、Vimからシェルを起動するときのオプションを設定します。例えばnyacusの場合、オプションなしで直接起動すると、対話モードになってしまいます。よってVimはオプションを設定し、シェルを非対話モードで起動します。shellpipeshellredirは、パイプやリダイレクト記号をどのように処理するかの設定です。これは好みに応じて設定して良いです。上記のように設定すると、シェルが出力した標準エラー出力もリダイレクトして、Vimが受け取ることになります。shellxquoteはシェルに引数を渡すためにクオートする記号です。shellquoteとは違い、リダイレクト記号もクオートします。Windows環境では”で囲まないと、リダイレクト記号が解釈されてしまうので、こちらを使用しなければなりません。

Shougo

もどる
blog comments powered by Disqus