概要
Windows Subsystem for Linux (旧 Bash on Ubuntu on Windows) で快適にターミナルで日本語使いたい。
(更新) April 2018 Update 以降の状況で更新しました。
個人的な結論
ConEmu や cmder も試したものの、全角文字でカーソル位置がずれるので、特に vim で日本語混じりのファイルを扱うときに使い物にならない。
cygwin などで使われている mintty がやっぱり枯れているなぁ。
Windows Subsystem for Linux で mintty を使う方法
自前でビルドする、という男らしい対応記事もいくつか上がっていますが、時間も経って、ビルド済みのものも公開されています。
は、インストーラ実行するだけで、いい感じのショートカットも登録してくれるのでよい感じ。
いくつかの問題点
コマンドプロンプトが色が付いていなくて寂しい
~/.bashrc を見ればわかりますが、TERM が xterm*-color の時だけ色をつけているので、mintty の Options > Terminal > Type を xterm256-color にしておきましょう。
代わりに ~/.bashrc を編集して force_color_prompt=yes の行をコメントアウトしても良いはず。
ls したときに全体的に色がおかしい
(更新)April 2018 Update より、Windows 側のファイルシステムを Linux で参照する際に使われる drvfs の更新が行われ、metadata 対応が入りました。これにより、mount 時のオプションを適切に設定することで、見かけ上、パーミッションが 644 とか 755 に見せられたり、都合が悪いファイルは linux 側の見かけ上のパーミッションを変更できるようになりました。同じタイミングで入った /etc/wsl.conf で設定が可能です。参考: ASCII.jpの記事
[automount]
options = "metadata,umask=22,fmask=11"
ls を責めてはいけません。Windows Subsystem for Linux で Windows 側のファイル・フォルダのバーミッションが全部 777 に見えているのがあかんのです。
$ dircolors -p > ~/.dircolors
して、.dircolors で必要ない設定を 0 に書き換えましょう。このファイル名で置いておくと、.bashrc で読み取ってくれます。
vim で編集するとどの設定値がどの色なのかが編集時にわかるため、問題の設定がどこなのかがわかりやすいはずです。OTHER_WRITABLE とか EXEC とかそのへん。
カラーテーマを変更したい
4bit color のターミナルは原色でどぎついので、ターミナル側のカラーテーマをいじりたくなります。
最近、mintty には Theme 機能がついていますので、そちらで気に入ったものを設定しましょう。
独自でカスタマイズしたいときは、mintty の設定メニューからもリンクが付いている http://ciembor.github.io/4bit/ で自分の好きな淡さに調節しましょう。
設定できたら、右上の Get Scheme ボタンから mintty を選ぶと、.minttyrc に追記するためのテキストが得られます。
コピーしたら、 .minttyrc に追記したいのですが、普段は $HOME にいるはずの設定ファイルが見当たりません。wsltty では、%APPDATA%/wsltty/config にありますので、これに追記します。
注意点
(更新)最新の wsltty でログインシェルの変更に対応しました。
Fall Creators Update で、ログインシェルを bash 以外に変更できるようになったのですが、wsltty では、バックエンドに使っている wslbridge の都合で bash しか使えません。
zsh 使いの方は、この issue をウォッチしていましょう。
https://github.com/rprichard/wslbridge/issues/17
その他
mintty のフォント設定などはググればきっといろんな記事が出てくるはず。Ricty Diminished で快適に使えております。