Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

よく使うファイルをすぐ編集できるGitプラグインを作ってみた

$
0
0

普段よくやっていることをちょっとしたエイリアスにしていたんだけど、Gitプラグインを作って公開してみたくなったのでやってみた
ちょっと汎用化が足りないので、需要があるかは謎

概要

git管理下でよく編集するファイルをリストアップしておき、そのリストをpercolで絞り込みサクっと編集する
git管理下であればどこで実行しても正しいファイルパスで編集できる

動作環境

pythonは2.7で動作を確認した
3系での動作は未確認

インストール

git-quickedit

wget 'https://raw.githubusercontent.com/suzuki-hoge/dev-note/master/git-quickedit/git-quickedit'

上記の方法等で取得したファイルをパスの通った場所に置いてください
git-xxxという実行ファイルをパスの通った場所に置くと、git xxxで実行できます

percol

sudo pip install percol

pipを用いない方法は公式を参照してください

パスリスト

よく使うファイル名をテキストで管理します

パス

特に明記が無い場合は~/.git_quickeditと言うファイルを用います

リポジトリ毎に変更したい場合は以下の様に.git/configに追記してください

git config quickedit.pathlist /Users/xxx/project-xxx/Dropbox/.git_quickedit

リポジトリ毎ではなくグローバルなパスリストを設定する場合は以下の様に~/.gitconfigに追記してください

git config --global quickedit.pathlist /Users/xxx/Dropbox/.git_quickedit

パスリスト検索は以下の順で行われます

  1. リポジトリ固有の.git/configの設定場所
  2. グローバルの~/.gitconfigの設定場所
  3. ~/.git_quickedit

また、指定されたパスに実ファイルが見つからなかった場合は新規作成を促すガイドが表示されます

内容例

.github/ISSUE_TEMPLATE.md
.github/PULL_REQUEST_TEMPLATE.md
.github/CONTRIBUTING.md
.git/config
.gitignore
README.md

僕はgithubのルールに則ったテンプレートファイルや良く触るファイルを定義しました
他には.git/hooks/pre-pushなんてフックスクリプトとかを列挙しておいても良いかもしれません

コマンド

git template help

ヘルプを表示する

help.png

git template list

パスリストの参照をする

list.png

git template manage

パスリストの編集をする

manage.png

git template new

リストの中の実在しないパスのみpercolで選択し、vimで編集する

new01.png
new02.png

git template write

リストの中の実在するパスのみpercolで選択し、vimの無名バッファで編集する
writeは実在するファイルを開き編集するが、保存することは出来ない

write01.png
write02.png
write03.png

git template edit

リストの中の実在するパスのみpercolで選択し、vimで編集する

保存可能な点以外はwriteと同じ

やってみたかったこと

  • 丁寧な例外処理
  • git.configを使った設定
  • 公開と配布
  • インストール数を知る
    • GitHubのTraficと言う画面でわかるらしい

対応しなかったこと

  • エディタはvim固定じゃあなくてgitで使うエディタを参照してきても良かった
    • とりあえず自分用なのでvim固定
    • いつか対応するかも
  • percolの部分も同様にpecoと選べても良かった
    • 未対応理由は同上

感想

IssueやPRをブラウザで書くときにどうしてもvimで書きたくて作った
要はwriteが一番やりたかったことで、他のはプラグインとしての体裁を保つためのおまけ

何にせよ晒すと思うとこういう場合の終了コードは普通どうなんだろう?とか色々既存品読んだりして勉強にはなった


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>