【コマンドライン】unixコマンドやプログラミング言語の文法をできるだけググらない【Scrapbox, Pecoの活用】


unixコマンドやプログラミングの文法など、 1回ググったものを何度もググりたくない

(0) tldr

tldr-pagesというOSSがあってtldrというコマンドを作っています。

tldr command_nameと打つと簡単なコマンドの説明が表示される。
これで、 忘れたunixコマンドやgitのコマンドはだいたいokです。

要するにtldrはman(マニュアルを表示する)コマンドの要約(簡易)版です。
インストールは、 https://github.com/tldr-pages/tldr#clients から(私はBash clientsを使っています)

(1) Scrapboxとpecoの組み合わせ

tldrではコマンドの説明しかありません。 これをプログラミングの文法などでも同様にできたらいいということでScrapboxとpecoでtldrのオリジナル版(っぽいもの)を自分で作ります。

環境(必要なもの)

  • Peco
    • コマンドライン上で入力するたびに(incrementalに)grepをするツールです
    • 似たような動作をするものならok
  • Scrapbox

    • オンラインのWiki(Document)作成ツールです。 Scrapbox.io
    • 個人的に大好きなのでこれで。
    • ローカルにテキストファイルでも全く問題ありません。 が、 複数のPCで利用する場合だと何かしらの工夫は必要です。
  • ruby

    • 今回はScrapboxのapiのjsonを扱うために使用

やり方(実例)

実際に自分が作っているScrapboxのプロジェクト
コマンドは👇で、 適当な名前をつけて(aliasを設定して)使っています。

curl -s https://scrapbox.io/api/pages/tldr-cmd/$(curl -s https://scrapbox.io/api/pages/tldr-cmd?limit=1024 | ruby -r json -e ' json =JSON.parse($stdin.gets) ; json["pages"].each {|e| puts e["title"]}' | peco | ruby -r uri -e "puts URI.escape(STDIN.read.chop)")/text | sed -e "/^#/d" -e '1s/^/##/' -e '1s/$/##/' -e "/code:/d"  -e "s/^\\\$//" ; echo " "

あとは、 好きなようにページを作成していくだけです。


補足
  • ページが多くなっても大丈夫か(スケールするか)気になっていたが、 少なくとも3桁ページは問題ありません。
  • Scrapboxの利用としては、 本来の魅力を発揮していません。
  • tldrのように色をつけたりはしていません(面倒なので)
  • Scrapbox(ブラウザ)だけでもいいですが、 コマンドラインでやることでstepが一つくらい?少ないはずです。
  • 当たり前のように書いていますが、 1回はググる必要あるし自分で書く手間はあります。
  • 個人的には使用頻度高いので、 ↓で書いたのをまとめ直しQiitaにしました。 興味があればこちらも。