駄文置き場ですから

自分がやったこと書く用メモなので

Windowsにminttyを入れた話

主にgit操作をCUIでやりたいということで、新しく(半年前に)買ったWindows PCにminttyを入れます。
gitのGUI操作はなんか慣れないです。

会社のPCや自宅の旧PCではCygwinをインストールして、デフォルト端末として一緒に入ってくるminttyを使ってました。
Cygwinはサイズがでかいしインストールに時間がかかるので、今回はMinGWからインストールします。

MinGWをちょっと調べた

今までたまに耳にしてたMinGW、結局使わないまま生きてきたのでついでにざっくり調べました。
ここでは詳細説明しませんが、要はLinuxとかのターミナルをWindows環境で使おう的なアレです。

フォーク元のCygwinPOSIX環境との互換性を重視していて、そのためにWindows機能が一部犠牲になったりしてるそうです。
対してMinGWは完全な互換まではせず最小限の環境の提供に制限しているためCygwinよりずっと軽量です。その分Cygwinで実行できたプログラムがMinGWでは実行できないとかあるみたいですが、あまり本格的なこともする予定は無いので問題無いでしょう。多分。

導入環境

参考文献

以下をベースに参考にさせていただきました。
わざわざ記事書く必要が無いくらい同じことやってるだけです。

http://qiita.com/plan0213/items/34f4aae78f0c59b1e788
https://unilith.wordpress.com/tag/msys/

MinGWのインストール

MinGW - Minimalist GNU for Windows - Browse Files at SourceForge.net

ここ↑からインストーラをダウンロードします。
installer -> mingw-get-setup.exe です。最終更新は2013-10-04でした。

f:id:pmw1415:20151017200339p:plain

インストーラ起動したらデフォルトのまま手順通り進めます。インストール先もデフォルトのまま"C:\MinGW"です。

f:id:pmw1415:20151017200403p:plain

インストールが完了すると MinGW Installation Managerというウィンドウが起動します。
ここでリスト先頭の"mingw-developer-toolkit"をクリックメニューから「Mark for Installation"選択でチェックします。
これチェックするとリスト下側の"msys-base"もチェックされます。

メニューバー「Installation」から「Apply Changes」を選択してインストールします。
これでインストール完了。

環境変数に追加

以下の環境変数を追加or作成します。

  • Pathに以下を追加
  • Homeを作成して"C:\Users\<ユーザ名>"を設定

minttyのインストール

C:\MinGW\msys\1.0\msys.bat を実行してMinGWのシェルを起動。
以下のコマンドを実行してminttyをインストール。

$ mingw-get update
$ mingw-get install msys-mintty

完了後、C:\MinGW\msys\1.0\bin\mintty.exe が追加されます。

ショートカット作成

minttyを起動しやすくするためショートカット作成します。
が、そのまま起動するとシェルがshで起動します。

f:id:pmw1415:20151017211915p:plain

ログインシェルとして起動するため、ショートカットのプロパティからパス名の末尾に" -"(スペース+ハイフン)を追記します。

f:id:pmw1415:20151017212127p:plain

日本語化

このままでは日本語の入力やら表示やらできないので一通り設定します。

ロケール文字コード設定

Windows文字コードはデフォルトでSJISなのでそれに合わせます。
CygwinだとUTF-8設定で表示できたはずだけどMinGWだとダメでした。なんか設定足りない気がしないでもないけどまあSJISにしておきます。

右クリックから「Options」で設定画面を表示。
「Text」にてLocaleを「ja_JP」、Character setを「SJIS」に設定します。

lsコマンド

lsコマンドの出力でファイル名の日本語部分が文字化けします。
lsコマンドのオプション"--show-control-chars"を追加で改善できます。が、毎回打つのは面倒なのでalias使ってデフォルトでオプション指定できるようにします。

~/.profileを作成して以下を追記。

alias ls='ls -F --color=auto --show-control-chars'
alias ll='ls -l'
alias la='ls -a'

ついでに-Fとか色指定とかも追加したり、llとかlaも登録しました。

日本語入力

シェル上で日本語出力ができないので設定値を変更します。
このへんの設定は/etc/inputrc.default で行っているため、~/.inputrcを作成して設定を上書きします。

# disable/enable 8bit input
set meta-flag on
set input-meta on
set output-meta on
set convert-meta off

output-metaをoff->on、convert-metaをon->offに変更しました。

※これは8bitの文字コードを通すための設定で、マルチバイト文字単位での編集ができないみたいです。
Backspaceで日本語削除すると1byteずつ削除になって文字化けしたり、使ってると何かと文字化けします。
使ってて割と使いづらいとかあれば何かしら対応したいと思います。

Vimの日本語化

シェルからファイル編集とかたまに使いたくなるので、一緒に変更しておきます。

~/.vimrcを作成して以下を記述します。

set enc=japan

カスタマイズ

設定画面から自分用に設定します。

Locks

Transparencyを「Med」に設定してウィンドウを透過。
Cursorを「Block」に変更。

Text

FontをMSゴシック, 10-pointに設定。
LocaleとCharacter setは先の日本語化で設定した通り。

f:id:pmw1415:20151017221830p:plain

こうなりました。

まとめ

基礎の基礎みたいな部分の環境構築ですが、ひとまずシェルを使えるようになりました。
取り急ぎ使いたいのはgitとかtigとかですが、他にもいろいろ便利なものがあったら入れてみたいと思います。
おしまい。