index.html in helpline-0.1.14 vs index.html in helpline-0.1.15
- old
+ new
@@ -18,20 +18,17 @@
</section>
<section class="main-content">
<center>
- <video src="https://s3-ap-northeast-1.amazonaws.com/masui.org/d/b/db555e8535ff111e794b95e6d3d7a8f5.mp4" width=600 controls></video>
+ <video src="https://s3-ap-northeast-1.amazonaws.com/masui.org/b/9/b9b2ae65a3a977857b5487f280785b47.mp4" width=600 controls></video>
</center>
- <p>
- 以下、GitHelpのテキストをコピペしただけなのでHelpLineの説明になってません。すみません
- </p>
-
- <p>
- Gitのような複雑なシステムは使い方が難しい。
- ある程度使い方を知っている場合でも、あまり一般的でない機能を使うのは難しい。
+ <p></p>
+
+ コマンドラインのオプションは難しいものが多い。
+ Gitのような複雑なシステムの場合、概念もオプションも難しい。
たとえば以下のような場合はどういうコマンドを使えばいいだろうか?
</p>
<ul>
<li><i>ひとつ前のバージョンの<code>README.md</code>からの変更を見たい</i></li>
@@ -168,70 +165,75 @@
面倒すぎるし齟齬も起きやすいだろう。
ユーザをサポートするシステムがひとつにまとまっていて、
誰でも情報を足したり修正したりできたら嬉しいだろう。
</p>
- <h3>GitHelpのアプローチ</h3>
+ <h3>HelpLineのアプローチ</h3>
<p>
- GitHelpは、以下のような方針で上のような課題をすべて解決しようというものである。
+ HelpLineは、以下のような方針で上のような課題をすべて解決しようというものである。
<ul>
<li>ユーザのあらゆる曖昧な表現にマッチするようにヘルプ文字列を正規表現で表現し、
- Gitコマンドに変換する</li>
+ コマンドに変換する</li>
- ExpandHelp(<a href="https://github.com/masui/expand-ruby">ソース</a> /
<a href="http://www.interaction-ipsj.org/archives/paper2012/data/Interaction2012/oral/data/pdf/12INT012.pdf">論文</a>)を利用
<li>データをすべてクラウド上に置いて編集可能にすることにより、
誰でもデータを追加/修正できるようにする</li>
- - <a href="https://Scrapbox.io/GitHelp">Scrapbox</a>を利用
+ - <a href="https://Scrapbox.io/HelpLine">Scrapbox</a>を利用
<li>ユーザが指定したパラメタはそのまま利用して実行に使う</li>
- ユーザが「4」「時間」などと指定すると「時刻を4時にセットする」のようなものを提案して実行可能にする
<li>多少の誤入力を許す</li>
</ul>
この結果、<b>やりたいことの一部を漠然と言えばすぐ実行できる</b>ようになるのが理想である。
</p>
<h3>利用例</h3>
- Gitに関連するタスクのキーワードやパラメタを指定して
- <code>githelp</code>を起動すると
- 候補のリストが表示され、
+ タスクのキーワードやパラメタを指定してCtrl-Jを押すと
+ <code>helpline</code>が起動して候補のリストが表示され、
カーソルで選択すると実行される。
<ul>
- <li><code>$ githelp 2 README</code>のように引数を指定して起動すると以下のような候補リストが提示される</li>
+ <li><code>$ 2 README</code>と入力してからCtrl-Jを押すと
+ 以下のような候補リストが提示される</li>
- <img src="https://gyazo.com/6cc87cef5f28185199074b61716454de.png" width=500>
-
+ <img src="https://gyazo.com/806cb4c2c14781465949ec3aa85d563b.png" width=500>
<p></p>
<li>カーソルで選択してリターンを押すと実行される</li>
- <img src="https://gyazo.com/75c14885944c33f2671474b008120262.png" width=500>
+ <img src="https://gyazo.com/b72f97a2664d504c5465fd11bac92184.png" width=700>
</ul>
<a name="install"><h3>インストール</h3></a>
-
- <pre>
- % gem install githelp </pre>
-
+
<ul>
- <li>対話的処理のために<a href="https://github.com/peco/peco">peco</a>が必要</li>
- <ul>
- <li>Macだと<code>% brew install peco</code>でインストール可能</li>
- <li>Linuxなどの場合<a href="https://github.com/peco/peco/releases">こちら</a>のファイルからインストール (yumなどでは入らない)</li>
- </ul>
+ <li> <code>gem</code>でHelpLineをインストール
+ <pre>
+% gem install helpline</pre>
+ </li>
+ <li> <code>~/.zshrc</code>に以下の記述を追加
+ <pre>
+function run-help() {
+ helpline "${BUFFER}" < $TTY
+ BUFFER=$(cat /tmp/helpline.cmd)
+ CURSOR=${#BUFFER}
+ zle redisplay
+}
+zle -N run-help
+bindkey "^j" run-help</pre>
+ </li>
</ul>
<h3>実装</h3>
-
<ul>
<li><a href="https://github.com/masui/expand_ruby">re_expand</a>
という正規表現展開ライブラリを利用</li>
<li><a href="https://Scrapbox.io/GitHelp">Scrapbox</a>にあらゆる情報を書いておく</li>
<br>
- <img src="https://gyazo.com/b4ba42a96617c65db32020eb1ea19bf3.png" width=450>
+ <img src="https://gyazo.com/cd1529fe082c57d4295e8660ba3cb932.png" width=550>
<li>
様々なタスクの説明と実際の操作を組にして記述しておき、
ユーザが与えたキーワードやパラメタにマッチするものを
リストして実行可能にする</li>
<li>行頭に<code>$</code>がある行でタスクの説明を記述し、行頭に<code>%</code>がある行で実行コマンドを示す</li>
@@ -257,26 +259,14 @@
という翻訳が行なわれていることになる。
こういうことは生活で非常に多いので
翻訳作業があまり気にならないものなのかもしれないが、
そういう「翻訳」は少ない方が良いのは確かだろう。
</li>
- <li>そういえば先日「らくらくホン」画面に出てくる鬱陶しい「羊」を消す方法が全くわからなかったのだが、
- あれは「マチキャラ」と呼ばれるものなので
- 「マチキャラ」を消すという操作が必要だった。
- お前はMSのイルカか。
- 「羊 消す」とか「消す」とかで消せるべきだろう。
- githelpでは <code>$ githelp 削除</code> と入力すれば削除関連で何ができるのかわかるだろうし、
- <code>(鬱陶しい|不快な)羊を(消す|殺す)</code>
- のようなエントリをユーザが足すこともできるだろう。
- </li>
- <img src="http://service.smt.docomo.ne.jp/site/iconcier/img/iconcier_ptl_cha_img01.png" width=300>
- <li>というわけで<b>Gitは単なる適用例であり、広い範囲で使いたいと思っている。</b></li>
</ul>
<h3> 注意</h3>
<ul>
- <li><code>githelp</code>コマンドはGitリポジトリのディレクトリで実行する必要がある</li>
<li><a href="https://github.com/masui/expand_ruby">re_expand</a>の実装が富豪的なので
大きなリポジトリだと不具合があるかも</li>
<li>データが全然足りない... 特にリモートリポジトリ関連のデータは皆無だが、
ローカルだけでも充分複雑なのでとりあえずローカル処理の情報を充実させたい</li>
<li>旧版は<a href="https://github.com/masui/GitHelp_old">こちら</a>