💭
初めてVim Pluginを作った話し
キタ━(゚∀゚)━!祝初Zenn🎉🎉🎉
特になにがすごいこともないけど、
最近(でもないか)Githubとかのリポジトリで開発してて、Slackとかでsrcを共有する機会って多いかなと。リモートだから余計に。
そんな時いちいちGithub上で該当src探してとかやってられないので、サクッと対象行をURLに変換してくれるプラグインを作ってみた!!
(もしかしたら同類プラグイン既にありそうだけど、あえて探してない、Vimプラグイン作ってみたかったんだ)
で、できたのがこれ。
中身はすごいシンプルで、VimScriptで対象行やファイルパス、GitコマンドでコミットやリモートリポジトリのURL取得して変換、からのyankしてるだけ。
OSクリップボードとvimヤンクを共有しておけば、実行してSlackへペーストで共有できる!!!
インストール
(割愛🙇)
使い方
- 共有したいファイル開いて
- 共有したい行へカーソルを移動させて
-
:ShareLine
実行
これで該当行のURLがyankされる。
(一応)解説とか
- リモートリポジトリのURL取得
-
git remote get-url origin
で取得-
origin
以外への対応は今度考えよう
-
-
- vimscriptからgit(コマンド)を呼び出す
-
system('..commands...')
でコマンド実行結果が返ってくる - (gitコマンドは)必ず改行が入るから末尾改行トリムが必要
-
- ファイルパス取得
- vim上でcwdが変更できるのでちょっと工夫した
- a. gitルートディレクトリまでのフルパス取得:
git rev-parse --show-toplevel
- b. カレントファイルのフルパス取得:
expand("%:p")
- ↑b. から a. を削除でルートディレクトリ名を除くファイルパスになる
(シンプル過ぎて書くこと無い、、💦)
あとがき
前からVimプラグイン書いてみたいなーと思ってて、ちょうど時間と適当なネタができたので、やってみた
簡単なものなら全然難しくない。VimScriptも違和感なくすごいシンプルに動く。
またなにかネタできたら作ってみます。
これで誰かが少しでも楽しい開発ができたら幸せです。
良いVimライフを🤘
Discussion