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