AutoRun
の設定をするときに regedit
を開いたわけですが、HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor
キーには他に CompletionChar
というキーがあります。うちではこの値は 0x40
になっています。この
CompletionChar
はファイル名の補完機能の設定で、たとえばカレントディレクトリにabc.txt
とcde.txt
とxyz.txt
があったとき、a<TAB>と押せば abc.txt が補完され、x<TAB>と押せば xyz.txt が補完されます。キーにはこのCompletionCharの他に、PathCompletionCharというのもあります。どちらもデフォルト値は 0x09 (TAB) に設定されているようです。が、自分のところでは両方ともに
0x40
です。なんで 0x40
なのかわかりません。上記のページでは 0x40
は "key" となっていて、詳しい説明がありません。が、動作としてはTABキーで補完してくれるので気にしないようにします。ところで、
CMD.EXE
の補完機能は結構貧弱ですが、これをbash的な行編集機能にするためのClink
というアプリケーションがあるようです。===
Clink combines the native Windows shell cmd.exe with the powerful command line editing features of the GNU Readline library, which provides rich completion, history, and line-editing capabilities. Readline is best known for its use in the well-known Unix shell Bash, the standard shell for Mac OS X and many Linux distributions.
===
ということで、
CMD.EXE
がかなりいい感じになるようです。Clink
はインストーラーでインストールするとAutoRun
値を書き換えてしまうようなので、ZIP形式をダウンロードして c:\Apps
ディレクトリに配置します。次に、前記事で書いた cmdrc.bat の最終行に次の行を加えます。
c:\Apps\clink_0.4.9\clink_x64.exe inject
ただ…せっかく指定したコマンドプロンプトのエスケープシーケンス (色) が消えてしまいました。すごく残念。なにかやりようはないかしら。でも、CTRL-Dでコマンドプロンプトを閉じることができるのは素晴らしいです。
結局
cmdrc.bat
を以下のように変更しました。@echo off
doskey /macrofile=%userprofile%\cmd.rc
c:\Apps\clink_0.4.9\clink_x64.exe inject
openfiles > NUL 2>&1
if %ERRORLEVEL% == 0 (
rem 管理者モードの処理
rem CRIMSON
rem set PROMPT=$e[38;2;220;20;60m$p# $e[0m
set PROMPT=$p#
set clink.prompt_colour=4
) else (
rem 通常モードの処理
rem deepskyblue
rem set PROMPT=$e[38;2;0;191;255m$p$$ $e[0m
set PROMPT=$p$$
set clink.prompt_colour=3
)
これだと基本的な16色しか指定できないので、ちょっとつまらないんですが仕方ないですね。
0 件のコメント:
コメントを投稿