git管理下で git-gutter.elが効果を発揮しないのが嫌なので
作りました。ちなみに git add -Nはとりあえず stagingするという
もので、後ほどちゃんと git addする表明みたいなものです。
ここでは明示的にコマンドを叩くようにしましたが、find-file-hook
あたりに引っ掛けるのも良いかと思います。その場合は git管理下で
あればというチェックが必要になるかと思いますので、そうしたい人は
そのように実装してみてください。
コード
(defun my/git-intent-to-add () (interactive) (save-buffer) (let* ((file (file-name-nondirectory (buffer-file-name))) (cmd (format "git add -N %s" file))) (unless (zerop (call-process-shell-command cmd)) (error "Failed: %s" cmd)) (message "Success: %s" cmd)) (git-gutter)) (global-set-key (kbd "C-x v N") 'my/git-intent-to-add)