Hatena::ブログ(Diary)

Webアプリ開発手帳

2010-10-09

ckw + nyaos環境の構築と,右クリックメニューから,ckwを対象のフォルダに移動して開く方法について

17:58

いい加減,Windows標準のコマンドプロンプトに嫌気が(特に履歴を保存できない点に)差してきたので,他のコンソールを探してみました.どうやら,ckwというコマンドプロンプトを拡張したものに,nyaosというシェルを組み合わせるのが良さそうです.

ファイルのダウンロード

ckwは下のサイトから落としました.

ckw 0.8.10 改造版を更に改造した(修正しただけ)

nyaosは下のサイトから,stable版の3.0.0_1のWindows binaryを落としました.

NYAOS.ORG - NYAOS 3000

ckwとnyaosは同一フォルダに入っているものとしてください.私の場合は両者ともC:\Program Files\ckwに入れました.

ckwとnyaosの連携

Ckw*exec:  cmd.exe

と書いてあるところを,

Ckw*exec:  "C:\Program Files\ckw\nyaos.exe"

に直すだけでOKです.

コマンド履歴の保存設定

まずはコマンド履歴を保存するための設定について書きます.nayosを解凍したフォルダの中に_nyaというnyaosの設定ファイルがあるのでそれをテキストエディタで開いてください.そのファイルの中のどこかに

option savehist "C:\Program Files\ckw\.history"

と書いてください.option +history と書いてある下ぐらいが見やすくて良いでしょう.これを書かないと履歴を保存してくれません.そして,ckwがどこで起動しても良いように.historyファイルへのパスはフルパスで書きます.なお,重要な点ですが,.historyというファイルは自分で作っておく必要があります.このとき,.historyという名前にしなくても構いません.また,中身は空で良いです.ただ,上で書いたsavehistのファイル名と対応付けるようにはして下さい.

右クリックから,対象フォルダでckwを開く

選んだフォルダをカレントフォルダにしてコマンドプロンプトを開く - デジタル - 日経トレンディネット

上記のURL先で紹介されているように,コマンドプロンプトを右クリックから開く方法があります.これをckwでもできないかと思い,実行してみました.基本的には上記URL先と同じようにやります.ただし,いくつか注意する点があるので,それを踏まえつつ行っていきたいと思います.

まずは,上記のURL先に習い,

引用1

 まず管理者権限のあるユーザーでログオンし、スタートメニューから「ファイル名を指定して実行」を選び、「regedit」と入力して「OK」ボタンをクリックする。レジストリエディタが起動したら、次のようにキーをたどる。

 HKEY_CLASSES_ROOT→Directory→shell

 「shell」を右クリックして「新規」−「キー」を選んで「cmd」というキーを作成する。

ところまで行って下さい.次に行うこととして,

引用2

「cmd」を選んだ際に右のペインに表示される「(既定)」をダブルクリックして、値のデータに「コマンドプロンプト」と入力して「OK」ボタンをクリックする(これはメニューに表示される項目名となる)。さらに、「cmd」を右クリックし、「新規」−「キー」を選んで「command」というキーを作成する。これを選んだ際に右のペインに表示される「(既定)」をダブルクリックして、値のデータに「cmd.exe /k "cd %l"」と入力して「OK」ボタンをクリックする(「/k」と「"cd %l"」の前にはそれぞれ半角スペースを1つ入れること)。

と書いてありますが,ここに関しては注意が必要です.まず,値のデータに「コマンドプロンプト」を入力するところですが,今回はコマンドプロンプトじゃなく,ckwなので,とりあえずckwとしときましょう(何でも良いです).cmdに関しては,既に登録されている場合,cmd2とかにしてもOKです.次のcommandというキーに関しては,名前を変えないでください.

大事なところ

最も重要なのは「cmd.exe /k "cd %l"」の部分です.ここを,

"C:\Program Files\ckw\ckw.exe" -cd "%l"

に書き換えてください.書き換えたらログインし直して下さい.そして,ckwを開きたいフォルダを右クリックして下さい.ckwという項目があるはずです.それを選ぶと,無事,右クリックしたフォルダでckwが起動するはずです.

補足

補足すると,-cd というのは,ckwが用意しているオプションで,-cd path の形式でpathに指定したフォルダでckwを開いてくれます.%lは,右クリックしたフォルダを表します."%l"のように,""で括っているのは,パスに半角空白を含むものが出ても,半角空白をコマンドの区切りと見なさないようにするためです.「cmd.exe /k "cd %l"」では,""の位置が違っており,このあたりで苦労しました.なんで「cmd.exe /k "cd %l"」ではcdも""で括られているんだろう….