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はオプションを設定し、シェルを非対話モードで起動します。shellpipe
やshellredir
は、パイプやリダイレクト記号をどのように処理するかの設定です。これは好みに応じて設定して良いです。上記のように設定すると、シェルが出力した標準エラー出力もリダイレクトして、Vimが受け取ることになります。shellxquote
はシェルに引数を渡すためにクオートする記号です。shellquote
とは違い、リダイレクト記号もクオートします。Windows環境では”で囲まないと、リダイレクト記号が解釈されてしまうので、こちらを使用しなければなりません。
もどる
blog comments powered by Disqus