Windowsマシンで仕事してるけど家ではMac/Linux、みたいな場合、cmd.exeに哀しみを感じることが多々あります。
じゃあGit Bash使うかーとなるけどフォント微妙だしタブ化できないし、生のMinGWとかCygwinとかはよくわからんし…と思って結局Git Bashで頑張っていました。
しかし最近、よさげな解決策を聞いたのでそれについてまとめます。
ゴール
Windowsマシンで
- UNIX系で
- タブ化できて
- 日本語でストレスフリーに標準入出力ができて
- ワクワクできる
コマンドライン環境を実現する。
手段1: ConEmu
1週間前までこっち使ってました。
ConEmu プロジェクト日本語トップページ - OSDNからダウンロード、解凍。
好きなところに配置して起動すればOKです。
初回のみいろいろ聞かれるのでよしなに答えてあげてください。
あとはMigu 1Mをインストールして設定してあげるだけ。
既存の各種コマンドラインを簡単にタブ化できちゃいます。
こちらは、cmd.exe、MinGW、GitBashなどさまざまなターミナルをひとつのアプリケーション上でタブ化して実行することができるのがウリだと思います。cmd.exeとUNIX系のコマンドラインを半々くらい使わなきゃいけない時は良いかもしれませんね。
手段2: babun
今はこっちを使ってます。
DL
Babun - a windows shell you will love!からダウンロード or githubからclone。
chromeだと不正なファイルとみなされてダウンロードできないので、Internet Explorerとかでやればいいんじゃないですかね。
ダウンロードしたら解凍してinstall.bat
を叩くと、勝手に全部インストールしてくれます。
環境は全部~/.babun/cygwin/
を/
に読み替えて、その配下に新たに作ってくれるので元の環境はよごれない!…らしいです。
詳しくは[D] Windowsはターミナルがダメだから使えないってのは過去の話?を参照ください。
フォント変更
Migu 1Mをインストールします。
babunを起動して、ウィンドウを右クリック > Options > Text > Fonts でMigu 1Mを選びます。
パッケージ追加
pact install tmux
これが使ってみたくてbabun入れた、みたいなとこはあります。
ちょっと自分の言葉でちゃんと説明はできないので、tmuxを使い始めたので基本的な機能の使い方とかを整理してみた - 完熟トマトを読んでワクワクしてください。
設定ファイルのコピー
すでに持ってるvimrc
などの設定ファイルを、babunのデフォルトディレクトリに移します。
日本語化
nkfが…とかlessが…とかやりかけて、果てしなさ過ぎてcocotを使うことにしました。
pact install getent libiconv libiconv-devel inetutils
mkdir ~/tmp
cd ~/tmp
git clone http://github.com/vmi/cocot
cd cocot
./configure && make && make install
で、コマンドの標準出力をキレイに実行することができるようになります。
$ ping # -> キタナイ!!!
-------------------------------------------------------------------------
▒g▒p▒@: ping [-t] [-a] [-n ▒v▒▒▒▒] [-l ▒T▒C▒Y] [-f] [-i TTL] [-v TOS]
[-r ▒z▒b▒v▒▒] [-s ▒z▒b▒v▒▒] [[-j ▒z▒X▒g▒ꗗ] | [-k ▒z▒X▒g▒ꗗ]]
[-w ▒^▒C▒▒▒A▒E▒g] [-R] [-S ▒\▒[▒X▒A▒h▒▒▒X] [-4] [-6] ▒^▒[▒Q▒b▒g▒▒
▒I▒v▒V▒▒▒▒:
-t ▒▒▒f▒▒▒▒܂ŁA▒w▒肳▒ꂽ▒z▒X▒g▒Ping ▒▒▒܂▒▒B
▒▒▒v▒▒▒▒▒▒đ▒▒s▒▒▒▒́ACtrl+Break ▒▒▒▒▒▒▒Ă▒▒▒▒▒▒▒▒B
▒▒▒▒▒́ACtrl+C ▒▒▒▒▒▒▒Ă▒▒▒▒▒▒▒▒B
-a ▒A▒h▒▒▒X▒▒X▒g▒▒▒ɉ▒▒▒▒▒▒܂▒▒B
-n ▒v▒▒▒▒ ▒▒▒M▒▒▒▒R▒[▒v▒▒▒̐▒▒ł▒▒B
-l ▒T▒C▒Y ▒▒▒M▒o▒b▒t▒@▒[▒̃T▒C▒Y▒ł▒▒B
-f ▒p▒P▒b▒g▒ Don't Fragment ▒t▒▒▒O▒▒肵▒܂▒ (IPv4 ▒̂▒B
-i TTL Time To Live ▒ł▒▒B
-v TOS Type Of Service (IPv4 ▒̂݁B▒▒▒̐ݒ▒▒▒▒▒g▒p▒▒▒▒▒▒炸▒A
IP ▒w▒b▒_▒[▒▒T▒[▒r▒X ▒t▒B▒[▒▒▒h▒̎▒ɉe▒▒▒▒▒܂▒▒▒B
-r ▒z▒b▒v▒▒ ▒w▒肵▒▒▒z▒b▒v▒▒▒̃▒▒[▒g▒▒^▒▒▒܂▒ (IPv4 ▒̂▒B
-s ▒z▒b▒v▒▒ ▒w▒肵▒▒▒z▒b▒v▒▒▒̃^▒C▒▒▒X▒^▒▒▒v▒▒▒▒▒▒܂▒ (IPv4 ▒̂▒B
-j ▒z▒X▒g▒ꗗ ▒ꗗ▒Ŏw▒肳▒ꂽ▒ɂ₩▒ȃ\▒[▒X ▒▒▒[▒g▒▒p▒▒▒܂▒
(IPv4 ▒̂▒B
-k ▒z▒X▒g▒ꗗ ▒ꗗ▒Ŏw▒肳▒ꂽ▒▒▒▒▒ȃ\▒[▒X ▒▒▒[▒g▒▒p▒▒▒܂▒
(IPv4 ▒̂▒B
-w ▒^▒C▒▒▒A▒E▒g
▒▒▒▒▒▒^▒C▒▒▒A▒E▒g▒̎▒▒(▒~▒▒▒b) ▒ł▒▒B
-R ▒▒▒[▒e▒B▒▒▒O ▒w▒b▒_▒[▒▒p▒▒▒ċt▒▒▒[▒g▒▒X▒g▒▒▒܂▒
(IPv6 ▒̂▒B
-S ▒\▒[▒X▒A▒h▒▒▒X
▒g▒p▒▒▒▒[▒X ▒A▒h▒▒▒X▒ł▒▒B
-4 IPv4 ▒̎g▒p▒▒▒▒▒▒▒܂▒▒B
-6 IPv6 ▒̎g▒p▒▒▒▒▒▒▒▒▒܂▒▒B
$ cocot ping # -> キレイ!!!
-------------------------------------------------------------------------
使用法: ping [-t] [-a] [-n 要求数] [-l サイズ] [-f] [-i TTL] [-v TOS]
[-r ホップ数] [-s ホップ数] [[-j ホスト一覧] | [-k ホスト一覧]]
[-w タイムアウト] [-R] [-S ソースアドレス] [-4] [-6] ターゲット名
オプション:
-t 中断されるまで、指定されたホストを Ping します。
統計を表示して続行するには、Ctrl+Break を押してください。
停止するには、Ctrl+C を押してください。
-a アドレスをホスト名に解決します。
-n 要求数 送信するエコー要求の数です。
-l サイズ 送信バッファーのサイズです。
-f パケット内の Don't Fragment フラグを設定します (IPv4 のみ)。
-i TTL Time To Live です。
-v TOS Type Of Service (IPv4 のみ。この設定はもう使用されておらず、
IP ヘッダー内のサービス フィールドの種類に影響しません)。
-r ホップ数 指定したホップ数のルートを記録します (IPv4 のみ)。
-s ホップ数 指定したホップ数のタイムスタンプを表示します (IPv4 のみ)。
-j ホスト一覧 一覧で指定された緩やかなソース ルートを使用します
(IPv4 のみ)。
-k ホスト一覧 一覧で指定された厳密なソース ルートを使用します
(IPv4 のみ)。
-w タイムアウト
応答を待つタイムアウトの時間 (ミリ秒) です。
-R ルーティング ヘッダーを使用して逆ルートもテストします
(IPv6 のみ)。
-S ソースアドレス
使用するソース アドレスです。
-4 IPv4 の使用を強制します。
-6 IPv6 の使用を強制します。
あとはzshで以下のように設定すればOK。
alias ping='cocot ping'
alias mvn='cocot mvn'
alias sqlplus='cocot sqlplus'
alias -s py=python
でもこの使い方だと、打ちたいコマンドが増えるたびにエイリアスが増えちゃうのが哀しそう。
なんとかしなきゃ。
あとzshすげー!
参考資料
ConEmu
- ConEmu プロジェクト日本語トップページ - OSDN
- ConEmu 突っ込んだら Git for Windows の Git Bash がカッコよくなった - てっく煮ブログ
- Windows標準のコマンドプロンプトウィンドウをタブ化できる「ConEmu」 | OSDN Magazine