ツールドフランス2013 有力選手Twitterリスト #jspocycle


いやー昨日の第13ステージも単調な平坦コース・・・と思いきや総合勢に動きのあるとても面白い展開になりました。

ツールドフランス初心者が知ったロードレースの面白さ - GeekなNooblog
http://d.hatena.ne.jp/sona-zip/20130707/p1


先日上記の記事を書いたとおりツールドフランスにはまっており、中継をずっと見ているのですが、実況や解説の方がちょいちょいレース後の選手の興味深いツイートを取り上げています。


やはり勝利して喜んでインタビューされている選手のコメントだけではなく、様々な選手のTVでは言えないようなコメントも聞いてみたいと思ったので有力選手のTwitterリストを作成してみました。

ステージ優勝

@sona_tar/TDF2013 Stage winners
https://twitter.com/sona_tar/tdf2013-stage-winners

総合

@sona_tar/maillot jaune
https://twitter.com/sona_tar/maillot-jaune

ポイント

@sona_tar/maillot vert
https://twitter.com/sona_tar/maillot-vert

山岳

@sona_tar/maillot blanc à pois ~
https://twitter.com/sona_tar/maillot-blanc-%C3%A0-pois

新人

@sona_tar/maillot blanc
https://twitter.com/sona_tar/maillot-blanc

ツールドフランス2013参加選手大勢

こちらは私が作成したリストではありません

@Jono_L/TDF Riders
https://twitter.com/Jono_L/tdf-riders

日本の期待! 新城幸也選手

Yukiya Arashiro (YukiyaArashiro)
https://twitter.com/YukiyaArashiro

ある意味最も人気急上昇

第1ステージで話題を掻っ攫ったオリカグリーンエッジのバス!
もう1度言います。
オリカグリーンエッジではありません、オリカグリーンエッジのバスですw(公式アカウントではなさそうです)

Orica-GreenEdge Bus (OricaGreenEdgeB)
https://twitter.com/OricaGreenEdgeB

ツールドフランス初心者が知ったロードレースの面白さ


2013年第100回記念のツールドフランスが始まりました。
私は昨年2012年大会のダイジェスト放送を見てロードレースのおもしろさを知り、今年は第1ステージから第8ステージまで眠い目を擦りながら観戦しています。


ダイジェストとは違いLIVE放送では実況、解説、ゲストの方々がロードレースにまつわるルールや暗黙の了解などを説明してくれるため、今年は色々な面白さを知ることができました。

面白いと思ったポイント

特に魅了されたポイントとしては、戦略性と意外性が大きいということです。
単純に自転車を漕ぐ能力が高い人が突っ走って1位になる。ということは100%なく、ステージのゴールに向かう中で抜きつ抜かれつが頻繁に起こります。
絶対に勝つだろうと思われている人もコンディションによっては下位に甘んじることもありますし、とても意外な選手が様々な条件によりトップでゴールすることもあります。
ときには利害が一致すれば他のチームと協力することもありますし、ときには他のチームへの攻撃をしかけることもあります。

そのような複雑なレース展開の中で勝利を収めるためには、走るペース、ステージの特徴、チームごとの目的、選手の能力、選手の役割、集団での位置取りなど様々な条件を整える必要があります。


このような面白さの一端を担うロードレース独特のルールや戦略を以下で紹介したいと思います。

走るペース

まず私が最初に不思議に思ったのが、「どうしてそれぞれの選手は自分が一番タイムが良くなる一定のペースで走らないのか?」ということです。
普通に考えれば、200kmを走るなら途中でペースを上げたり下げたりするより、一定のペースで走った方が速くなるはずです。


その答えとして、一番のポイントとなるのは、「自転車は空気抵抗の有無が速度に大きく影響する」ということです。
たとえ自分が本来走りやすいペースより少し速いペースだとしても一人で走るより集団で走った方が遥かに楽であるということが前提にあります。
なので基本的には自分のペースに合わなくてもみんな集団で走るわけです。
では集団で走っていたら差がつかないのでは?っと思ってしまうかもしれませんが、そんなことはなく勝負どころでは他のチームが集団の先頭でペースを上げることにより、着いてこれない選手を振るいにかけられてしまいます。
このとき集団から離されてしまうと少ない人数で走ることとなってしまうため、ますます追いつけなくなってしまうわけです。


このように1週間レースを見てきて勝敗を決めるために重要だと思ったところは「勝負どころでペースを上げる」ということです。


ライバルチームのアシストが苦手なところでペースを上げれば、エースは1人で集団についてくることになり孤立させることができますし、更にエースが苦手なところでペースを上げればエースをトップ集団から引き離すことができます。
ここで難しいのがペースを上げるということは自分たちも苦しくなるということです。ペースを上げることにより自分たちが最終的に疲れてしまって逆転されるわけにはいきませんし、ペースを上げて自分たちのエースが着いて来れないようでは話になりません。


よってチームとしては、勝負どころでは自分たちのエースがゴールまでたどり着けるぎりぎりまでペースを上げて、相手のエースが着いて来れないようにペースを上げる、またそのとき自分たちのチームのアシストの力を全力で出し切りつつ、ゴールまでに力尽きないようにアシストの人数と距離を配分する。ということが重要となります。


ステージ

ツールドフランスでは、第1ステージから第21ステージまでの総合成績で様々な賞が決まります。
ステージにはいくつか種類があります。

1. 通常ステージ

すべての選手が同時にスタートして、先頭でゴールした選手にはステージ優勝が与えられます。
また途中にあるスプリントポイントとステージのゴールではポイントを獲得することができます。これはポイント優勝を狙う選手には必要となるものです。ポイント優勝については後述します。
また山岳ポイントというものがあり、最終的に山岳ポイントがトップの選手には山岳賞が与えられます。

主に総合優勝、ポイント優勝、山岳ポイント優勝が大きな賞となります。
これらの途中経過でトップの選手は、次のステージではそれぞれ専用のジャージを着ることとなっており、これは全選手の憧れでもあります。
ツールドフランスでは、総合優勝はマイヨ・ジョーヌと言い黄色のジャージ、ポイント優勝はマイヨ・ヴェールと言い緑色のジャージ、山岳ポイント優勝は、マイヨ・ブラン・ア・ポワ・ルージュと言い、派手な赤の水玉模様です。


これらの賞を途中で1度獲得することでも大変名誉なことなので、各選手はその賞に応じてパンツやヘルメットサングラスの色も合わせるなどしています。
第7ステージまで山岳賞を獲得しているユーロップカーのエースのピエール・ローランは赤の水玉装備を整えて喜びを全身で表しています。が選手の間の評判は賛否両論のようですw

(これらのジャージを着用するとチームカラーとはまったく別の色になるのでどのチームの選手かは分かりにくくなります。特にキャノンデールの緑とマイヨジョーヌの緑はまったく区別ができません)


また他にも新人賞(マイヨ・ブラン)、敢闘賞というものがあります。
新人賞は、24歳以下の選手の中で総合タイムがトップの選手に与えられ、白いジャージを着ています。
敢闘賞は、そのステージで賞は取れなかったけど活躍した選手に与えられます。大体の場合は逃げ集団で活躍した選手に与えられるものです。この賞にはジャージは与えられず、ゼッケンが赤くなります。

2. チームタイムトライアル(TTT)

チームごとにスタートしてゴールまでのタイムを競います。
タイムの差がそのまま総合優勝に響いてくるのでポイントとなるレースです。ここでライバルチームに差をつけられてしまうと、他のステージでその分を取り返さなければなりません。


このレースはチームの力を発揮するレースとなっており、練習を多く積んできたチームは美しい隊列で無駄が一切なくゴールを目指します。

3. 個人タイムトライアル

個人でスタートしてゴールまでのタイムを競います。
タイムの差がそのまま総合優勝に響いてくるのでポイントとなるレースなのはチームTTと同様です。

チームの目的

ロードレース競技は、同じレースに参加していてもチームによって目的が違います。
一般的なスポーツでは対戦相手同士の目的は同じで、サッカーや野球なら相手のチームに勝って勝ち星を重ねて優勝すること、F1なら毎レースで上位に入りポイントを重ねて年間優勝を目指すことだと思います。


しかしロードレースはそうではなく、以下のようにいくつかの異なる目的が存在し、また目的によってコースごとの戦略が大きく異なります。

1. 総合優勝を狙う

総合優勝は、第1ステージから第21ステージまでの合計タイムが一番短い選手に与えられます。
ロードレースの花形と言える賞です。

戦略としては、平坦ステージではライバルチームのエースと離れることなく、メイン集団についていけばいいと考えているチームが多いため、大体は荒れることなく落ち着いてメイン集団の中でゴールすることが多いです。


しかしあるチームのエースのペースが落ちて、後ろに下がったりすると、他のチームが一気に突き放すためにメイン集団のペースを大幅に上げることがあります。


逆に山岳ステージでは、勝負所として仕掛けてくることが多いです。
ここではエースの山岳能力とアシストの引きが活きてきます。山岳は差がつきやすいといわれており、総合優勝を狙うチームでは熾烈な争いが繰り広げられます。


昨年はSKYの最強のアシストであるフルームがエースのウィギンスよりもペース早くなってしまい、フルームがエースに対して「早く着いてこい!」というジェスチャーをして物議を醸し出していました。他にもフルームは、ステージ優勝してしまったりとエースを超える逸材として話題になりましたが、今年はそのフルームがエースでウィギンスは怪我のため未出場です。
前評判でもSKYとフルームが強いのではないか?となっています。


2013年第1週目の第7ステージまででは総合優勝争いの選手の中では、ポイントとなる山岳ステージはなかったため、特に争いは生まれず順当に事が進んできました。

2. ポイント優勝を狙う

ポイント優勝は、第1ステージから第21ステージまでの合計ポイントが一番高い選手に与えられます。
ポイントはスプリントポイントとステージゴールを通過した順位で与えれます。
エースには最後の数百mで勝ちきれるスプリンターを置きます。


戦略としては、平坦ステージではメイン集団についていき残り数kmからトレインの位置取りの勝負が始まり、ラストはスプリント勝負となります。
軽めの山岳ステージでは、スプリンターがメイン集団に着いていけず集団から置いていかれてしまわないようにしなければなりません。置いていかれてしまうと山岳後にスプリントポイントやステージゴールが設置してあると、ライバルのスプリンターにそれをすべて奪われてしまうためです。
本格的な山岳ステージでは、総合優勝狙いのチームが仕掛けてくることにより、ポイント優勝狙いのチームのエーススプリンターがポイントを取ることは難しくなってくるので、メイン集団についていかず後ろをゆっくり走ります。
ポイント優勝狙いチーム同士は一時休戦となり完走を目指します。
この後方集団のことをグルペットと呼び、今年の中継ではチームカベンディッシュと冗談で言われていましたw


2013年第1週目の第7ステージまではポイント優勝争いのための展開がいくつかあり、総合優勝争いよりも盛り上がっています。

3. ステージ優勝を狙う

各ステージをトップで通過するとステージ優勝となります。
ポイント優勝を狙えるほどチーム力はなくても、得意なコースなどでは積極的にステージ優勝を狙うということがあります。
基本的には勝ちやすいチームは、山岳なら総合優勝狙いのチーム、平坦ならポイント優勝を狙いのチームとなります。

4. 山岳賞を狙う

登坂力が高い選手を抱えている場合には山岳賞をチームで狙う場合もありえます。
ただし最初から山岳賞だけを狙ってツールドフランスに出場というチームは2013年にはなさそうです。


やはり基本は総合優勝や表彰台狙いで、それが難しい場合には山岳狙いにシフトする場合もあるということがありえるようです。
今年はユーロップカーのピエール・ローランが山岳賞狙いにシフトしたようです。


選手の能力

選手には状況により得意不得意があり、以下のように分類されています。
この特徴も漫画のキャラクターのような個性がありロードレースをより面白くしています。

以下、1つずつ紹介していきます。

1. オールラウンダー

名前の通りすべての能力を持ち合わせた選手です。その中でもすべての能力が平均して高い選手は総合優勝狙いのエースとなります。
総合優勝を狙うために、平坦ステージでは集団でのゴールを目指し、山岳、TTではそれぞれのスペシャリストと同等の結果を残します。
基本的にはステージ優勝は狙わないためスプリントはせず足を温存しておき、順位にはこだわらずタイム差がないところではメイン集団でのゴールを目指します。

代表的な選手としては、SKYのフルーム、サクソティンコフのコンタドール、BMCのエヴァンスがいます。


2. スプリンター

瞬発能力が高くゴール直前で最高速度を出すことができる選手を指します。
スプリンターはステージ優勝やポイント優勝では重要な役割を担います。
短距離選手なので体が大きい選手が多く、逆に上りは苦手としています。


スプリンターの能力に特化しており、山岳を苦手とする選手のことをピュアスプリンターと言ったりします。
代表的な選手では、オメガファルマクイックステップカヴェンディッシュアルゴスシマノのキッテルです。
逆に少し山岳を登る能力があるスプリンターとして代表的な選手は、キャノンデールサガン、ロットベリソルのグライペルがいます。これらの選手はピュアスプリンターと比べると僅かですがスプリント能力は劣ります。


だからといってスプリントで必ず負けるという訳ではなく、そこはスプリント前のチーム力で勝敗が決まります。山岳ステージなら、ピュアスプリンターを振るいにかけるためにペースを上げて、そもそもピュアスプリンターにスプリントさせないという作戦もありますし、通常のステージでも最後のスプリントでトレインを綺麗に作り、リードアウトが完璧に決まればスプリント能力そのものは負けていても勝つことができます。
サガンは前者でグライペルは後者でポイントを重ねていっています。


その他のスプリンター注目選手は、SKYのボアッソンハーゲン、オリカグリーンエッジのマシュー・ゴスがいます。


スプリンターによるゴール前スプリントは、200km近くを走ってきた最後の締めくくりになる大勝負ですので大変盛り上がります。(長距離走ったた後の短距離全力疾走恐るべし)

3. クライマー

名前の通り山岳を登るのが得意な選手です。
体が小さく軽い選手が多いのが特徴です。
登りはペースが落ちるので、空気抵抗という意味でのアシストの効果は平坦区間に比べると小さいです。
しかし総合優勝を狙うには山岳はタイム差が大きくでる重要なステージとなります。その中で自分のチームのエースに有利になるよう集団のペースをコントロールするという重要な役割があります。


またステージ優勝狙いでも、山岳でペースを上げることにより他チームの山岳が苦手なスプリンターを集団から引き摺り下ろすなどチームの勝敗を左右する重要な役割を担います。


またアシストとしてではなく自分自身がステージ優勝や山岳賞を狙うために山岳でペースを上げて逃げ切るというパターンもあります。日本人選手の新城幸也選手のチームメイトであるヴォクレールは大変登坂力が高く、このような作戦に出ることがしばしばあります。しかし今年のエースはピエールローランで彼も山岳賞を狙っているので、チームとしてどういう作戦になるのかは注目です。

4.タイムトライアルスペシャリスト

名前の通りタイムトライアルのスペシャリストです。
こちらもスプリンターと同じくガタイが良い選手が多いですが、能力としてはまったくの別物です。
スプリンターは数百mのスプリント能力に特化していますが、TTスペシャリストは長距離速度を維持することに特化しています。


何も知らない私は、「TTが速い=スピードが速い」のだから総合でも一番速いのでは?っと思ってしまいますが、だからといって優勝する選手がTTが得意とは限らないんですよね。本当にロードレースは面白いです。


レディオシャックカンチェラーラ、オメガファルマクイックステップのトニーマルティン、SKYのマイケル・ロジャース、ガーミンシャープのデヴィッド・ミラーがいます。
SKYのブラッドリー・ウィギンス、クリス・フルームはオールラウンダーですが、TTではスペシャリストに劣らないタイムを叩き出します。

5. その他

細かく分けるとその他にもあるようですが、詳しくわからない為割愛します。
気になる方はWikipediaで調べてみてください。

ルーラー - Wikipedia

パンチャー (自転車競技) - Wikipedia

選手の役割

1. エース(leader)

エースとはチームの目的を達成するための選手のことを指します。
総合優勝を狙っているチームなら、オールラウンダーで能力が高い選手をエースとしていますし、ポイント優勝、ステージ優勝狙いのチームではスプリント能力が高い選手がエースとなります。
チームによっては2人の選手をエースとする場合もあるようです。

2. アシスト(servant)

エース以外の選手のことを指します。
アシストと言ってもその中で役割は細かくわかれています。

一番基本となるのは、エースの選手の風よけとなってゴールまで引っ張っていくことです。
何人かのアシストでエースの前を順番に交代して走り、エースはできる限り空気抵抗を避けて脚力を使わずに走ります。これらのアシスト選手はゴールするころには着いてこれなくなり、9人いる選手がエースがゴールするころには大幅に人数が減りますが、結果として最速でエースがゴールすればチームとして目的は達成しているので、アシストの選手のタイムが遅れることは問題ではありません。
もちろん理想的には、ゴール直前までアシストの選手ができる限り多く残っている方がエースは勝負どころで楽に走ることができます。


総合優勝狙いのチームのアシストのスプリンターは、エースではないためステージ優勝を狙いません。チームの目的がステージ優勝ではなく、エースがメイン集団に遅れることなくゴールすることがだからです。

しかし個人としてはもちろんステージ優勝を狙いたいわけです。そこでゴール直前でチームの目的を達成できそうな場合には、アシストの仕事を放棄してステージ優勝を狙う許可を監督からもらえる事があります。
こうなるとチームのアシストはなく一人で孤独にステージ優勝を狙うことになります。今年のSKYのボアッソンハーゲンはこの1人です。

しかし総合優勝に余裕がでてくるなど状況によっては、アシストをつけて貰える事もあります。2012年のツールドフランス第21ステージでは、エースであるウィギンスが最強のスプリンターカヴェンディッシュを引いて、そのままステージ優勝という凄まじい光景が展開されました。


またその他のアシストの役割としては、補給をエースに渡すというものがあります。
チームの車はメイン集団の僅かに後ろを走っており、アシストはチームカーまで戻って補給食やドリンクを受け取り、またメイン集団まで戻ってエースや他のチームメイトに受け渡します。
1人の選手がどのようにたくさんいるチームメイトのボトルを運ぶのかというと・・・



こんな感じですw

逃げ集団とメイン集団

通常のステージでは、おおよそメイン集団と逃げ集団という2つに分かれます。

1. 逃げ集団

逃げ集団は、メイン集団から数人で抜け出し逃げ切りゴールを目指す集団のことを指します。
人数は1人〜数十人に及ぶことがありますが、逃げ集団はできる限り人数が多い方が有利です。
逃げ集団の目的としては、逃げ切りによるステージ優勝、途中のスプリントポイントや山岳ポイントの獲得、チームとしての戦略の都合などがあります。


通常逃げ集団がメイン集団から逃げ切れることはほとんどありません。逃げ集団はメイン集団に比べて少ない人数で走るため空気抵抗を受ける時間が長くどうしても足を使ってしまうためです。
逃げ集団が逃げ切るためには、メイン集団で駆け引きが始まりペースが上がらないことが必要です。
またメイン集団は逃げ集団を捕まえるためには、10kmで1分の差を縮められると考えています。

2. メイン集団

逃げ集団とメイン集団に分かれたときは、メイン集団の各チームの当面の共通目的はゴールするまでに逃げ集団を捕まえることになります。
このときはメイン集団の先頭は、通常マイヨジョーヌのチームが先頭を引くという暗黙のルールがあります。
あとはペースを決めたいチームも加わり、交代で先頭を引くことになります。

逆に逃げ集団が存在しないと、メイン集団の共通目的がなくなりいつ何か起きるかわからないという展開になります。


フェアプレー

メイン集団の中に各チームのエースが散らばっていますが、勝負とは異なる理由で後方に下がってしまうことがあります。(集段落車、トイレなど)
このようなときメイン集団は、この隙を突いてペースアップ!ということはせずに、むしろペースを落としてトラブルに巻き込まれた他のチームのエースを待つという動きをします。


ただしゴール前の勝負どころでは、悠長なことは言っていられないので待つことがなく勝負が続行されることはあります。しかしゴール直前3km以内での集団落車はメイン集団と同じタイムでゴールという救済があります。

顔見世

選手は地元のステージなどを走ることがあります。このようなときは一部勝負どころではない区間で、地元の選手をメイン集団の先頭で走らせて顔見世をすることがあります。
他にも誕生日などでもそういうことがあるようです。
大変面白い習慣です。

まとめ

以上のように様々なルール、暗黙の了解、戦略、目的、選手の特徴、チームの特徴などが入り混じりロードレース競技を楽しくしています。

このように戦略的に面白く、更に動きや状況がわかりやすいため初心者の私でも簡単に魅了されてしまいました。

また2週目以降引き続き楽しく観戦を続けていきたいと思います。

lsで表示されるファイルの色(LS_COLORS)を様々な言語や拡張子に合わせて設定してみた Web系も関数型言語もあるよ


ターミナルのカラーテーマの設定により見た目はかっこよくなりました。

ターミナルの色を最高にかっこよくする方法 - GeekなNooblog
http://d.hatena.ne.jp/sona-zip/20130622/p1

これに加えてlsコマンドで表示されるファイルやディレクトリの色を自分好みに設定してみたので紹介します。

LS_COLORSの設定

LS_COLORSは.dir_colorsというファイルで設定が可能になっています。
拡張子、実行権限、ファイル種別ごとにANSIカラーから好きな色を設定することが可能です。
ANSIカラーの色情報を元に設定するためターミナルのカラーテーマを変更することによりLS_COLORSの色も併せて変更されます。

作成したLS_COLORS

sona-tar/sona_ls_colors
https://github.com/sona-tar/sona_ls_colors

対応拡張子は上記の.dir_colorsからご確認頂けます。

まったく触ったこともない言語などにも対応しているので、間違っていたり不足している場合にはpull request頂けると嬉しいです。

色の方針

今回作成した.dir_colorsの方針としては

  • 1. 同じ種別のファイルは同じ色にする

ソースコード、ヘッダー、動画、画像、バイナリなどなど

  • 2. できる限り1つのユースケースで利用するファイルの種類の間では色が重複しないようにする

Web開発では、html,js,css,画像を使うので、これらの色は重複しない
C言語開発では、c,h,o,a,exec,Makefileを使うので、これらの色は重複しない

  • 3. 傾向が似ているファイルは色も近づける

CのソースとCのヘッダ、CのオブジェクトファイルとCのライブラリ、実行ファイルとMakefileなど

  • 4. できる限り標準の色から逸脱しない

圧縮ファイルは赤系、実行ファイルは緑系、ディレクトリは青系など


上記を目標にしていますが、どうしても色の数が少ないため無理がでているところもありますがご容赦ください。

スクリーンショット

それぞれのユースケースを想定したスクリーンショットになります。

専門以外は詳しくないため例として不足しているファイルがあるかもしれませんがお許しを・・・

以下のカラーテーマはmolokaiを適用しています。

test-directory

様々な形式のテスト(ファイル、ディレクトリ、リンク、実行権限などなど)

C

Web

使い方

git clone https://github.com/sona-tar/sona_ls_colors.git
cd sona_ls_colors
cp .dir_colors ~/
dircolors -b ~/.dir_colors
  • 読み込み

本来は~/.dir_colorsを読み込んでくれるはずなのですが、適用されない場合は以下の設定を追加
vi ~/.zshenv

[ -z $LS_COLORS ] && eval `dircolors -b ~/.dir_colors`

確認

echo $LS_COLOS
設定した情報がずらずらーっと表示される

zshの補完でもLS_COLORSを適用する方法

  • vi ~/.zshrc
# completion color same as GNU ls color               
zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS} 


dir_colorsなどの詳細はこちらを参照してください。
どのような順番で設定ファイルが読み込まれるかなど詳細に解説されています。

lsコマンドのカラー表示の設定について - 試験運用中なLinux備忘録
http://d.hatena.ne.jp/kakurasan/20070705/p1

参考

lsコマンドのカラー表示の設定について - 試験運用中なLinux備忘録
http://d.hatena.ne.jp/kakurasan/20070705/p1
[SOLVED] ls colors different from tab completion colors (Page 1) / Applications & Desktop Environments / Arch Linux Forums
https://bbs.archlinux.org/viewtopic.php?id=124407
Man page of DIR_COLORS
http://linuxjm.sourceforge.jp/html/LDP_man-pages/man5/dir_colors.5.html

ターミナルの色を最高にかっこよくする方法


概要

こちらでMinttyを知ってからずっと愛用していて、エディタの色もカラーテーマを適用することにより見た目がよくなりとても満足していました。

Windowsで最高のターミナルを構築する方法 - 純粋関数空間
http://tanakh.jp/posts/2011-11-15-windows-terminal.html

しかしターミナルのシェルの色だけが最初から変わっていのが少し残念。。。


↑色がかっこ悪い



ということで、シェルの色を変更する方法を調べて、いくつかのカラーテーマのスクリプトを作成してみました。ついでにカラーテーマ作成用の補助スクリプトも作成してみました。

ターミナルのカラーテーマ

現在公開しているカラーテーマは、以下の5つになります。
これらの色は私が考えたものではなく、他のエディターなどで有名なカラーテーマを参考に作成しました。

  • zenburn
  • ir_black
  • tangotango
  • molokai
  • ambiance

こちらに作成したテーマとスクリーンショットを載せています。

sona-tar/terminal-color-theme GitHub
https://github.com/sona-tar/terminal-color-theme

※ WindowsのMintty環境では確認済みですが、他の環境でも利用できるかの確認はできていません。MacのTerminal.appやiTerm2、Linuxgnome-terminalなどでも実行することができましたらコメントで教えて頂けると嬉しいです。

カラーテーマの使い方

color-theme-zenburnを適用する例で説明します。

git clone --recursive https://github.com/sona-tar/terminal-color-theme.git
cd terminal-color-theme
COLOR_THEME=zenburn
source color-theme-${COLOR_THEME}/${COLOR_THEME}.sh

最後の2行を~/.bashrcなどに追加するとシェルを起動するとともにカラーテーマが適用されます。
Minttyユーザーの方は~/.minttyrcにzenburn.minttyrcの内容をコピペすることでもカラーテーマを設定することができます。
zenburnを適用するとこの記事のトップに貼ってある画像のようになります。

お遊び
  • random_color-theme.sh

お遊びスクリプトです。
実行するとcolor-theme-*/*.shをランダムで適用します。
~/.bashrcなどにsh ~/terminal-color-theme/random_color-theme.shと書いておくと、ターミナルを起動する度にランダムで色が設定されます。
最初はカッコいいと思ったテーマも飽きるといまいちな気がしてくるので、そんなときにお勧めです。

注意

正しい色に表示するにはターミナルが256色に対応できるよう設定する必要があります。
対応済みかどうかの確認は以下のコマンドですることができます。

cd terminal-color-theme
perl 256colors2.pl
  • 256色に対応している場合

  • 256色に対応していない場合


もし対応していない場合には、.bashrcファイルに設定を加えましょう。

  • vi ~/.bashrc
TERM=xterm-256color
  • 設定の反映、確認
source ~/.bashrc
echo $TERM
簡単な仕組みの説明

ターミナルの色はANSIカラーを設定することにより変更することができます。
ANSIカラーとは、ターミナルなどで利用する16色の名前を定義しているもので、ターミナルはこの色の定義に従って色を表示します。
そのため、ANSIカラーの黒に黒以外の赤などを設定すれば、ターミナルでは今まで黒で表示されていたものが赤で表示されるようになります。
またその他に、背景、通常の文字色、カーソルの色の3つを設定することが可能となっています。

ANSI escape code - Wikipedia, the free encyclopedia
http://en.wikipedia.org/wiki/ANSI_escape_code#Colors

カラーテーマの作り方

カラーテーマは簡単に作ることができます。
まず既存の適当なカラーテーマのフォルダをコピーしてリネームしてください。
次に.minttyrcに16色+3つの設定をした後、以下のコマンドを実行すると.shが生成されます。
.shが必要ないという場合にはこの作業は必要ありません。
このとき作る.minttyrcはHTMLなどでよく見る#16進数表記でお願いします。
もしR,G,B表記で作成した場合には、事前に以降で紹介するスクリプトで変換してから、次のコマンドを実行してください。

sh convert_mintty_ansi_color_to_bash_ansi_color.sh new_color-theme.minttyrc

色は既存のエディタなどの有名な色を参考にして通常の8色を決めた後に、ボールドの色をColor Hex - ColorHexa.comのようなサイトで僅かに明るくした色を見つけるといいと思います。

カラーテーマ作成用補助スクリプト

カラーテーマ作成の際にご利用ください。

convert_mintty_ansi_color_dec_to_hex.sh

Mintty用の設定ファイルの色設定項目の値を、10進数から16進数に変換するためのスクリプトです。
引数に.minttyrcのカラー設定のみが保存してあるファイルを指定します。
最初から16進数で設定する場合には使う必要はありません。

convert_mintty_ansi_color_to_bash_ansi_color.sh

Mintty用の設定ファイルをbash用に変換するためのスクリプトです。
引数に.minttyrcの16進数のカラー設定のみが保存してあるファイルを指定します。
10進数の.minttyrcを利用している場合は、convert_mintty_ansi_color_dec_to_hex.shを利用してからこちらのスクリプトを実行してください。

all_convert_mintty_ansi_color_to_bash_ansi_color.sh

すべての./color-theme-*/*.minttyrcをbash用に変換するためのスクリプトです。
特に引数を指定する必要はありません。既に*.shが存在する場合には変換されません。

最後に

random_color-theme.shで選択できるテーマがたくさんあると楽しいので、もし新たなカラーテーマを作成された場合にはgithubに公開した後にpull requesで教えて頂けたらterminal-color-themeにサブモジュールとしてマージさせて頂きます。
pull requestをいただける場合は、.minttyrcと.shがあること、ファイル名とディレクトリ名が他のカラーテーマと同様のルールに則っていることをご確認ください。


あとLS_COLORSというlsのカラー設定の記事もまとめたのでよかったらどうぞ

lsで表示されるファイルの色(LS_COLORS)を様々な言語や拡張子に合わせて設定してみた Web系も関数型言語もあるよ - GeekなNooblog
http://d.hatena.ne.jp/sona-zip/20130623/p1

カラー参考

juba/color-theme-tangotango
https://github.com/juba/color-theme-tangotango
molokai - A port of the monokai scheme for TextMate : vim online
http://www.vim.org/scripts/script.php?script_id=2340
twerth/ir_black
https://github.com/twerth/ir_black
Zenburn - Low contrast colour scheme for low light conditions : vim online
http://www.vim.org/scripts/script.php?script_id=415

その他参考

The 256 color mode of xterm
http://frexx.de/xterm-256-notes/
端末の256色拡張の覚え書き - 試験運用中なLinux備忘録
http://d.hatena.ne.jp/kakurasan/20080701/p1

CentOS6 The Silver Searcher(ag.exe)ソースビルド方法

Windows版はこっちを参考にどうぞ
ほとんど同じ内容です(手抜き

Windows Cygwin環境のThe Silver Searcher(ag.exe)ビルド方法 - GeekなNooblog
http://d.hatena.ne.jp/sona-zip/20130531/p1

grepに変わるack、、、に変わるagとして最近話題のagについての紹介です。

The Silver Searcherの特徴

公式に書いてあるThe Silver Searcherの特徴

ackの3〜5倍高速
.gitignore、.hgignoreに記載されているものを検索対象から除外
検索対象から除外したいファイルは.agignoreに記載
agというコマンド名で、ackと比べてコマンドが短い(33%減!)

ackを捨てて、より高速なag(The Silver Searcher)に切り替えた - Glide Note - グライドノート

ビルドがうまくいかない方は./build.sh実行後に以下のようなエラーが出ているかと思います。

checking pkg-config is at least version 0.9.0... yes
checking for PCRE... yes
checking for LZMA... configure: error: Package requirements (liblzma) were not met:

No package 'liblzma' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables LZMA_CFLAGS
and LZMA_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.

lzma関連のパッケージを正しくインストールすると解決しますが、以降の解説ではビルド手順を最初から説明します。

必要なパッケージのインストール

LZMAにxz-develが必要だとわからず苦労しましたが、Twitterで教えていただいたことにより無事インストールができました。

yum -y install gcc make autoconf automake git zlib zlib-devel pkgconfig 
pcre pcre-devel lzma lzma-devel lzma-libs xz xz-devel xz-libs

the Silver Searcherのビルド

mkdir /usr/local/src
cd !$
git clone https://github.com/ggreer/the_silver_searcher.git
cd the_silver_searcher
./build.sh

the Silver Searcherの配置

$ make install
$ which ag
/usr/local/bin/ag


以上で完了です。

使い方

よく使うような-wや-iなどはgrepと同じように使うことができますが、agコマンドではデフォルトでカレントディレクトリ以下の再起探索(./ -r)とカラー(--color)が有効になっています。
またagは同じファイル内の検索結果はまとめて表示されます。(--group)
コマンドで表すと以下の2つが同じような出力結果となります。

grep SEARCH_WORD ./ -r --color
ag SEARCH_WORD --nogroup


普段はこれだけのコマンドで目的の検索ができてしまいます。

ag SEARCH_WORD


詳細についてはag --helpで確認してみてください。

$ ag
Usage: ag [OPTIONS] PATTERN [PATH]

Recursively search for PATTERN in PATH.
Like grep or ack, but faster.

Example: ag -i foo /bar/

Search options:

--ackmate               Print results in AckMate-parseable format
-a --all-types          Search all files (doesn't include hidden files
                        or patterns from ignore files)
-A --after [LINES]      Print lines before match (Default: 2)
-B --before [LINES]     Print lines after match (Default: 2)
--[no]break             Print newlines between matches in different files
                        (Enabled by default)
--[no]color             Print color codes in results (Enabled by default)
--color-line-number     Color codes for line numbers (Default: 1;33)
--color-match           Color codes for result match numbers (Default: 30;43)
--color-path            Color codes for path names (Default: 1;32)
--column                Print column numbers in results
--line-numbers          Print line numbers even for streams
-C --context [LINES]    Print lines before and after matches (Default: 2)
-D --debug              Ridiculous debugging (probably not useful)
--depth NUM             Search up to NUM directories deep (Default: 25)
-f --follow             Follow symlinks
--[no]group             Same as --[no]break --[no]heading
-g PATTERN              Print filenames matching PATTERN
-G, --file-search-regex PATTERN Limit search to filenames matching PATTERN
--[no]heading
--hidden                Search hidden files (obeys .*ignore files)
-i, --ignore-case       Match case insensitively
--ignore PATTERN        Ignore files/directories matching PATTERN
                        (literal file/directory names also allowed)
--ignore-dir NAME       Alias for --ignore for compatibility with ack.
-l --files-with-matches Only print filenames that contain matches
                        (don't print the matching lines)
-L --files-without-matches
                        Only print filenames that don't contain matches
-m --max-count NUM      Skip the rest of a file after NUM matches (Default: 10,000)
--no-numbers            Don't show line numbers
-p --path-to-agignore STRING
                        Use .agignore file at STRING
--print-long-lines      Print matches on very long lines (Default: >2k characters)
-Q --literal            Don't parse PATTERN as a regular expression
-s --case-sensitive     Match case sensitively (Enabled by default)
-S --smart-case         Match case insensitively unless PATTERN contains
                        uppercase characters
--search-binary         Search binary files for matches
--stats                 Print stats (files scanned, time taken, etc.)
-t --all-text           Search all text files (doesn't include hidden files)
-u --unrestricted       Search all files (ignore .agignore, .gitignore, etc.;
                        searches binary and hidden files as well)
-U --skip-vcs-ignores   Ignore VCS ignore files
                        (.gitigore, .hgignore, .svnignore; still obey .agignore)
-v --invert-match
-w --word-regexp        Only match whole words
-z --search-zip         Search contents of compressed (e.g., gzip) files

参考

ggreer/the_silver_searcher · GitHub
https://github.com/ggreer/the_silver_searcher

Windows Cygwin環境のThe Silver Searcher(ag.exe)ビルド方法



grepに変わるack、、、に変わるagとして最近話題のagについての紹介です。

The Silver Searcherの特徴

公式に書いてあるThe Silver Searcherの特徴

ackの3〜5倍高速
.gitignore、.hgignoreに記載されているものを検索対象から除外
検索対象から除外したいファイルは.agignoreに記載
agというコマンド名で、ackと比べてコマンドが短い(33%減!)

ackを捨てて、より高速なag(The Silver Searcher)に切り替えた - Glide Note - グライドノート


私も早速Linux環境に導入してみましたが、打ちやすいコマンドと検索スピードの虜になってしまいました。
そうなるとWindowsでもagが使いたくなるということで、Windows向けビルド手順を調べてみました。
しかしいくつかagのビルド方法が公開されているのですが最新のコミットではうまくビルドできないなど、ビルド手順が確立されていないようなのでまとめてみました。


ビルドがうまくいかない方は./build.sh実行後に以下のようなエラーが出ているかと思います。

src/decompress.c: In function `decompress_lzma':
src/decompress.c:113: error: `lzma_stream' undeclared

checking pkg-config is at least version 0.9.0... yes
checking for PCRE... yes
checking for LZMA... configure: error: Package requirements (liblzma) were not met:

No package 'liblzma' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables LZMA_CFLAGS
and LZMA_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.

lzma関連のパッケージを正しくインストールすると解決しますが、以降の解説ではビルド手順を最初から説明します。

必要なパッケージのインストール

Cgywinで以下のパッケージをすべてインストールしましょう。

gcc make autoconf automake
zlib-devel pkg-config
pcre pcre-devel libpcre libpcre-devel lzma liblzma-devel
git

  • apt-cygのインストール方法

setup.exeからインストール可能ですが、apt-cygコマンドを使うとカンタンに環境を整えることができます。

cd /usr/local/bin
wget http://apt-cyg.googlecode.com/svn/trunk/apt-cyg
chmod 755 apt-cyg
  • apt-cygを使う場合は以下のコマンドで
apt-cyg install gcc make autoconf automake zlib-devel pkg-config pcre pcre-devel libpcre libpcre-devel lzma liblzma-devel lzma liblzma-devel git

the Silver Searcherのビルド

mkdir /usr/local/src
cd !$
git clone https://github.com/ggreer/the_silver_searcher.git
cd the_silver_searcher
make -f Makefile.w32

the Silver Searcherの配置

$ make install
$ which ag
/usr/local/bin/ag


以上で完了です。

使い方

よく使うような-wや-iなどはgrepと同じように使うことができますが、agコマンドではデフォルトでカレントディレクトリ以下の再起探索(./ -r)とカラー(--color)が有効になっています。
またagは同じファイル内の検索結果はまとめて表示されます。(--group)
コマンドで表すと以下の2つが同じような出力結果となります。

grep SEARCH_WORD ./ -r --color
ag SEARCH_WORD --nogroup


普段はこれだけのコマンドで目的の検索ができてしまいます。

ag SEARCH_WORD


詳細についてはag --helpで確認してみてください。

$ ag
Usage: ag [OPTIONS] PATTERN [PATH]

Recursively search for PATTERN in PATH.
Like grep or ack, but faster.

Example: ag -i foo /bar/

Search options:

--ackmate               Print results in AckMate-parseable format
-a --all-types          Search all files (doesn't include hidden files
                        or patterns from ignore files)
-A --after [LINES]      Print lines before match (Default: 2)
-B --before [LINES]     Print lines after match (Default: 2)
--[no]break             Print newlines between matches in different files
                        (Enabled by default)
--[no]color             Print color codes in results (Enabled by default)
--color-line-number     Color codes for line numbers (Default: 1;33)
--color-match           Color codes for result match numbers (Default: 30;43)
--color-path            Color codes for path names (Default: 1;32)
--column                Print column numbers in results
--line-numbers          Print line numbers even for streams
-C --context [LINES]    Print lines before and after matches (Default: 2)
-D --debug              Ridiculous debugging (probably not useful)
--depth NUM             Search up to NUM directories deep (Default: 25)
-f --follow             Follow symlinks
--[no]group             Same as --[no]break --[no]heading
-g PATTERN              Print filenames matching PATTERN
-G, --file-search-regex PATTERN Limit search to filenames matching PATTERN
--[no]heading
--hidden                Search hidden files (obeys .*ignore files)
-i, --ignore-case       Match case insensitively
--ignore PATTERN        Ignore files/directories matching PATTERN
                        (literal file/directory names also allowed)
--ignore-dir NAME       Alias for --ignore for compatibility with ack.
-l --files-with-matches Only print filenames that contain matches
                        (don't print the matching lines)
-L --files-without-matches
                        Only print filenames that don't contain matches
-m --max-count NUM      Skip the rest of a file after NUM matches (Default: 10,000)
--no-numbers            Don't show line numbers
-p --path-to-agignore STRING
                        Use .agignore file at STRING
--print-long-lines      Print matches on very long lines (Default: >2k characters)
-Q --literal            Don't parse PATTERN as a regular expression
-s --case-sensitive     Match case sensitively (Enabled by default)
-S --smart-case         Match case insensitively unless PATTERN contains
                        uppercase characters
--search-binary         Search binary files for matches
--stats                 Print stats (files scanned, time taken, etc.)
-t --all-text           Search all text files (doesn't include hidden files)
-u --unrestricted       Search all files (ignore .agignore, .gitignore, etc.;
                        searches binary and hidden files as well)
-U --skip-vcs-ignores   Ignore VCS ignore files
                        (.gitigore, .hgignore, .svnignore; still obey .agignore)
-v --invert-match
-w --word-regexp        Only match whole words
-z --search-zip         Search contents of compressed (e.g., gzip) files

参考

ggreer/the_silver_searcher · GitHub
https://github.com/ggreer/the_silver_searcher
MinGWでSilver Searcher(ag.exe)をビルドする方法。 #Windows #MinGW - Qiita [キータ]
http://qiita.com/items/7d7a4962cdac878d7471
2013-03-25 [emacs] The Silver Searcher のビルド手順 for gnupackAdd Star
http://d.hatena.ne.jp/zqwell-ss/20130325/1364232704

グラトリの参考になる動画メモ

全体的にジャンプ前の先行動作で上半身は予め回っておくことが重要そう
0:32〜0:35
1:44〜1:55

1:18〜1:45

ノーリーバックサイド180 0:13〜0:18
ピボット180 2:39〜2:51
ピボットバックサイド180 3:16〜3:28
リワインド 3:41〜3:55