Help us understand the problem. What is going on with this article?

Windowsでかっくいいターミナルが使いたい!

More than 3 years have passed since last update.

image

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

babun

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした