Cygwin MSYSの256色対応

概要

  • ConEmuはデフォルトでは256色対応していない。(ただし、minntty.exeをConEmuにアタッチすれば256色表示するけれど。)
  • 256色対応するには、以下のcygwin/msys terminal connectorを使う。ただし、この機能はまだ実験的な機能とのこと。
  • http://conemu.github.io/en/CygwinMsysConnector.html

インストール

  • 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"

参考


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

Last-modified: 2017-01-08 (日) 16:30:08 (1061d)