読者です 読者をやめる 読者になる 読者になる

upinetree's memo

Web系技術の話題とか。Qiitaも合わせてどうぞ (http://qiita.com/upinetree)

Console2 + Nyaos + MinGWで快適Windwosターミナル

仕事上コマンドプロンプト毎日いじるので、Windowsのターミナル環境はどんなのが良いんだろう?と色々試しています。

やりたいこと

  • バッチファイルで環境変数バリバリ設定しちゃっても大丈夫
  • パスのバックスラッシュも気にせず使える
  • UNIXライク(コマンド、標準出力のインラインでの置換など)

みたいな感じ。現状では次の構成で落ち着いています。

コマンドは色々試した結果MinGWすることに。 Gow (Gnu On Windows)はうちの環境でパイプをうまく処理してくれなくて、 cygwinはやっぱりパスの解釈で色々問題出てきたので。

結構語り尽くされたネタですが、自分なりの設定も踏まえて紹介します。

Nyaos

NYAOS.ORG - FrontPage.ja

Windowsとの互換性を保ちつつ、UNIXライクに操作できます。 パスは'/'でも'\'でも対応してくれるし、補完も良い感じ。 エイリアスLuaでの記述も可能。

さて、バッチファイルですが、.batを実行すると子プロセスのcmdとして起動します。なので、設定した環境変数はcmdsourceで引き継ぎます。

cmdsource hoge.bat

いつも使うバッチファイルは~/_nyaファイルでaliasの設定しちゃいましょう。以下はVisual Studio コンパイラのコマンド設定の例です。

alias vsenv cmdsource "C:/Program Files (x86)/Microsoft Visual Studio 11.0/Common7/Tools/VsDevCmd.bat"

あと、僕は他にはRuby用に pik(windowsでのrbenvみたいなもの)もaliasしてます。

# $USERPROFILE/.pik/binにpik_installした場合
alias pik cmdsource $USERPROFILE/.pik/bin/pik.bat
pik use 200

Console2

Console - Browse /console-devel at SourceForge.net

見た目も操作も手軽に設定できる、タブ型のターミナルです。 あらゆるシェルをタブとして起動できちゃいます。(Nyaos, PowerShell, cmd, MsysGit などなど)

Console2はデフォルトで日本語入力ができません。 パッチを公開してくれている方がいるので導入しておきます。

Console IME対応パッチ

最新の2.00b148-Betaへのパッチです。

設定メモ

  • フォントはちょっと注意

    • フォントリンクだとカーソル位置がずれる場合がある
    • プロポーショナルフォントだと背景色の表示が一部黒くなる場合がある
    • Smoothing はフォントに応じて設定しておく
  • 画面上の文字選択は、デフォルトだとShiftキーを押す必要あり

    • 押すのが面倒なら設定の Mouse から Select text を Left だけにしておく
  • タブとしてNyaosを登録しとく

  • 色設定はsolarizedがお気に入り

  • 日本語入力時に、カーソルがずれたり文字が重なって表示されたりする場合

MinGW / MSYS

最新のインストーラこちら

~/_nyaはこんな感じ。

set GWBIN=C:/MinGW/bin
set MSYSBIN=C:/MinGW/msys/1.0/bin
set PATH+=$GWBIN
set PATH+=$MSYSBIN

alias ll $MSYSBIN/ls.exe -agoFh --time-style=+"%Y/%m/%d %H:%M" --color=always --show-control-chars
alias vi $MSYSBIN/vim.exe
alias grep grep -ni --color
...

Nyaosのコマンドと重複する場合、Nyaosのほうが優先されるようです(ls等) 嫌な場合は、~/_nyaでaliasしなおせばOK。

alias ls $MSYSBIN/ls.exe

あと、忘れずにHOME設定。

set HOME=$USERPROFILE

参考リンク