わさっきhb

大学(教育研究)とか ,親馬鹿とか,和歌山とか,とか,とか.

mintty + zsh

元日のトラブルの件は,HDDとOSを入れ替えることで解決しました.pmcygを使ってCygwinをインストールし,依然としてash.exeを起動して./rebaseall -vを実行するのは不可欠でしたが.そうしてsshやlftp*1が問題なく実行できたものの,例のプロンプト,そしてbashというシェルには,もはや馴染めません.
ここまでのリンク:

さてそれでminttyを使っていきたいのですが,エクスプローラーから,(Cygwinを入れたところ)\bin にある,mintty.exe をダブルクリックすると,「bash-3.2$」というプロンプトが出ます.シェルもさることながら,この状態でpwdを実行すると「/usr/bin」なのには困りました.まあ,cdを実行すれば,ホームディレクトリに移るのですが.
そこで,ワンクリックで,minttyを起動し,カレントディレクトリはホームディレクトリで,かつシェルはzshとすることを試みました.minttyには引数を与えることができるのに気づき,シェルスクリプトを書き,~/bin/mintty.shとしました.

#!/bin/sh
ZDOTDIR=$HOME/.zsh; export ZDOTDIR
CYGWIN=nodosfilewarning; export CYGWIN
LANG=ja_JP.UTF-8; export LANG
LC_ALL=$LANG; export LC_ALL
PATH=/usr/local/bin:/usr/bin:/usr/sbin:$PATH; export PATH

exec /usr/bin/zsh

CYGWIN=nodosfilewarning」は,「CygwinDOS 形式のパスについての警告を出力しないようにする」*2という対策です.今,この行をコメントにして,実行しても全く問題がなさそうなので,コメントにしておくべきかもしれません*3
コントロール パネル>システム>システム詳細設定>詳細設定タブ>環境変数のところで,次の2つのユーザー環境変数を設定しています.

  • HOME:ホームディレクトリ.ドライブ名から始まり,区切りは\の形式.
  • USER:ユーザ名

さて実行.まずこのシェルスクリプトをmintty.exeにドラッグ・ドロップして,うまくいきました.日本語がうまく行っているか確認するのは,dfです.…が,なんだか変です.「1K-ブロ」のあとが化けています.
echo $LANGを実行すると,「ja_JP.sjis」でした.~/.zsh の中の設定ファイルで,Cygwinなら環境変数LANGの値をそうするよう,指示していたのでした.その指示をなくして,mintty.exeへドラッグ・ドロップをやり直し…dfの日本語表示が,うまくいきました.
次はワンクリック起動です.mintty.exeのショートカットをデスクトップに作り,プロパティを開きます.リンク先(T)の値が「(Cygwinを入れたところ)\bin\mintty.exe」となっていますが,そこの末尾に,空白と,「(Cygwinでの自分のホームディレクトリ)/bin/mintty.sh」を追加しました.この引数のパス区切りは,Unix式のスラッシュでないといけないようです.
これでそのショートカットをダブルクリック…OKでした.
最後に,ランチャにも登録しておきます.漢*4は黙って,Clock Launcherです.mintty.exeを登録してから,環境設定のところでそのアイコンをダブルクリックします.ここはパスはそのままで,パラメータのところに「(Cygwinでの自分のホームディレクトリ)/bin/mintty.sh」を書きます.OKを押してOK & Saveを押して,ランチャから起動…成功しました.
(同月23日:あちこち書き換えました.)

*1:パッケージのバージョンアップでトラブルが解消されていたようで,ソースを取り寄せる必要がなくなりました.

*2:https://developer.mozilla.org/ja/Windows_Build_Prerequisites_on_the_1.7_and_1.8_Branches

*3:Cygwin実行環境を起動するより前,つまりコントロール パネルからの環境変数として,設定しておかないといけないのかな? それと,複数のオプションを指定したいときは,空白で区切ればいいようです.

*4:Google日本語入力で「おとこ」を「漢」に変換してくれないのか.残念….