githelp 0.3.1 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/Makefile +4 -0
 - data/README.md +141 -6
 - data/_config.yml +1 -0
 - data/exe/githelp +25 -1
 - data/favicon.graffle +304 -0
 - data/favicon.ico +0 -0
 - data/favicon.png +0 -0
 - data/index.html +296 -0
 - data/lib/githelp/version.rb +1 -1
 - data/lib/githelp.rb +2 -0
 - data/stylesheets/github-light.css +116 -0
 - data/stylesheets/normalize.css +424 -0
 - data/stylesheets/stylesheet.css +245 -0
 - metadata +10 -4
 - data/00README +0 -8
 - data/bin/gh +0 -3
 
    
        data/index.html
    ADDED
    
    | 
         @@ -0,0 +1,296 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            <html>
         
     | 
| 
      
 2 
     | 
    
         
            +
              <head>
         
     | 
| 
      
 3 
     | 
    
         
            +
                <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
         
     | 
| 
      
 4 
     | 
    
         
            +
                <title>GitHelp</title>
         
     | 
| 
      
 5 
     | 
    
         
            +
                <link rel="icon" href="favicon.ico" />
         
     | 
| 
      
 6 
     | 
    
         
            +
                <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700' rel='stylesheet' type='text/css'>
         
     | 
| 
      
 7 
     | 
    
         
            +
                <link rel="stylesheet" type="text/css" href="stylesheets/normalize.css">
         
     | 
| 
      
 8 
     | 
    
         
            +
                <link rel="stylesheet" type="text/css" href="stylesheets/stylesheet.css">
         
     | 
| 
      
 9 
     | 
    
         
            +
                <link rel="stylesheet" type="text/css" href="stylesheets/github-light.css">
         
     | 
| 
      
 10 
     | 
    
         
            +
              </head>
         
     | 
| 
      
 11 
     | 
    
         
            +
              <body>
         
     | 
| 
      
 12 
     | 
    
         
            +
                <section class="page-header">
         
     | 
| 
      
 13 
     | 
    
         
            +
                  <h1 class="project-name">GitHelp</h1>
         
     | 
| 
      
 14 
     | 
    
         
            +
                  <h2 class="project-tagline">Gitコマンドの使いこなしを支援</h2>
         
     | 
| 
      
 15 
     | 
    
         
            +
                  <a href="https://github.com/masui/GitHelp" class="btn">ソース @ GitHub</a>
         
     | 
| 
      
 16 
     | 
    
         
            +
                  <a href="https://Scrapbox.io/GitHelp" class="btn">データ @ Scrapbox</a>
         
     | 
| 
      
 17 
     | 
    
         
            +
                  <a href="#install" class="btn">インストール</a>
         
     | 
| 
      
 18 
     | 
    
         
            +
                </section>
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
                <section class="main-content">
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
                  <div style="text-align:center;">
         
     | 
| 
      
 23 
     | 
    
         
            +
            	<img src="https://gyazo.com/21cefb381780f69e6c565103a4cb6908.gif" style="text-align:center;">
         
     | 
| 
      
 24 
     | 
    
         
            +
                  </div>
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
                  <p>
         
     | 
| 
      
 27 
     | 
    
         
            +
                   Gitのような複雑なシステムは使い方が難しい。
         
     | 
| 
      
 28 
     | 
    
         
            +
                  ある程度使い方を知っている場合でも、あまり一般的でない機能を使うのは難しい。
         
     | 
| 
      
 29 
     | 
    
         
            +
                  たとえば以下のような場合はどういうコマンドを使えばいいだろうか?
         
     | 
| 
      
 30 
     | 
    
         
            +
                  </p>
         
     | 
| 
      
 31 
     | 
    
         
            +
                  
         
     | 
| 
      
 32 
     | 
    
         
            +
                  <ul>
         
     | 
| 
      
 33 
     | 
    
         
            +
            	<li><i>ひとつ前のバージョンの<code>README.md</code>からの変更を見たい</i></li>
         
     | 
| 
      
 34 
     | 
    
         
            +
            	<li><i><code>README.md</code>は3日前からどう変わった?</i></li>
         
     | 
| 
      
 35 
     | 
    
         
            +
            	<li><i><code>package.json</code>に<code>coffee</code>という名前が入ったのはいつ?</i></li>
         
     | 
| 
      
 36 
     | 
    
         
            +
            	<li><i>ここ1週間ぐらい変更されてないファイルは?</i></li>
         
     | 
| 
      
 37 
     | 
    
         
            +
            	<li><i>最近大量に修正したファイルはどれだっけ?</i></li>
         
     | 
| 
      
 38 
     | 
    
         
            +
                  </ul>
         
     | 
| 
      
 39 
     | 
    
         
            +
             
     | 
| 
      
 40 
     | 
    
         
            +
                  <hr>
         
     | 
| 
      
 41 
     | 
    
         
            +
                  
         
     | 
| 
      
 42 
     | 
    
         
            +
                  <p>
         
     | 
| 
      
 43 
     | 
    
         
            +
            	 最初の例について考えてみる。
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
            	Gitでは「<code>HEAD^</code>」「<code>HEAD^^</code>」のような表現で昔のコミットを参照できるので
         
     | 
| 
      
 46 
     | 
    
         
            +
            	
         
     | 
| 
      
 47 
     | 
    
         
            +
            	<blockquote>
         
     | 
| 
      
 48 
     | 
    
         
            +
            	  <code>$ git diff HEAD^ README.md</code>
         
     | 
| 
      
 49 
     | 
    
         
            +
            	</blockquote>
         
     | 
| 
      
 50 
     | 
    
         
            +
            	
         
     | 
| 
      
 51 
     | 
    
         
            +
            	のようにすればひとつ前のコミットの<code>README.md</code>との比較ができるが、
         
     | 
| 
      
 52 
     | 
    
         
            +
            	最近のコミットで<code>README.md</code>を編集していなかった場合は
         
     | 
| 
      
 53 
     | 
    
         
            +
            	このコマンドを起動しても何も出力されない。
         
     | 
| 
      
 54 
     | 
    
         
            +
            	
         
     | 
| 
      
 55 
     | 
    
         
            +
            	<blockquote>
         
     | 
| 
      
 56 
     | 
    
         
            +
            	  <code>$ git log README.md</code>
         
     | 
| 
      
 57 
     | 
    
         
            +
            	</blockquote>
         
     | 
| 
      
 58 
     | 
    
         
            +
            	
         
     | 
| 
      
 59 
     | 
    
         
            +
            	とすれば<code>REDME.md</code>の編集履歴を調べられるので、
         
     | 
| 
      
 60 
     | 
    
         
            +
            	ひとつ前のバージョンのコミットIDを使えば
         
     | 
| 
      
 61 
     | 
    
         
            +
            	
         
     | 
| 
      
 62 
     | 
    
         
            +
            	<blockquote>
         
     | 
| 
      
 63 
     | 
    
         
            +
            	  <code>$ git diff (ひとつ前のバージョンのコミットID) README.md</code>
         
     | 
| 
      
 64 
     | 
    
         
            +
            	</blockquote>
         
     | 
| 
      
 65 
     | 
    
         
            +
            	
         
     | 
| 
      
 66 
     | 
    
         
            +
            	のようにして
         
     | 
| 
      
 67 
     | 
    
         
            +
            	ひとつ前のバージョンの<code>README.md</code>からの変更を見ることができる。
         
     | 
| 
      
 68 
     | 
    
         
            +
                  </p>
         
     | 
| 
      
 69 
     | 
    
         
            +
             
     | 
| 
      
 70 
     | 
    
         
            +
                  <hr>
         
     | 
| 
      
 71 
     | 
    
         
            +
             
     | 
| 
      
 72 
     | 
    
         
            +
                  <p>
         
     | 
| 
      
 73 
     | 
    
         
            +
            	 しかしこれはなかなか面倒な話である。
         
     | 
| 
      
 74 
     | 
    
         
            +
             
     | 
| 
      
 75 
     | 
    
         
            +
            	<i>手動でコミットIDを手打ちかコピペしなければならない</i>
         
     | 
| 
      
 76 
     | 
    
         
            +
             
     | 
| 
      
 77 
     | 
    
         
            +
            	し、当然ながら
         
     | 
| 
      
 78 
     | 
    
         
            +
             
     | 
| 
      
 79 
     | 
    
         
            +
            	<i><code>git log</code>や<code>git diff</code>といったコマンドの存在と動作を知っていなければならない</i>。
         
     | 
| 
      
 80 
     | 
    
         
            +
             
     | 
| 
      
 81 
     | 
    
         
            +
            	<code>git log</code>や<code>git diff</code>はよく使うコマンドなので
         
     | 
| 
      
 82 
     | 
    
         
            +
            	Gitユーザなら誰でも知っているだろうが、
         
     | 
| 
      
 83 
     | 
    
         
            +
            	このような簡単な仕事でもコピペのような面倒な操作が必要なのは嫌である。
         
     | 
| 
      
 84 
     | 
    
         
            +
             
     | 
| 
      
 85 
     | 
    
         
            +
            	<br>
         
     | 
| 
      
 86 
     | 
    
         
            +
            	 実はGitには<code>rev-list</code>というコマンドがあり、
         
     | 
| 
      
 87 
     | 
    
         
            +
            	編集があったコミットのIDをリストすることができる。
         
     | 
| 
      
 88 
     | 
    
         
            +
            	これを利用すると、ひとつ前の編集のコミットIDは
         
     | 
| 
      
 89 
     | 
    
         
            +
             
     | 
| 
      
 90 
     | 
    
         
            +
            	<blockquote>
         
     | 
| 
      
 91 
     | 
    
         
            +
            	  <code>$ git rev-list HEAD -- README.md | head -2 | tail -1</code>
         
     | 
| 
      
 92 
     | 
    
         
            +
            	</blockquote>
         
     | 
| 
      
 93 
     | 
    
         
            +
             
     | 
| 
      
 94 
     | 
    
         
            +
            	で取得できる。
         
     | 
| 
      
 95 
     | 
    
         
            +
            	この結果を利用すると、
         
     | 
| 
      
 96 
     | 
    
         
            +
            	「ひとつ前のバージョンの<code>README.md</code>からの変更を見たい」
         
     | 
| 
      
 97 
     | 
    
         
            +
            	という要求は
         
     | 
| 
      
 98 
     | 
    
         
            +
             
     | 
| 
      
 99 
     | 
    
         
            +
            	<blockquote>
         
     | 
| 
      
 100 
     | 
    
         
            +
            	  <code>git diff $(git rev-list HEAD -- README.md | head -2 | tail -1) -- README.md</code>
         
     | 
| 
      
 101 
     | 
    
         
            +
            	</blockquote>
         
     | 
| 
      
 102 
     | 
    
         
            +
             
     | 
| 
      
 103 
     | 
    
         
            +
            	のようなコマンドで実行できることになる。
         
     | 
| 
      
 104 
     | 
    
         
            +
            	(<code>$(...)</code>というのは<code>bash</code>の記法で、コマンド実行結果を文字列として扱うものである。
         
     | 
| 
      
 105 
     | 
    
         
            +
            	<code>--</code>というのは、その後に続く文字列がオプションではなくてファイル名等だということを示すものらしい。)
         
     | 
| 
      
 106 
     | 
    
         
            +
                  </p>
         
     | 
| 
      
 107 
     | 
    
         
            +
                  <p>
         
     | 
| 
      
 108 
     | 
    
         
            +
            	 <code>rev-list</code>の<code>-n</code>オプションを利用すると
         
     | 
| 
      
 109 
     | 
    
         
            +
            	
         
     | 
| 
      
 110 
     | 
    
         
            +
            	<blockquote>
         
     | 
| 
      
 111 
     | 
    
         
            +
            	  <code>git diff $(git rev-list -n 1 HEAD -- README.md)^ -- README.md</code>
         
     | 
| 
      
 112 
     | 
    
         
            +
            	</blockquote>
         
     | 
| 
      
 113 
     | 
    
         
            +
            	
         
     | 
| 
      
 114 
     | 
    
         
            +
            	のように書くこともできる。
         
     | 
| 
      
 115 
     | 
    
         
            +
                  </p>
         
     | 
| 
      
 116 
     | 
    
         
            +
             
     | 
| 
      
 117 
     | 
    
         
            +
                  <hr>
         
     | 
| 
      
 118 
     | 
    
         
            +
             
     | 
| 
      
 119 
     | 
    
         
            +
                  <p>
         
     | 
| 
      
 120 
     | 
    
         
            +
            	 それにしても、このように
         
     | 
| 
      
 121 
     | 
    
         
            +
            	<b>無駄知識が大量に必要</b>
         
     | 
| 
      
 122 
     | 
    
         
            +
            	だったり
         
     | 
| 
      
 123 
     | 
    
         
            +
            	<b>単純な要求の実行が大変</b>
         
     | 
| 
      
 124 
     | 
    
         
            +
            	だったりするのは嫌すぎる。
         
     | 
| 
      
 125 
     | 
    
         
            +
             
     | 
| 
      
 126 
     | 
    
         
            +
            	上のような工夫によって、
         
     | 
| 
      
 127 
     | 
    
         
            +
            	ひとつ前のバージョンの<code>README.md</code>からの変更は調べられるようになったわけだが、
         
     | 
| 
      
 128 
     | 
    
         
            +
            	こういった要求は無限にあるわけで、
         
     | 
| 
      
 129 
     | 
    
         
            +
            	そのたびにいろんなGit機能を調べたり思い出したりしなければならないのだろうか。
         
     | 
| 
      
 130 
     | 
    
         
            +
             
     | 
| 
      
 131 
     | 
    
         
            +
            	「<i><code>README.md</code>は最後にどこ変えたっけ?</i>」
         
     | 
| 
      
 132 
     | 
    
         
            +
            	のような自然な質問を簡単に
         
     | 
| 
      
 133 
     | 
    
         
            +
            	Gitコマンドに翻訳する方法が欲しい。
         
     | 
| 
      
 134 
     | 
    
         
            +
             
     | 
| 
      
 135 
     | 
    
         
            +
            	<br>
         
     | 
| 
      
 136 
     | 
    
         
            +
            	 こういった要望に対して最近は<b>人工知能</b>的に解決しようとするアプローチが人気かもしれない。
         
     | 
| 
      
 137 
     | 
    
         
            +
            	しかしそのためには高度な自然言語処理が必要で、
         
     | 
| 
      
 138 
     | 
    
         
            +
            	ちょっと違った表現を許したり内容を変えたりすることは簡単ではない。
         
     | 
| 
      
 139 
     | 
    
         
            +
            	大阪弁で質問できる日が来るとは思えない。
         
     | 
| 
      
 140 
     | 
    
         
            +
             
     | 
| 
      
 141 
     | 
    
         
            +
            	また、「<code>longfilename</code>」のようなものを指定しようとして
         
     | 
| 
      
 142 
     | 
    
         
            +
            	「<code>logfile</code>」のように間違って入力しても動くようにするには
         
     | 
| 
      
 143 
     | 
    
         
            +
            	単純な予測/補完/誤り修正機能などを使った方が良いだろう。
         
     | 
| 
      
 144 
     | 
    
         
            +
             
     | 
| 
      
 145 
     | 
    
         
            +
            	<br>
         
     | 
| 
      
 146 
     | 
    
         
            +
            	 逆引き辞典などでは
         
     | 
| 
      
 147 
     | 
    
         
            +
            	「ひとつ前のバージョンのファイルとの違いを知る」
         
     | 
| 
      
 148 
     | 
    
         
            +
            	のようなエントリはあるかもしれないが、
         
     | 
| 
      
 149 
     | 
    
         
            +
            	それを調べた後で「<code>README.md</code>」のような名前を指定してコマンドを起動する必要がある。
         
     | 
| 
      
 150 
     | 
    
         
            +
            	こういった二度手間も減らしたいものである。
         
     | 
| 
      
 151 
     | 
    
         
            +
                  </p>
         
     | 
| 
      
 152 
     | 
    
         
            +
                  <p>
         
     | 
| 
      
 153 
     | 
    
         
            +
            	 Macのヘルプで「時間 セット」と入力しても時間をセットする方法は出てこないし、ヘルプを自分で追加することはできない。
         
     | 
| 
      
 154 
     | 
    
         
            +
            	<br>
         
     | 
| 
      
 155 
     | 
    
         
            +
            	<img src="https://gyazo.com/9af1335835f8ded134203f55cbc3bc96.png" width=400>
         
     | 
| 
      
 156 
     | 
    
         
            +
            	<br>
         
     | 
| 
      
 157 
     | 
    
         
            +
            	時間をセットする方法がヘルプに書いてあったとしても、
         
     | 
| 
      
 158 
     | 
    
         
            +
            	時間を4時にセットするためには自分で「4時」という値を指定してから「時間のセット」機能を実行しなければならない。
         
     | 
| 
      
 159 
     | 
    
         
            +
                  </p>
         
     | 
| 
      
 160 
     | 
    
         
            +
             
     | 
| 
      
 161 
     | 
    
         
            +
                  <p>
         
     | 
| 
      
 162 
     | 
    
         
            +
            	 マニュアルやヘルプを書くのは面倒なものである。
         
     | 
| 
      
 163 
     | 
    
         
            +
            	システムのドキュメントやマニュアルやヘルプシステムを独立に開発するのは
         
     | 
| 
      
 164 
     | 
    
         
            +
            	面倒すぎるし齟齬も起きやすいだろう。
         
     | 
| 
      
 165 
     | 
    
         
            +
            	ユーザをサポートするシステムがひとつにまとまっていて、
         
     | 
| 
      
 166 
     | 
    
         
            +
            	誰でも情報を足したり修正したりできたら嬉しいだろう。
         
     | 
| 
      
 167 
     | 
    
         
            +
                  </p>
         
     | 
| 
      
 168 
     | 
    
         
            +
             
     | 
| 
      
 169 
     | 
    
         
            +
                  <h3>GitHelpのアプローチ</h3>
         
     | 
| 
      
 170 
     | 
    
         
            +
             
     | 
| 
      
 171 
     | 
    
         
            +
                  <p>
         
     | 
| 
      
 172 
     | 
    
         
            +
            	 GitHelpは、以下のような方針で上のような課題をすべて解決しようというものである。
         
     | 
| 
      
 173 
     | 
    
         
            +
             
     | 
| 
      
 174 
     | 
    
         
            +
            	<ul>
         
     | 
| 
      
 175 
     | 
    
         
            +
            	  <li>ユーザのあらゆる曖昧な表現にマッチするようにヘルプ文字列を正規表現で表現し、
         
     | 
| 
      
 176 
     | 
    
         
            +
            	    Gitコマンドに変換する</li>
         
     | 
| 
      
 177 
     | 
    
         
            +
            	  - ExpandHelp(<a href="https://github.com/masui/expand-ruby">ソース</a> /
         
     | 
| 
      
 178 
     | 
    
         
            +
            	  <a href="http://www.interaction-ipsj.org/archives/paper2012/data/Interaction2012/oral/data/pdf/12INT012.pdf">論文</a>)を利用
         
     | 
| 
      
 179 
     | 
    
         
            +
            	  <li>データをすべてクラウド上に置いて編集可能にすることにより、
         
     | 
| 
      
 180 
     | 
    
         
            +
            	    誰でもデータを追加/修正できるようにする</li>
         
     | 
| 
      
 181 
     | 
    
         
            +
            	  - <a href="https://Scrapbox.io/GitHelp">Scrapbox</a>を利用
         
     | 
| 
      
 182 
     | 
    
         
            +
            	  <li>ユーザが指定したパラメタはそのまま利用して実行に使う</li>
         
     | 
| 
      
 183 
     | 
    
         
            +
            	  -  ユーザが「4 時間」などと指定すると「時刻を4時にセットする」のようなものを提案して実行可能にする
         
     | 
| 
      
 184 
     | 
    
         
            +
            	  <li>多少の誤入力を許す</li>
         
     | 
| 
      
 185 
     | 
    
         
            +
            	</ul>
         
     | 
| 
      
 186 
     | 
    
         
            +
             
     | 
| 
      
 187 
     | 
    
         
            +
            	この結果、<b>やりたいことの一部を漠然と言えばすぐ実行できる</b>ようになるのが理想である。
         
     | 
| 
      
 188 
     | 
    
         
            +
                  </p>
         
     | 
| 
      
 189 
     | 
    
         
            +
                  
         
     | 
| 
      
 190 
     | 
    
         
            +
                  <h3>利用例</h3>
         
     | 
| 
      
 191 
     | 
    
         
            +
                  
         
     | 
| 
      
 192 
     | 
    
         
            +
                  Gitに関連するタスクのキーワードやパラメタを指定して
         
     | 
| 
      
 193 
     | 
    
         
            +
                  <code>githelp</code>を起動すると
         
     | 
| 
      
 194 
     | 
    
         
            +
                  候補のリストが表示され、
         
     | 
| 
      
 195 
     | 
    
         
            +
                  カーソルで選択すると実行される。
         
     | 
| 
      
 196 
     | 
    
         
            +
                  
         
     | 
| 
      
 197 
     | 
    
         
            +
                  <ul>
         
     | 
| 
      
 198 
     | 
    
         
            +
            	<li><code>$ githelp 2 README</code>のように引数を指定して起動すると以下のような候補リストが提示される</li>
         
     | 
| 
      
 199 
     | 
    
         
            +
             
     | 
| 
      
 200 
     | 
    
         
            +
            	<img src="https://gyazo.com/6cc87cef5f28185199074b61716454de.png" width=500>
         
     | 
| 
      
 201 
     | 
    
         
            +
             
     | 
| 
      
 202 
     | 
    
         
            +
            	<p></p>
         
     | 
| 
      
 203 
     | 
    
         
            +
            	<li>カーソルで選択してリターンを押すと実行される</li>
         
     | 
| 
      
 204 
     | 
    
         
            +
             
     | 
| 
      
 205 
     | 
    
         
            +
            	<img src="https://gyazo.com/75c14885944c33f2671474b008120262.png" width=500>
         
     | 
| 
      
 206 
     | 
    
         
            +
                  </ul>
         
     | 
| 
      
 207 
     | 
    
         
            +
                  
         
     | 
| 
      
 208 
     | 
    
         
            +
                  <a name="install"><h3>インストール</h3></a>
         
     | 
| 
      
 209 
     | 
    
         
            +
                  
         
     | 
| 
      
 210 
     | 
    
         
            +
                  <pre>
         
     | 
| 
      
 211 
     | 
    
         
            +
            	% gem install githelp   </pre>
         
     | 
| 
      
 212 
     | 
    
         
            +
                  
         
     | 
| 
      
 213 
     | 
    
         
            +
                  <ul>
         
     | 
| 
      
 214 
     | 
    
         
            +
            	<li>対話的処理のために<a href="https://github.com/peco/peco">peco</a>が必要</li>
         
     | 
| 
      
 215 
     | 
    
         
            +
            	<ul>
         
     | 
| 
      
 216 
     | 
    
         
            +
            	  <li>Macだと<code>% brew install peco</code>でインストール可能</li>
         
     | 
| 
      
 217 
     | 
    
         
            +
            	  <li>Linuxなどの場合<a href="https://github.com/peco/peco/releases">こちら</a>のファイルからインストール (yumでは入らない)</li>
         
     | 
| 
      
 218 
     | 
    
         
            +
            	</ul>
         
     | 
| 
      
 219 
     | 
    
         
            +
                  </ul>
         
     | 
| 
      
 220 
     | 
    
         
            +
             
     | 
| 
      
 221 
     | 
    
         
            +
                  <h3>実装</h3>
         
     | 
| 
      
 222 
     | 
    
         
            +
                  
         
     | 
| 
      
 223 
     | 
    
         
            +
                  <ul>
         
     | 
| 
      
 224 
     | 
    
         
            +
            	<li><a href="https://github.com/masui/expand_ruby">re_expand</a>
         
     | 
| 
      
 225 
     | 
    
         
            +
            	  という正規表現展開ライブラリを利用</li>
         
     | 
| 
      
 226 
     | 
    
         
            +
            	<li><a href="https://Scrapbox.io/GitHelp">Scrapbox</a>にあらゆる情報を書いておく</li>
         
     | 
| 
      
 227 
     | 
    
         
            +
            	<br>
         
     | 
| 
      
 228 
     | 
    
         
            +
            	<img src="https://gyazo.com/b4ba42a96617c65db32020eb1ea19bf3.png" width=450>
         
     | 
| 
      
 229 
     | 
    
         
            +
            	<li>
         
     | 
| 
      
 230 
     | 
    
         
            +
            	  様々なタスクの説明と実際の操作を組にして記述しておき、
         
     | 
| 
      
 231 
     | 
    
         
            +
            	  ユーザが与えたキーワードやパラメタにマッチするものを
         
     | 
| 
      
 232 
     | 
    
         
            +
            	  リストして実行可能にする</li>
         
     | 
| 
      
 233 
     | 
    
         
            +
            	<li>行頭に<code>$</code>がある行でタスクの説明を記述し、行頭に<code>%</code>がある行で実行コマンドを示す</li>
         
     | 
| 
      
 234 
     | 
    
         
            +
            	
         
     | 
| 
      
 235 
     | 
    
         
            +
            	<li>ファイル名にマッチする引数(e.g. <code>READM</code>)や
         
     | 
| 
      
 236 
     | 
    
         
            +
            	  数字にマッチする引数(e.g. <code>2</code>)が指定されると
         
     | 
| 
      
 237 
     | 
    
         
            +
            	  <code>$</code>の行に記述された<code>#{filename}</code>や<code>#{number}</code>に
         
     | 
| 
      
 238 
     | 
    
         
            +
            	  マッチする</li>
         
     | 
| 
      
 239 
     | 
    
         
            +
            	<li>マッチしたときは、マッチした文字列が<code>$1</code>などで参照/展開されてGitコマンド文字列になる
         
     | 
| 
      
 240 
     | 
    
         
            +
            	<li>ワンライナーでは難しい場合は <a href="https://github.com/masui/GitHelp/tree/master/exe"><code>exe</code></a>
         
     | 
| 
      
 241 
     | 
    
         
            +
            	  の下にヘルパーコマンドを用意して利用する (e.g. <a href="https://github.com/masui/GitHelp/tree/master/exe/githelp-changed"><code>githelp-changed</code></a>) )</li>
         
     | 
| 
      
 242 
     | 
    
         
            +
                  </ul>
         
     | 
| 
      
 243 
     | 
    
         
            +
                  
         
     | 
| 
      
 244 
     | 
    
         
            +
                  
         
     | 
| 
      
 245 
     | 
    
         
            +
                  <h3>考察</h3>
         
     | 
| 
      
 246 
     | 
    
         
            +
             
     | 
| 
      
 247 
     | 
    
         
            +
                  <ul>
         
     | 
| 
      
 248 
     | 
    
         
            +
            	<li>生活の中ではこういった言い換えをいつも行なっているかもしれない。
         
     | 
| 
      
 249 
     | 
    
         
            +
            	  たとえば「部屋暗くして」と頼まれたら
         
     | 
| 
      
 250 
     | 
    
         
            +
            	  部屋の入口にある電灯スイッチを操作するかもしれないが、
         
     | 
| 
      
 251 
     | 
    
         
            +
            	  この場合は頭の中で
         
     | 
| 
      
 252 
     | 
    
         
            +
            	  「部屋を暗くする」⇒「電灯を消す」⇒「電灯のスイッチを切る」
         
     | 
| 
      
 253 
     | 
    
         
            +
            	  という翻訳が行なわれていることになる。
         
     | 
| 
      
 254 
     | 
    
         
            +
            	  こういうことは生活で非常に多いので
         
     | 
| 
      
 255 
     | 
    
         
            +
            	  翻訳作業があまり気にならないものなのかもしれないが、
         
     | 
| 
      
 256 
     | 
    
         
            +
            	  そういう「翻訳」は少ない方が良いのは確かだろう。
         
     | 
| 
      
 257 
     | 
    
         
            +
            	</li>
         
     | 
| 
      
 258 
     | 
    
         
            +
            	<li>そういえば先日「らくらくホン」画面に出てくる鬱陶しい「羊」を消す方法が全くわからなかったのだが、
         
     | 
| 
      
 259 
     | 
    
         
            +
            	  あれは「マチキャラ」と呼ばれるものなので
         
     | 
| 
      
 260 
     | 
    
         
            +
            	  「マチキャラ」を消すという操作が必要だった。
         
     | 
| 
      
 261 
     | 
    
         
            +
            	  お前はMSのイルカか。
         
     | 
| 
      
 262 
     | 
    
         
            +
            	  「羊 消す」とか「消す」とかで消せるべきだろう。
         
     | 
| 
      
 263 
     | 
    
         
            +
            	  githelpでは <code>$ githelp 削除</code> と入力すれば削除関連で何ができるのかわかるだろうし、
         
     | 
| 
      
 264 
     | 
    
         
            +
            	  <code>(鬱陶しい|不快な)羊を(消す|殺す)</code>
         
     | 
| 
      
 265 
     | 
    
         
            +
            	  のようなエントリをユーザが足すこともできるだろう。
         
     | 
| 
      
 266 
     | 
    
         
            +
            	</li>
         
     | 
| 
      
 267 
     | 
    
         
            +
            	<img src="http://service.smt.docomo.ne.jp/site/iconcier/img/iconcier_ptl_cha_img01.png" width=300>
         
     | 
| 
      
 268 
     | 
    
         
            +
            	<li>というわけで<b>Gitは単なる適用例であり、広い範囲で使いたいと思っている。</b></li>
         
     | 
| 
      
 269 
     | 
    
         
            +
                  </ul>
         
     | 
| 
      
 270 
     | 
    
         
            +
                  
         
     | 
| 
      
 271 
     | 
    
         
            +
                  <h3> 注意</h3>
         
     | 
| 
      
 272 
     | 
    
         
            +
                  
         
     | 
| 
      
 273 
     | 
    
         
            +
                  <ul>
         
     | 
| 
      
 274 
     | 
    
         
            +
            	<li><code>githelp</code>コマンドはGitリポジトリのディレクトリで実行する必要がある</li>
         
     | 
| 
      
 275 
     | 
    
         
            +
            	<li><a href="https://github.com/masui/expand_ruby">re_expand</a>の実装が富豪的なので
         
     | 
| 
      
 276 
     | 
    
         
            +
            	  大きなリポジトリだと不具合があるかも</li>
         
     | 
| 
      
 277 
     | 
    
         
            +
            	<li>データが全然足りない... 特にリモートリポジトリ関連のデータは皆無だが、
         
     | 
| 
      
 278 
     | 
    
         
            +
            	  ローカルだけでも充分複雑なのでとりあえずローカル処理の情報を充実させたい</li>
         
     | 
| 
      
 279 
     | 
    
         
            +
            	<li>旧版は<a href="https://github.com/masui/GitHelp_old">こちら</a>
         
     | 
| 
      
 280 
     | 
    
         
            +
                  </ul>
         
     | 
| 
      
 281 
     | 
    
         
            +
                  
         
     | 
| 
      
 282 
     | 
    
         
            +
                  <h3>関連システム</h3>
         
     | 
| 
      
 283 
     | 
    
         
            +
             
     | 
| 
      
 284 
     | 
    
         
            +
                  <ul>
         
     | 
| 
      
 285 
     | 
    
         
            +
            	<li><a href="http://dl.acm.org/citation.cfm?id=2814295">AnyCode</a></li>
         
     | 
| 
      
 286 
     | 
    
         
            +
            	<ul>
         
     | 
| 
      
 287 
     | 
    
         
            +
            	  <li>自然言語キーワードからJavaスニペットを検索する</li>
         
     | 
| 
      
 288 
     | 
    
         
            +
            	  <li><code>copy fileA fileB</code> みたいなキーワードから <code>FileUtil.copyFile(new File(fileA), new File(fileB))</code> みたいなコード候補を生成する</li>
         
     | 
| 
      
 289 
     | 
    
         
            +
            	</ul>
         
     | 
| 
      
 290 
     | 
    
         
            +
             
     | 
| 
      
 291 
     | 
    
         
            +
            	<li>文芸的プログラミング</li>
         
     | 
| 
      
 292 
     | 
    
         
            +
                  </ul>
         
     | 
| 
      
 293 
     | 
    
         
            +
             
     | 
| 
      
 294 
     | 
    
         
            +
                </section>
         
     | 
| 
      
 295 
     | 
    
         
            +
              </body>
         
     | 
| 
      
 296 
     | 
    
         
            +
            </html>
         
     | 
    
        data/lib/githelp/version.rb
    CHANGED
    
    
    
        data/lib/githelp.rb
    CHANGED
    
    
| 
         @@ -0,0 +1,116 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            /*
         
     | 
| 
      
 2 
     | 
    
         
            +
               Copyright 2014 GitHub Inc.
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
               Licensed under the Apache License, Version 2.0 (the "License");
         
     | 
| 
      
 5 
     | 
    
         
            +
               you may not use this file except in compliance with the License.
         
     | 
| 
      
 6 
     | 
    
         
            +
               You may obtain a copy of the License at
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
                   http://www.apache.org/licenses/LICENSE-2.0
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
               Unless required by applicable law or agreed to in writing, software
         
     | 
| 
      
 11 
     | 
    
         
            +
               distributed under the License is distributed on an "AS IS" BASIS,
         
     | 
| 
      
 12 
     | 
    
         
            +
               WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         
     | 
| 
      
 13 
     | 
    
         
            +
               See the License for the specific language governing permissions and
         
     | 
| 
      
 14 
     | 
    
         
            +
               limitations under the License.
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
            */
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
            .pl-c /* comment */ {
         
     | 
| 
      
 19 
     | 
    
         
            +
              color: #969896;
         
     | 
| 
      
 20 
     | 
    
         
            +
            }
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
            .pl-c1      /* constant, markup.raw, meta.diff.header, meta.module-reference, meta.property-name, support, support.constant, support.variable, variable.other.constant */,
         
     | 
| 
      
 23 
     | 
    
         
            +
            .pl-s .pl-v /* string variable */ {
         
     | 
| 
      
 24 
     | 
    
         
            +
              color: #0086b3;
         
     | 
| 
      
 25 
     | 
    
         
            +
            }
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
            .pl-e  /* entity */,
         
     | 
| 
      
 28 
     | 
    
         
            +
            .pl-en /* entity.name */ {
         
     | 
| 
      
 29 
     | 
    
         
            +
              color: #795da3;
         
     | 
| 
      
 30 
     | 
    
         
            +
            }
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
            .pl-s .pl-s1 /* string source */,
         
     | 
| 
      
 33 
     | 
    
         
            +
            .pl-smi      /* storage.modifier.import, storage.modifier.package, storage.type.java, variable.other, variable.parameter.function */ {
         
     | 
| 
      
 34 
     | 
    
         
            +
              color: #333;
         
     | 
| 
      
 35 
     | 
    
         
            +
            }
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
            .pl-ent /* entity.name.tag */ {
         
     | 
| 
      
 38 
     | 
    
         
            +
              color: #63a35c;
         
     | 
| 
      
 39 
     | 
    
         
            +
            }
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
            .pl-k /* keyword, storage, storage.type */ {
         
     | 
| 
      
 42 
     | 
    
         
            +
              color: #a71d5d;
         
     | 
| 
      
 43 
     | 
    
         
            +
            }
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
            .pl-pds              /* punctuation.definition.string, string.regexp.character-class */,
         
     | 
| 
      
 46 
     | 
    
         
            +
            .pl-s                /* string */,
         
     | 
| 
      
 47 
     | 
    
         
            +
            .pl-s .pl-pse .pl-s1 /* string punctuation.section.embedded source */,
         
     | 
| 
      
 48 
     | 
    
         
            +
            .pl-sr               /* string.regexp */,
         
     | 
| 
      
 49 
     | 
    
         
            +
            .pl-sr .pl-cce       /* string.regexp constant.character.escape */,
         
     | 
| 
      
 50 
     | 
    
         
            +
            .pl-sr .pl-sra       /* string.regexp string.regexp.arbitrary-repitition */,
         
     | 
| 
      
 51 
     | 
    
         
            +
            .pl-sr .pl-sre       /* string.regexp source.ruby.embedded */ {
         
     | 
| 
      
 52 
     | 
    
         
            +
              color: #183691;
         
     | 
| 
      
 53 
     | 
    
         
            +
            }
         
     | 
| 
      
 54 
     | 
    
         
            +
             
     | 
| 
      
 55 
     | 
    
         
            +
            .pl-v /* variable */ {
         
     | 
| 
      
 56 
     | 
    
         
            +
              color: #ed6a43;
         
     | 
| 
      
 57 
     | 
    
         
            +
            }
         
     | 
| 
      
 58 
     | 
    
         
            +
             
     | 
| 
      
 59 
     | 
    
         
            +
            .pl-id /* invalid.deprecated */ {
         
     | 
| 
      
 60 
     | 
    
         
            +
              color: #b52a1d;
         
     | 
| 
      
 61 
     | 
    
         
            +
            }
         
     | 
| 
      
 62 
     | 
    
         
            +
             
     | 
| 
      
 63 
     | 
    
         
            +
            .pl-ii /* invalid.illegal */ {
         
     | 
| 
      
 64 
     | 
    
         
            +
              background-color: #b52a1d;
         
     | 
| 
      
 65 
     | 
    
         
            +
              color: #f8f8f8;
         
     | 
| 
      
 66 
     | 
    
         
            +
            }
         
     | 
| 
      
 67 
     | 
    
         
            +
             
     | 
| 
      
 68 
     | 
    
         
            +
            .pl-sr .pl-cce /* string.regexp constant.character.escape */ {
         
     | 
| 
      
 69 
     | 
    
         
            +
              color: #63a35c;
         
     | 
| 
      
 70 
     | 
    
         
            +
              font-weight: bold;
         
     | 
| 
      
 71 
     | 
    
         
            +
            }
         
     | 
| 
      
 72 
     | 
    
         
            +
             
     | 
| 
      
 73 
     | 
    
         
            +
            .pl-ml /* markup.list */ {
         
     | 
| 
      
 74 
     | 
    
         
            +
              color: #693a17;
         
     | 
| 
      
 75 
     | 
    
         
            +
            }
         
     | 
| 
      
 76 
     | 
    
         
            +
             
     | 
| 
      
 77 
     | 
    
         
            +
            .pl-mh        /* markup.heading */,
         
     | 
| 
      
 78 
     | 
    
         
            +
            .pl-mh .pl-en /* markup.heading entity.name */,
         
     | 
| 
      
 79 
     | 
    
         
            +
            .pl-ms        /* meta.separator */ {
         
     | 
| 
      
 80 
     | 
    
         
            +
              color: #1d3e81;
         
     | 
| 
      
 81 
     | 
    
         
            +
              font-weight: bold;
         
     | 
| 
      
 82 
     | 
    
         
            +
            }
         
     | 
| 
      
 83 
     | 
    
         
            +
             
     | 
| 
      
 84 
     | 
    
         
            +
            .pl-mq /* markup.quote */ {
         
     | 
| 
      
 85 
     | 
    
         
            +
              color: #008080;
         
     | 
| 
      
 86 
     | 
    
         
            +
            }
         
     | 
| 
      
 87 
     | 
    
         
            +
             
     | 
| 
      
 88 
     | 
    
         
            +
            .pl-mi /* markup.italic */ {
         
     | 
| 
      
 89 
     | 
    
         
            +
              color: #333;
         
     | 
| 
      
 90 
     | 
    
         
            +
              font-style: italic;
         
     | 
| 
      
 91 
     | 
    
         
            +
            }
         
     | 
| 
      
 92 
     | 
    
         
            +
             
     | 
| 
      
 93 
     | 
    
         
            +
            .pl-mb /* markup.bold */ {
         
     | 
| 
      
 94 
     | 
    
         
            +
              color: #333;
         
     | 
| 
      
 95 
     | 
    
         
            +
              font-weight: bold;
         
     | 
| 
      
 96 
     | 
    
         
            +
            }
         
     | 
| 
      
 97 
     | 
    
         
            +
             
     | 
| 
      
 98 
     | 
    
         
            +
            .pl-md /* markup.deleted, meta.diff.header.from-file */ {
         
     | 
| 
      
 99 
     | 
    
         
            +
              background-color: #ffecec;
         
     | 
| 
      
 100 
     | 
    
         
            +
              color: #bd2c00;
         
     | 
| 
      
 101 
     | 
    
         
            +
            }
         
     | 
| 
      
 102 
     | 
    
         
            +
             
     | 
| 
      
 103 
     | 
    
         
            +
            .pl-mi1 /* markup.inserted, meta.diff.header.to-file */ {
         
     | 
| 
      
 104 
     | 
    
         
            +
              background-color: #eaffea;
         
     | 
| 
      
 105 
     | 
    
         
            +
              color: #55a532;
         
     | 
| 
      
 106 
     | 
    
         
            +
            }
         
     | 
| 
      
 107 
     | 
    
         
            +
             
     | 
| 
      
 108 
     | 
    
         
            +
            .pl-mdr /* meta.diff.range */ {
         
     | 
| 
      
 109 
     | 
    
         
            +
              color: #795da3;
         
     | 
| 
      
 110 
     | 
    
         
            +
              font-weight: bold;
         
     | 
| 
      
 111 
     | 
    
         
            +
            }
         
     | 
| 
      
 112 
     | 
    
         
            +
             
     | 
| 
      
 113 
     | 
    
         
            +
            .pl-mo /* meta.output */ {
         
     | 
| 
      
 114 
     | 
    
         
            +
              color: #1d3e81;
         
     | 
| 
      
 115 
     | 
    
         
            +
            }
         
     | 
| 
      
 116 
     | 
    
         
            +
             
     |