Chrome で開いているタブの URL をキーボード操作だけで Markdown 形式にしてコピーする

日常的に Markdown を書いていると現在 Chrome で開いているタブを Markdown のリンクとしてクリップボードに保存したくなる場面が多々ある。

今まで、クリップボードに保存した URL を Markdown に変換する alfred workflow を作ったり、ブックマークレットを作ってみたりしたけどしっくりこなくて、結局 Copy as Markdown という Chrome 拡張を使うようになっていた。

chrome.google.com

この Chrome 拡張もマウス操作が必要という点で不満はあったのだけど、 alfred workflow と違って Chrome のセッションを使える(ログインが必要なページも扱える)し、ブックマークレットもマウス操作+キーボード操作が必要であることを考えると、ダメななりに最良なのだった。

Chrome 拡張にキーボードショートカットを設定できる

しかし、最近ふとした拍子に Chrome の拡張機能にショートカットを設定できることに気がついた。

f:id:yuku_t:20170605110521p:plain

  • chrome://extensions/ にアクセスする
  • 一番下にある「キーボードショートカット」を選択する

これを使うと色々な Chrome 拡張をボタン一つで呼び出すことができる。例えばはてブ拡張を表示することもできる。わざわざ B! ボタンをクリックしなくていいのだ。

Copy as Markdown にキーボードショートカットをあてる

というわけで、この機能を使って Copy as Markdown にキーボードショートカットを割り当てることで、ボタン一つで完結することができるようになった。めでたい  🎉

ちなみに「Command+D」に割り当てることにした。デフォルトでこのボタンにはブラウザの「ブックマークに追加」機能が割り当てられているが、ブラウザのブックマークを滅多に使わないのと、 textarea に入力中に英かな変換したときに誤操作でモーダルが表示されてしまいストレスに感じることがあったから。ブラウザデフォルトのキーバインドより Chrome 拡張むけのキーバインドの方が強くてよかった。

zplug と tpm を導入して hammerspoon を自動更新するようにした

どうもブログの更新が滞ってしまう。日常的に行っていることをトリガーにしてブログを書くようにすればもっと書こうという気になるだろう。

というわけで dotfiles を更新したらその内容を書き出すようにしてみようと思う。(Qiitaに書こうかとも思ったけど、個人的な話題だし個別の何かの説明とかじゃないのでブログに書くことにする)

ちなみに僕の dotfiles は以下。dotfiles の管理そのものには特別なツールは使っていない。

github.com

zplug を使い始めた

これまでも zaw や zsh-completions などの zsh プラグインは使っていたが、すべて git submodules を使って管理していた。2010 年くらいに oh-my-zsh を使って手痛い目にあってから zsh のプラグインマネージャ的なものを使うことに抵抗感を覚えるようになってこういう素朴な運用になったのだけど、さすがに 2017 年ならいいのがあるだろうと思い一念発起して探してみることにした。

調べた感じ世の中的には antigen がよく使われるらしい。Web+DB Press vol.83 (くらい)の zsh 特集でもこれを使っていた。でも

Antigen is to zsh, what Vundle is to vim.

と README に書かれていて、 Vundle があまり好きになれなかった身なので、なんか引っかかる。vim-plug くらいのシンプルさがいいよ。

というわけでもう少し探索したところ zplug を見つけた。 README に

  • 🌺 It was heavily inspired by vim-plug, neobundle.vim and the like.

と書いてある。作者の id:b4b4r07 さんは Qiita でもお世話になっているのでこれを使ってみることにする。 zplug にして今まで zshrc の一番最後で読み込んでいた zsh-syntax-highlighting を好きなところで宣言できるようになったのが地味な進歩。インストール時のアニメーションがかっこいいのもなんか嬉しい。

tpm 使い始めた

zplug の使い方を調べる過程のどこかで tpm の存在を知る。いつの間に tmux にプラグイン機構が入ってたんだ。zsh でプラグインマネージャを導入するんだからついでにこっちも入れてみようと思って導入することにした。特に競合は調べていないけど、たぶんこれしか無いだろう。

色々な便利プラグインがあるみたいだけど、一度に新しいものを導入しても結局使いこなせなくなってしまうので、ひとまず新しい機能を追加するプラグインは 1 つにとどめて、他は今まで .tmux.conf に自分で書いていた設定を置き換えてくれるやつだけにしておいた。

tpm の README をみたらキーバインドでプラグインをインストールする方法が書かれていたけど、更新時に dotfiles が更新されたら自動的にインストールして欲しかったので dotfiles-sync (dotfiles を同期する自前のコマンド)の中で明示的に実行するようにした。

上で書かなかったけど zplug も同様にインストールするようにした。(綺麗な git コミットが無いので割愛した)

hammerspoon を自動更新するようにした

macOS Sierra にしてから hammerspoon にずっとお世話になっている。hammerspoon 以外で触れる機会がないけど Lua 悪くないなって思う。

hammerspoon でだいたいうまくいくんだけど、たまに設定がバグってしまうことがあって、その都度メニューバーから Reload Config を選択していた。流石に面倒なので調べたら公式ドキュメントにそれにキーバインドを当てる方法が書かれていた。ということでそれを追加した。

で、その公式ドキュメントの次の項目が $HOME/.hammerspoon 以下を監視して、 Lua スクリプトに変更があったら自動的にリロードするというものが書かれており、明らかに良さそうだったのでそれも導入した。

その他

ここに書いた以外にも

  • vim で syntastic をやめて ale を使い始めた
  • vim で easy-motion のバージョンを上げたら色々と捗るようになった

などの変化があった。機会があれば書く。

YARD に --fail-on-warning オプションを追加する PR を送った

久しぶりに public リポジトリに対して PR を送ったので記録として日記を書く。

github.com

YARD は YARD 記法と呼ばれるルールでコメントを書いて付属のコマンドを実行すると綺麗なドキュメントを生成してくれる Ruby 界隈では割りとよく使われるツール。便利なので僕もよく利用するのだけど、 YARD 記法に誤りがあるともちろん出力結果がおかしくなる。正しく書けているか CI でチェックして、もし間違った書き方をしていたらテストが落ちてほしい。

しかし、 YARD はなぜかパース中に変な文字列を発見しても [warn] と stderr に出力するだけで status code は 0 で終了する。多くの CI サービスは status code を見るので、これではテストが通ってしまう。しかもヘルプメッセージを調べもそれっぽいオプションがない。マジか。

と思ったら 機能要望の issue だけが作られた状態だった。しかも “Easy” ラベルがつけられている。

面倒だなと思いつつも、いろいろなところで使っているツールでもあるし、間違いなくあった方がいい機能だと思うので一念発起して書くことにした。まぁ数年前に YARD のコードリーディングをしたことがあって、だいたいどこで何が起こっている分かっていたことも大きい。

結果としては途中 yujinakayama にテストの書き方を相談したりしつつ 1 時間くらいで書き上がって送信。マージされるといいな。