% git status # Not currently on any branch. # Unmerged paths: # (use "git reset HEAD..." to unstage) # (use "git add/rm ..." as appropriate to mark resolution) # # both modified: file1 # both modified: file2 # no changes added to commit (use "git add" and/or "git commit -a")
この場合,file1とfile2を開きたいです.
ファイル名をコピペしたり,一個一個開いていくのは面倒なので,一発で開けるようにしました.
僕はファイル名をbothlist.pyにしています.これに実行権限をつけて,シンボリックリンクをパスの通ったディレクトリから張っています.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import popen2
import re
def extractBothModifiedFileName():
r, w, e = popen2.popen3('git status')
for line in r:
if not line.find('both modified:') is -1:
yield re.split('[\t ]*', line.strip())[-1]
r.close()
w.close()
e.close()
if __name__ == '__main__':
print(' '.join(extractBothModifiedFileName()))
Gistこのように使います.
% bothlist | xargs emacsclient
Pythonで書きましたが,Unixのコマンドを組みわせても達成できます.
Zshのコマンドとして呼び出せるようにしました.
.zshrcに以下を加えてください.
gbmec() {
git status | awk '/both modified:/{print $4}' | xargs emacsclient
}
Gist加えた後に
% source .zshrcを行えばgbmecコマンドが使用可能になります.
両コマンドとも,emacsclientの部分は好きなエディタに変更してください.
この状態で,bothlist | xargs emacsclient,もしくはgbmecを実行すると
こうなります.



0 件のコメント:
コメントを投稿