2015-05-31

zsh: Coloring outputs for here-documents and printf.


経緯


すでにコマンド・ラインから彩色した文字を標示する方法を以下のサイトで説明しました;
   

その後、私は幾つかのスクリプトを作っていて、この「彩色するecho関数群」を楽しんでいます;
  •  要点を効果的に表示できる、
  •  使いやすい。

そこで、「彩色するecho関数群」を2つの事例に応用出来たので紹介します;

  • Here-Documents: a standard shell feature.
  • printf: shell built-in command.


実例


何はともあれ、テストしたスクリプトのターミナル出力を示します。スクリプトを後に紹介します。


Figure 1. Coloring outputs in “here-documents” & “printf”


スクリプトの簡単な説明

I “here-documents”


・彩色する部分を彩色するecho関数に引数として渡し、
・更に、コマンド・サブスティチューション; $(…);に挿入した。


#  EXAMPLE Ia  "abc def ghi"
#             |                    ***
#            ⇣
#  EXAMPLE Ib  "abc $( bc_ 'def'' ) ghi」
#                                  ---------***--

II “printf”


この問題を解くのに、下記の資料が参考になりました。この本の「promptsに関する説明」では、 zsh Form「%1~」に彩色するエスケープ・シーケンスを添付しています;
 ・From Bash to Z Shell”, p149.

そこで「printf format」でも、フォーマット記述子にエスケープ・シーケンスを添付しようと考えました。下の例では、フォーマット記述子「%3d」に操作するとします;

  • 彩色のエスケープ・シーケンスは記述子「%3d」の前後に配置されます
    • \e[36;1m: 彩色する開始シークエンス
    • \e[m: 彩色の停止シークエンス


#  EXAMPLE IIa   "%2d  %3d  %s"
#       |                                ***
#       ⇣
#  EXAMPLE IIb   "%2d  \e[36;1m%3d\e[m  %s"
#       |                                    --------***----
#       ⇣
#  EXAMPLE IIc   "%2d  $bc_%3d$fin  %s"
#                                          ----***----

スクリプト


スクリプトを示します。彩色するecho関数群のうちで、必要なものは先頭に直接書いておきました。従ってこのスクリプトでの単独テストをできます。

#!/bin/zsh 

# t.colors: shows Coloring outputs for here-documents and printf.

# Usage: t.colors⏎

# A paort of Coloring Echoes --------------------
btg(){echo -n "\e[1;38;42m${@}\e[m"}
b_y(){echo -n "\e[1;7;33m${@}\e[m"}
br_(){echo -n "\e[31;1m${@}\e[m"}
bg_(){echo -n "\e[32;1m${@}\e[m"}
bc_(){echo -n "\e[36;1m${@}\e[m"}
by_(){echo -n "\e[33;1m${@}\e[m"}
bt_(){echo -n "\e[38;1m${@}\e[m"}
b_w(){echo -n "\e[1;7;37m${@}\e[m"}
et_(){echo -n "\e[38m${@}\e[m"}
e_n(){echo "\e[38m${@}\e[m"}

#---------------------------- main --------------------------
prg_name=${0##*/}

fluits=( orange kiwi )
unit_prices=( 200 60 )



cat <<-EOF_example_Ia
 ========================================================================
   EXAMPLE Ia of here-documents.
     (1) Here is an $fluits[1].
     (2) There is a $fluits[2].
     ...
     
EOF_example_Ia



cat <<-EOF_example_Ib
 ========================================================================
  $(btg ' EXAMPLE Ib ') for $(b_w ' here-documents ').
     $(b_y '(1)') Here is an $(br_ $fluits[1]).
     $(b_y '(2)') There is a $(bg_ $fluits[2]).
     ...
      
EOF_example_Ib



echo '========================================================================'
echo "  EXAMPLE IIa for printf."

echo "   #   @price    fluit"
echo '   ---------------------'
for j in {1..2}; do
 #                ***     ****
 printf "   %d    %3d     %-8s\n"\
     $j $((unit_prices[$j])) " $fluits[$j] "
done
echo '\n'



echo '========================================================================'
et_ ' ';btg ' EXAMPLE IIb ';et_ ' for ';b_w ' printf ';e_n '.'

echo "   #   @price    fluit"
echo '   ---------------------'
for j in {1..2}; do
 #                --------***----     ----------****-----
 printf "   %d    \e[36;1m%3d\e[m     \e[1;7;33m%-8s\e[0m\n"\
     $j $((unit_prices[$j])) " $fluits[$j]"
done
echo '\n'



bc_='\e[36;1m'; fin='\e[m'; b_y='\e[1;7;33m'
echo '========================================================================'
et_ ' ';btg ' EXAMPLE IIc ';et_ ' for ';b_w ' printf ';\
  et_ ' using ';b_w ' short-cut ';e_n '.'

echo "   #   @price    fluit"
echo '   ---------------------'
for j in {1..2}; do
 #                ----***----     ----****----
 printf "   %d    $bc_%3d$fin     $b_y%-8s$fin\n"\
     $j $((unit_prices[$j])) " $fluits[$j]"
done
echo '\n'
echo '========================================================================'



感想


「EXAMPLE IIc」で、変数;$bc_,;が導入された。このスペルは同じ色を表現するecho関数と同じスペルに設定できた。そこで「coloring short-cut variables」を先に定義して、逆に「coloring echo functions」を定義したいと思います。
 ・bc_=‘\e[36;1m’; fin=‘\e[m’
 ・bc_(){echo -n “$bc_${@}$fin”}

今回までで、zshの彩色環境は整った。今後は補完スクリプトの整備がしたいです。


____
この記事の履歴
  1. 開始 2015-06-02(火) 21:12:46 
  2. 追加 2015-06-03(水) 13:23:38 感想:  coloring short-cut variables

2015-05-18

zsh: echo command

経緯


私は最近まで『改訂版 Mac OS Xターミナルコマンド・ポケットリファレンス、MINAKAMI Shinobu、2006第2版、技術評論社、ISBN4-7741-2877-5』を参考にしていました。でも「bash→zsh』に乗り換えると、流石に最近のMacに則した解説書が欲しくなりました。

そこで次の本を購入しました;

  • “Macintosh Terminal Pocket Guide Third release”, 
    • Daniel Barrett, 2012/7/2,
    • O’Reilly, ISBN: 978-1-449-32834-4.

疑問点


以前から釈然としていなかった「echoのオプション」を見ると
    ・MINAKAMI版, p53: 「-n」
    ・Barrett版, p170: 「-n, -e, -E」

zshを運行している私の経験から見ると、Barrett版が正しいと思います。

そこで、調べて見ました。結果を図1に示します;
 

Figure 1. ' shell built-in echo' and '/bin/echo'


大雑把にいえば;
  • 日常的に使っている「echo」は『shell built-in echo』である。
  • 日常的に使っている「man echo」は『/bin/echoのマニアル』である。

従って、zshで使っている「echo」の挙動を知るには、我々は図2の様な「zshのオンライン・マニュアル」を見るべきです。

と書きましたが、間違えでした。次の図3にお進みください。ただし、最新バージョンの確認には使えますので、図2はそのままとします。


Figure 2. zsh: Shell-Builtin-Commands:: echo
と書きましたが、間違えでした。次の図3にお進みください。


ターミナルでのzshマニュアルズ

Figure 3. “echo” part of the zshbuiltins.pdf displayed in a preview.app.

図2を書いている頃は、 私は「man zsh」だけがzshのオンライン・マニュアルと思っていました。でも、試しにターミナルで「man zshall」と叩くと、zshallがターミナル上に現れました! 当然「zshbuiltins」もあります。 zshの資料検索にとってこれはとてもありがたいことです。

『man→ pdf』の変換には、「man2pdf」という手作スクリプトを使っています。pdfにはコメントやブックマークを付けたりできるからです。


そこで「zshマニュアル(pdf)に対する簡易検索と表示」をするスクリプト(zzz)を試作しました。



Figure 4. A typical operation example of zzz.

pdf資料の検索に「grep」を使うと、不安定な出力が出ます。そこで「mdfind」で代用しています。

「mdfind」: 「Spotlight search」のターミナル版です。

echoの有効活用


「echo -E」は、改行区切りの処理に有用と思う。特に「\n, \t」がコンパクトに表示されるので、問題把握が迅速になると感じます。


メモ

  • 今後、コマンドとmanが食い違う場合、「where」を用いてコマンドが複数あるかどうかをチェックから始めよう。
  • zzzは安定したら、公開します。



____
この記事の履歴
  1.  開始 2015-05-18(月) 22:16:56 
  2.  追加 2015-05-23(土) 18:51:39 ターミナルでのzshマニュアルズ

2015-05-11

ダーク・カラーで動かすFirefox.appでの色設定

前回の記事で、Terminal.appの色設定を紹介しました。

此れまでに ダーク・カラーで動作しているのは;
  1. Xcoden ⇐ 元からか。
  2. TerxtWrangler ⇐ 不思議と直ぐにできた。此れで病みつきになった。  
  3. Terminal ⇐色調整には苦労した。

でも、使用頻度の高いブラウザー、ファインダー、メイラーには手が出ていません。取っ付きやすそうな「資料検索のブラウザ(Firefox 37.0.2)」から手を出すことにしました。紆余曲折ののち、安定に動作する組み合わせが判ったので、ご紹介します。


 図1. ダーク・カラーのFirefox.app

Figure 1.  My blogger in Firefox with dark color.

上から順に
  • Yosemite 10.10.2 using dark menu bar. 
  • Dark Wood: theme 
  • NoSquint 2.1.9: extention 

私のサイトでは伝統的に「バックグラウンドで紙の画像」を使っていたので、図1のような標示には違和感が強かったです。でも使い慣れると、意外と気に入りました。ある意味、Yosemite自体が昔のKT7.5での「非力ゆえのフラットなデザイン」の系統に回帰しているのかもしれません。

 # 私も、フラットな雰囲気のダーク・カラーのbloggerを作りたいと考えました。


 図2. NoSquintの設定のスタート




 図3. NoSquintの「Global setting」

Figure 3. "Global Setting" of NoSquit.



 図4. NoSquintのサイト毎の設定呼び出し

Figure 4. Operation to call  "Settin Setting" of NoSquit:
require two clics.


図5. NoSquintの「Site Setting」 

Figure 5. "Site Setting" of NoSquit.


図6a. NoSquintもまだ完全ではない! 

エディタでの「作成画面」: アイコンがよく見えない。でも、入力画面は楽に操作できるようになった、感謝。

Figure 6a.  My bloggers'e editor has wrong isons.



図6b. NoSquintも「HTML画面」は修正できない! 

エディタでの「HTML画面」: 投稿画面が眩しすぎる!!!

Figure 6b.  My bloggers'e editor in HTML mode showes too much bririant! 



____
この記事の履歴
  1.  開始 2015-05-11(月) 17:11:32 
  2.  追加 2015-05-11(月) 19:52:10  Googleに図6a,bの問題点を提示。



dark color setting for Firefox.app, Yosemite 10.10.2, Dark Wood, NoSquint 2.1.9,blogger editor,

2015-05-09

zsh: ダーク・カラーで動かすTerminal.appでの'ls出力'の色設定



高齢者にとって「ダーク・カラーで動かすTerminal.app」は目が楽になる!問題は「directoryが濃い紫色で出力される」ので、殆どdirectoryがバックグラウンド・カラーに埋没して読めないのだ。

検索すると「LSCOLORS」と「LS_LOROS」の設定法が多数ある。zsh初心者としては、しっかりと整備したくなった。チュニーングをした結果、下の図1~3に示すように、「単純なlsの場合」でも「lsにTAB補完を施した場合」でも、概ね同じ出力で、視認性も良好だ。

図1 「/」






図2 「/dev」






図3 自作のサンプル・ディレクトリ


  


.zshrcの色設定の部分



########## start: Setup ls-color and it's completion color  & prompt ##########
# 2015-04-20(月) 19:38:51 
#========================
#
##---- Step 1/4) Colors at ls-command: $LSCOLORS #-----------------------------
#         file type:DIlnSOpiexBDCDsusgTWOW
 export LSCOLORS=EGFeFcHdxBDhGhAbAgxCxD
#    •[a-hA-Hx]: cation! 'X(bright default)' not defined
#    •example: fore/back=blue/cyan with normal font --> eg
#              fore/back=blue/cyan with bold font ----> Eg | eG | EG
#----- Step 2/4) Colors at ls-completion: $LS_COLORS #--------------------------
#
 LS_COLORS='di=1;34;46:ln=1;35;44:so=1;32;45:pi=1;33;39:ex=1;39;41:'
 LS_COLORS=$LS_COLORS'bd=1;33;47:cd=1;36;47:su=1;30;41:sg=1;30;46:'
 LS_COLORS=$LS_COLORS'tw=1;39;42:ow=1;39;43:st=1;7;39'
 zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
#  in this command,  '$ZLS_COLORS=$LS_COLORS' 
#
##---- Step 3/4) Prompt: -------------------------------------------------------
# tune the preference of the terminal.app manually.
# -----» myTerminalColors2 «----- (2015-05-03(日) 12:39:41)
#            Active Win.  Inactive Win.
#  #     setting color    R    G    B    Opacity Blur Opacity Blur
# -----------------------------------------------------------------
# 01        Background   015  009  024       90  100      27   23
# 02              Text   230  230  230 
# 03          BoldText   255  255  255 
# 04         Selection   220  140  033 
# --------------------------------------
# 05          Black(0)   000  000  000 
# 06    brightBlack(8)   102  102  102 
#    - - - - - - - - - - - - - - - - - -
# 07            Red(1)   153  000  000 
# 08      brightRed(9)   229  000  000 
#    - - - - - - - - - - - - - - - - - -
# 09          Green(2)   000  166  000 
# 10    brigtGreen(10)   000  217  000 
#    - - - - - - - - - - - - - - - - - -
# 11         Yellow(3)   153  153  000 
# 12   brigtYellow(11)   229  229  000 
#    - - - - - - - - - - - - - - - - - -
# 13           Blue(4)   000  000  178 
# 14     brigtBlue(12)   000  000  255 
#    - - - - - - - - - - - - - - - - - -
# 15        Magenta(5)   199  000  209 
# 16  brigtMagenta(13)   229  000  229 
#    - - - - - - - - - - - - - - - - - -
# 17           Cyan(6)   119  194  203 
# 18     brigtCyan(14)   087  239  255 
#    - - - - - - - - - - - - - - - - - -
# 19          White(7)   191  191  191 
# 20    brigtWhite(15)   229  229  229 
# --------------------------------------
# 21            Cursor   255  000  255 
# --------------------------------------
#
##---- Step 4/4) Prompt: -------------------------------------------------------
# 2014-11-08(土) 11:12:35 
#------------------------
# %n=UserName, %m=MachineName, "%4~"='compact dir display'
#
 export PROMPT='%B%F{cyan}%K{blue}%n@%m[%4~]%#%k%f%b '
 export RPROMPT='%B%F{cyan}%K{blue}%D{%H:%M:%S}%k%f%b'
#
########## end: Setup ls-color and it's completion color  & prompt #############





「LSCOLORS」と「LS_COLOROS」に関するノート


Note on LSCOLORS and LS_COLORS


関連記事







____
この記事の履歴
  1. 開始 2015-05-09(土) 13:38:17
  2. 追加 2015-06-16(火) 14:02:25  関連記事

zsh: 彩色するecho関数群の制作と評価

私は前の記事で、Terminalを黒っぽい色で運用するという経験をしました。 明るい画面が眩しい者にとって、其の経験は素晴らしいものでした。
でも、バックグラウンド色を暗くするだけでは、見やすくならないとも感じました。そこで『文字が見やすくなるような輝度と彩度の探索』を行いました。其の結果を図1に示します。

図1.  テーブル1: cehelp,  テーブル2: fb2z_302.


図1-テーブル 1は今回作成した「彩色したエスケープ・シークエンスを用いたecho関数群」の出力(カラー調整後)です。この時、Terminal.appでのPreferenceで全ての項目を出力を見ながら調節したRGB値を下表3に示します。図1- 表1 myTerminalColors2 「テーブル 2」は「From Bash to Z Shell, p302.」の連想配列の説明に出ていたスクリプトの出力です。どうやら、カラー名に基づく色指定はターミナルの調節とは連動していないようです。

 「テーブル 1, 2」は、.zshrc」の中で直列に置かれた関数から生成されました。言い換えれば、同一のターミナルの色設定でを反映しています。しかし、文字色におおきな差が出ています;

  • 文字の輝度は、「テーブル 1」で圧倒的に高くなった。その為に、明るいバックグラウンドの時はフォント・サイズが「18~22pt」だったのが、暗いバックグラウンドでは「16pt」で運用できるようになりました。
    • 眩しさは明らかに軽減されました。当然、画面中のデータ量が増大した。
    • あたかも、文字が浮かび上がって、目に飛び込んでくるような感触です。 
  • 文字の彩度は「赤とマゼンタの対」「緑とシアンの対」が識別をしやすくなるように調節した。
    • 「赤-->橙」「緑-->明るい緑」「黄-->純色の黄」となった。
    • 多色で切り分た多項目データで、項目把握が明確にできるようになった。 
  • これらのRGB調節の時に、「テーブル 1,2」の振る舞いの観察から、テーブル2はターミナルの調節に依存しないように見えた。其の理由は未だ判らない。
 表3 Terminal.appでのカラー設定結果


-----» myTerminalColors2 «-----
                                       Active Win.  Inactive Win.
 #     setting color    R    G    B    Opacity Blur Opacity Blur
-----------------------------------------------------------------
01        Background   015  009  024       90  100      27   23
02              Text   230  230  230 
03          BoldText   255  255  255 
04         Selection   220  140  033 
--------------------------------------
05          Black(0)   000  000  000 
06    brightBlack(8)   102  102  102 
   - - - - - - - - - - - - - - - - - -
07            Red(1)   153  000  000 
08      brightRed(9)   229  000  000 
   - - - - - - - - - - - - - - - - - -
09          Green(2)   000  166  000 
10    brigtGreen(10)   000  217  000 
   - - - - - - - - - - - - - - - - - -
11         Yellow(3)   153  153  000 
12   brigtYellow(11)   229  229  000 
   - - - - - - - - - - - - - - - - - -
13           Blue(4)   000  000  178 
14     brigtBlue(12)   000  000  255 
   - - - - - - - - - - - - - - - - - -
15        Magenta(5)   199  000  209 
16  brigtMagenta(13)   229  000  229 
   - - - - - - - - - - - - - - - - - -
17           Cyan(6)   119  194  203 
18     brigtCyan(14)   087  239  255 
   - - - - - - - - - - - - - - - - - -
19          White(7)   191  191  191 
20    brigtWhite(15)   229  229  229 
--------------------------------------
21            Cursor   255  000  255 
--------------------------------------


結論

  • エスケープ・シーケンスのカラー・サンプルを見やすく調節出来た。
  • この結果、高齢者の画面操作がとてもリラックス出来るようになった。 
  • 「彩色したエスケープ・シークエンスを用いたecho関数群」は情報を見やすく表示するのに有用だった。 
  •  他方、カラー名とエスケープ・シークエンスは連携していない。  

 図1でのスクリプトを示します。  

スクリプト1. cehelp

#!/bin/zsh 

# ColoringEchoes
#
# Usage: ColoringEchoes⏎


# 2015-04-12(日) 13:45:03 
# 2015-04-27(月) 09:22:58 BoldColors: 全ての色の組み合わせ、エスケープ化。
# 2015-05-08(金) 11:11:26 --> ColoringEchoes

#  色文字、背景はディフォールト:バックグラウンド色
# Lightface
ek_(){echo -n "\e[30m${@}\e[m"}
er_(){echo -n "\e[31m${@}\e[m"}
eg_(){echo -n "\e[32m${@}\e[m"}
ey_(){echo -n "\e[33m${@}\e[m"}
eb_(){echo -n "\e[34m${@}\e[m"}
em_(){echo -n "\e[35m${@}\e[m"}
ec_(){echo -n "\e[36m${@}\e[m"}
ew_(){echo -n "\e[37m${@}\e[m"}
et_(){echo -n "\e[38m${@}\e[m"}
# Boldface
bk_(){echo -n "\e[30;1m${@}\e[m"}
br_(){echo -n "\e[31;1m${@}\e[m"}
bg_(){echo -n "\e[32;1m${@}\e[m"}
by_(){echo -n "\e[33;1m${@}\e[m"}
bb_(){echo -n "\e[34;1m${@}\e[m"}
bm_(){echo -n "\e[35;1m${@}\e[m"}
bc_(){echo -n "\e[36;1m${@}\e[m"}
bw_(){echo -n "\e[37;1m${@}\e[m"}
bt_(){echo -n "\e[38;1m${@}\e[m"}

#  色文字、背景は黒色
bkk(){echo -n "\e[1;30;40m${@}\e[m"}
brk(){echo -n "\e[1;31;40m${@}\e[m"}
bgk(){echo -n "\e[1;32;40m${@}\e[m"}
byk(){echo -n "\e[1;33;40m${@}\e[m"}
bbk(){echo -n "\e[1;34;40m${@}\e[m"}
bmk(){echo -n "\e[1;35;40m${@}\e[m"}
bck(){echo -n "\e[1;36;40m${@}\e[m"}
bwk(){echo -n "\e[1;37;40m${@}\e[m"}
btk(){echo -n "\e[1;38;40m${@}\e[m"}

#  色文字、背景は赤色
bkr(){echo -n "\e[1;30;41m${@}\e[m"}
brr(){echo -n "\e[1;31;41m${@}\e[m"}
bgr(){echo -n "\e[1;32;41m${@}\e[m"}
byr(){echo -n "\e[1;33;41m${@}\e[m"}
bbr(){echo -n "\e[1;34;41m${@}\e[m"}
bmr(){echo -n "\e[1;35;41m${@}\e[m"}
bcr(){echo -n "\e[1;36;41m${@}\e[m"}
bwr(){echo -n "\e[1;37;41m${@}\e[m"}
btr(){echo -n "\e[1;38;41m${@}\e[m"}

#  色文字、背景は緑色
bkg(){echo -n "\e[1;30;42m${@}\e[m"}
brg(){echo -n "\e[1;31;42m${@}\e[m"}
bgg(){echo -n "\e[1;32;42m${@}\e[m"}
byg(){echo -n "\e[1;33;42m${@}\e[m"}
bbg(){echo -n "\e[1;34;42m${@}\e[m"}
bmg(){echo -n "\e[1;35;42m${@}\e[m"}
bcg(){echo -n "\e[1;36;42m${@}\e[m"}
bwg(){echo -n "\e[1;37;42m${@}\e[m"}
btg(){echo -n "\e[1;38;42m${@}\e[m"}
bug(){echo -n "\e[1;39;42m${@}\e[m"}


#  色文字、背景は黄色
bky(){echo -n "\e[1;30;43m${@}\e[m"}
bry(){echo -n "\e[1;31;43m${@}\e[m"}
bgy(){echo -n "\e[1;32;43m${@}\e[m"}
byy(){echo -n "\e[1;33;43m${@}\e[m"}
bby(){echo -n "\e[1;34;43m${@}\e[m"}
bmy(){echo -n "\e[1;35;43m${@}\e[m"}
bcy(){echo -n "\e[1;36;43m${@}\e[m"}
bwy(){echo -n "\e[1;37;43m${@}\e[m"}
bty(){echo -n "\e[1;38;43m${@}\e[m"}
buy(){echo -n "\e[1;39;43m${@}\e[m"}

#  色文字、背景は青色
bkb(){echo -n "\e[1;30;1;44m${@}\e[m"}
brb(){echo -n "\e[1;31;1;44m${@}\e[m"}
bgb(){echo -n "\e[1;32;1;44m${@}\e[m"}
byb(){echo -n "\e[1;33;1;44m${@}\e[m"}
bbb(){echo -n "\e[1;34;1;44m${@}\e[m"}
bmb(){echo -n "\e[1;35;1;44m${@}\e[m"}
bcb(){echo -n "\e[1;36;1;44m${@}\e[m"}
bwb(){echo -n "\e[1;37;1;44m${@}\e[m"}
btb(){echo -n "\e[1;38;1;44m${@}\e[m"}
bub(){echo -n "\e[1;39;1;44m${@}\e[m"}

#  色文字、背景はマゼンタ色
bkm(){echo -n "\e[1;30;45m${@}\e[m"}
brm(){echo -n "\e[1;31;45m${@}\e[m"}
bgm(){echo -n "\e[1;32;45m${@}\e[m"}
bym(){echo -n "\e[1;33;45m${@}\e[m"}
bbm(){echo -n "\e[1;34;45m${@}\e[m"}
bmm(){echo -n "\e[1;35;45m${@}\e[m"}
bcm(){echo -n "\e[1;36;45m${@}\e[m"}
bwm(){echo -n "\e[1;37;45m${@}\e[m"}
btm(){echo -n "\e[1;38;45m${@}\e[m"}

#  色文字、背景はシアン色
bkc(){echo -n "\e[1;30;46m${@}\e[m"}
brc(){echo -n "\e[1;31;46m${@}\e[m"}
bgc(){echo -n "\e[1;32;46m${@}\e[m"}
byc(){echo -n "\e[1;33;46m${@}\e[m"}
bbc(){echo -n "\e[1;34;46m${@}\e[m"}
bmc(){echo -n "\e[1;35;46m${@}\e[m"}
bcc(){echo -n "\e[1;36;46m${@}\e[m"}
bwc(){echo -n "\e[1;37;46m${@}\e[m"}
btc(){echo -n "\e[1;38;46m${@}\e[m"}
buc(){echo -n "\e[1;39;46m${@}\e[m"}

#  色文字、背景は白(灰)
bkw(){echo -n "\e[1;30;47m${@}\e[m"}
brw(){echo -n "\e[1;31;47m${@}\e[m"}
bgw(){echo -n "\e[1;32;47m${@}\e[m"}
byw(){echo -n "\e[1;33;47m${@}\e[m"}
bbw(){echo -n "\e[1;34;47m${@}\e[m"}
bmw(){echo -n "\e[1;35;47m${@}\e[m"}
bcw(){echo -n "\e[1;36;47m${@}\e[m"}
bww(){echo -n "\e[1;37;47m${@}\e[m"}
btw(){echo -n "\e[1;38;47m${@}\e[m"}

# 色文字はdefault色?、背景は文字色の反転。
b_k(){echo -n "\e[1;7;30m${@}\e[0m"}
b_r(){echo -n "\e[1;7;31m${@}\e[0m"}
b_g(){echo -n "\e[1;7;32m${@}\e[0m"}
b_y(){echo -n "\e[1;7;33m${@}\e[0m"}
b_b(){echo -n "\e[1;7;34m${@}\e[0m"}
b_m(){echo -n "\e[1;7;35m${@}\e[0m"}
b_c(){echo -n "\e[1;7;36m${@}\e[0m"}
b_w(){echo -n "\e[1;7;37m${@}\e[0m"}
b_t(){echo -n "\e[1;7;38m${@}\e[0m"}

# 改行付き: e_n, b_n: 
e_n(){echo "\e[38m${@}\e[m"}  # Ligtface with white and \n: new-line.
b_n(){echo "\e[1;38m${@}\e[m"}  # Boldface with white and \n: new-line.


# old representation by using colors
#eyk(){echo -n "$fg_bold[yellow]$bg_bold[black]${@}$reset_color"}
#eky(){echo -n "$bg_bold[yellow]$fg[black]${@}$reset_color"}
#ecb(){echo -n "$fg_bold[cyan]$bg_bold[blue]${@}$reset_color"}
#ebc(){echo -n "$bg_bold[cyan]$fg[blue]${@}$reset_color"}
#emk(){echo -n "$fg_bold[magenta]$bg_bold[black]${@}$reset_color"}
#ekm(){echo -n "$bg_bold[magenta]$fg[black]${@}$reset_color"}
#eck(){echo -n "$fg_bold[cyan]$bg_bold[black]${@}$reset_color"}
#ekc(){echo -n "$bg_bold[cyan]$fg[black]${@}$reset_color"}



cehelp(){ #ColoringEchoesHelp
btw "»»» Table 1: $(basename $0) «««";e_n 
 ###bw_ '2015-05-08(金) 18:59:11 ';e_n
ew_ "#  ";bt_ '• ';ew_ "ColoringEchoes  "; br_ "without ⏎(return).";e_n
ew_ "#  ";bt_ '• ';br_ Not ;ew_ " require 'autoload -U colors && colors -u'."; e_n
ew_ "#  ";bt_ '• ';bg_ "Boldfaces"; ew_ ": 10rows for __,0a..7h,rv; ";bg_ Lightfaces; ew_ ": 1row. ";e_n
 echo '#  -----------------------------------------------------------------'
 echo '#   row\\col  0a   1b   2c   3d   4e   5f   6g   7h   8x    col/row'
 echo '#  -----------------------------------------------------------------'
 et_ '#  __  ';bk_ ' bk_ ';br_ ' br_ ';bg_ ' bg_ '; by_ ' by_ ';\
         bb_ ' bb_ ';bm_ ' bm_ ';bc_ ' bc_ '; bw_ ' bw_ '; bt_ ' bt_ ';\
         e_n '  __'

 et_ '#  0a  ';bkk ' bkk ';brk ' brk ';bgk ' bgk '; byk ' byk ';\
         bbk ' bbk ';bmk ' bmk ';bck ' bck '; bwk ' bwk '; btk ' btk ';\
         et_ '  0a';e_n 

 et_ '#  1b  ';bkr ' bkr ';brr ' brr ';bgr ' bgr '; byr ' byr ';\
         bbr ' bbr ';bmr ' bmr ';bcr ' bcr '; bwr ' bwr '; btr ' btr ';\
         et_ '  1b';e_n 

 et_ '#  2c  ';bkg ' bkg ';brg ' brg ';bgg ' bgg '; byg ' byg ';\
         bbg ' bbg ';bmg ' bmg ';bcg ' bcg '; bwg ' bwg '; btg ' btg ';\
         et_ '  2c';e_n 

 et_ '#  3d  ';bky ' bky ';bry ' bry ';bgy ' bgy '; byy ' byy ';\
         bby ' bby ';bmy ' bmy ';bcy ' bcy '; bwy ' bwy '; bty ' btr ';\
         et_ '  3d';e_n 

 et_ '#  4e  ';bkb ' bkb ';brb ' brb ';bgb ' bgb '; byb ' byb ';\
         bbb ' bbb ';bmb ' bmb ';bcb ' bcb '; bwb ' bwb '; btb ' btb ';\
         et_ '  4e';e_n 

 et_ '#  5f  ';bkm ' bkm ';brm ' brm ';bgm ' bgm '; bym ' bym ';\
         bbm ' bbm ';bmm ' bmm ';bcm ' bcm '; bwm ' bwm '; btm ' btm ';\
         et_ '  5f';e_n 

 et_ '#  6g  ';bkc ' bkr ';brc ' brr ';bgc ' bgc '; byc ' byc ';\
         bbc ' bbr ';bmc ' bmr ';bcc ' bcc '; bwc ' bwc '; btc ' btc ';\
         et_ '  6g';e_n 
         
 et_ '#  7h  ';bkw ' bkw ';brw ' brw ';bgw ' bgw '; byw ' byw ';\
         bbw ' bbw ';bmw ' bmw ';bcw ' bcw '; bww ' bww '; btw ' btw ';\
         et_ '  7h';e_n 

 et_ '#  rv  ';b_k ' b_k ';b_r ' b_r ';b_g ' b_g '; b_y ' b_y ';\
         b_b ' b_b ';b_m ' b_m ';b_c ' b_c '; b_w ' b_w '; b_t ' b_t ';\
         et_ '  rv';e_n 

 et_ '#    light  ';
         ek_ ' ek_ ';er_ ' er_ ';eg_ ' eg_ '; ey_ ' ey_ ';\
         eb_ ' eb_ ';em_ ' em_ ';ec_ ' ec_ '; ew_ ' ew_ '; et_ ' et_ ';\
         et_ ' lightfaces';e_n 
 echo '#  -----------------------------------------------------------------'
 ew_ '#  • ';ew_ "Commands "; br_ "with ⏎(return):";e_n ' e_n, b_n, echo and samples.'
 echo '#  -----------------------------------------------------------------'
 
}


# 通常文字:e_m:改行無し, e_n: 改行付き
#e_m(){echo -n "\e[38m${@}\e[m"}  # Ligtface with white == et_
#b_m(){echo -n "\e[1;38m${@}\e[m"} # Boldface with white == bt_
e_n(){echo "\e[38m${@}\e[m"}  # Ligtface with white and \n: new-line.
b_n(){echo "\e[1;38m${@}\e[m"}  # Boldface with white and \n: new-line.


# old representation by using colors
#eyk(){echo -n "$fg_bold[yellow]$bg_bold[black]${@}$reset_color"}
#eky(){echo -n "$bg_bold[yellow]$fg[black]${@}$reset_color"}
#ecb(){echo -n "$fg_bold[cyan]$bg_bold[blue]${@}$reset_color"}
#ebc(){echo -n "$bg_bold[cyan]$fg[blue]${@}$reset_color"}
#emk(){echo -n "$fg_bold[magenta]$bg_bold[black]${@}$reset_color"}
#ekm(){echo -n "$bg_bold[magenta]$fg[black]${@}$reset_color"}
#eck(){echo -n "$fg_bold[cyan]$bg_bold[black]${@}$reset_color"}
#ekc(){echo -n "$bg_bold[cyan]$fg[black]${@}$reset_color"}

#set -x
#samples
cehelp
fb2z_302


スクリプト2. fb2z_p 

#!/bin/zsh 

# usage:
# % fb2z_302⏎

echo
#source $HOME/zsh/functions/ColoringEchoes
autoload ColoringEchoes
#
btw "»»» Table 2: $(basename $0) «««";e_n
ew_ '   • reference: "From Bash to Z Shell", p302.';e_n
ew_ '   • ';br_ require;ew_ ': "autoload -U colors && colors -u"'; e_n

autoload -U colors && colors -u

for bgc in ${(ko)bg}; do
 print -n "$bg[$bgc]"
 for fgc in ${(ko)fg}; do
  printf '%s%-8s' $fg[$fgc] $fgc
 done
 print $rest_color
done
e_n
 ____
この記事の履歴
  1. 開始 2015-05-09(土) 00:53:25 
  2. 修正 2015-05-09(土) 08:52:27 表示データのフォーマットを正しくした。

注目の投稿

Terminalでの、なんちゃってViモドキ

近頃、ようやくKarabiner-Elementsに慣れてきたので、 Terminalで動作する「擬似Vi-Mode」を作って見たので、ご紹介します。 『概要』 「擬似Vi-Mode」の所以は、方向キー「←↓↑→」を通常の「hjkl」ではなくて「jkil」としました。これ...