🐢

vimで選択部分をGitHubのリンクとしてyankするプラグインを作った

2022/10/01に公開

資料を作るときに「そのコードってGitHubのどこにある?」と聞かれることが多くなっている気がしたので作りました。

image

https://github.com/Omochice/yank-remote-url.vim

使い方

  • YankRemoteURL

Normal Modeであればカーソル行、Visual Modeであれば選択している行をGitHubなどのリンクとしてyankします。
見ているファイルがgitの追跡対象外||gitのリポジトリのディレクトリにいない場合は失敗します。

  • yank_remote_url#yank_url(line1[, line2])

YankRemoteURLの関数版です。

  • yank_remote_url#generate_url(line1[, line2])

YankRemoteURLでyankされるURLを返す関数です。
open-browser.vimなどと組み合わせると良さそう。(個人的に試したわけではないので憶測ですが。)

より詳しい挙動についてはGitHubのREADME.mdか/doc/yank-remote-url.txtを参照してください。

注意事項

  • 初回実行時だけ同期処理でGitHubのURLを生成するのでほんの少し引っかかりを感じるぐらいの遅延があります

    • timer_start()を使えば改善できるかも
  • 対応しているのはGitHub, GitLab, GitBucketのみ

    • URLの仕様がどうなっているのかを調べるのが面倒だったので上記のみ対応です
    • もしかすると上記でもうまくURLが生成できないかもしれないです
      • gitlabのセルフホストなどはどうなるか調べきれていない

Discussion