Cygwin MSYSの256色対応
概要
インストール
- ConEmuを最新版にする。
- https://github.com/Maximus5/cygwin-connector/releases から最新版のコネクターのアーカイブをダウンロードする。
- アーカイブを展開して、自分の環境にあったコネクターを選ぶ。
- Cygwin: conemu-cyg-32.exe and conemu-cyg-64.exe;
- MSYS 1.0: conemu-msys-32.exe;
- MSYS 2.0: conemu-msys2-32.exe and conemu-msys2-64.exe.
- 今回は64ビットのMSYS2とする。
- conemu-msys2-64.exeをMSYS2がインストールしてあるディレクトリ下のログインシェル(bash.exeなど)と同じ場所にコピーする。
- 今回は、C:\msys64\usr\bin だった。
Bashの起動
C:\msys64\usr\bin\conemu-msys2-64.exe --verbose
タスク設定
- ConEmuのメニューから、[Settings]を選ぶ。
- Settingsダイアログが開くので、左ペインより[Startup]->[Tasks]を選ぶ。
- [Predefined Tasks]より[+]を押下し、タスクを追加する。
- グループ名はBash::Msys2-ANSIなど適当につける。
- コマンドは以下のようにする。(パスは環境に合わせて変更すること)
- ポイントは-cur_console:h0でスクロールバッファをオフにすること。
set CHERE_INVOKING=1 & set MSYSTEM=MINGW64 &
"C:\msys64\usr\bin\conemu-msys2-64.exe" -cur_console:h0
-new_console:C:"%ConEmuDrive%\msys64\msys2.ico"
Bash上での256色対応を確認する
#!/usr/bin/env perl
use strict;
use warnings;
my $fg = "\x1b[38;5;";
my $bg = "\x1b[48;5;";
my $rs = "\x1b[0m";
my $color = 0;
for (my $row = 0; $row < 32; ++$row) {
for (my $col = 0; $col < 8; ++$col) {
print get_color($color);
$color++;
}
print "\n";
}
sub get_color {
my ($color) = @_;
my $number = sprintf '%3d', $color;
return qq/${bg}${color}m ${number} ${rs} ${fg}${color}m${number}${rs} /;
}
- 上のPerlスクリプトを256.plなどとしてファイルに保存する。
- perl 256.plで実行する。
もう少し簡単に
echo -e "\e[1;33;40m Yellow on black \e[m"
参考