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

vim-auto-save で git commit 時の自動保存を無効化する

$
0
0

はじめに

Vim で複数ペインを開いて開発していると、:wとかを打って保存するのが億劫になってきて、vim-auto-saveという自動保存プラグインをインストールしました。

いい感じに使えていたのですが、git commit時のエディタを Vim にしていたこともあり、コミット時にも自動保存が走り、意図しないタイミングでコミットしてしまうことが何度かあったので、回避方法を調べてみました。

tl;dr

取り急ぎ、こちらで対応できました。

.vimrc
if expand("%:p")=~'COMMIT_EDITMSG'letg:auto_save=0elseletg:auto_save=1endif

git commitで編集できるコミットメッセージのファイル名が COMMIT_EDITMSGなので、ファイルパスにその文字列が含まれている場合は autosave を無効にする処理を .vimrcに入れました。

ちょっと限定的すぎるとは思うのですが、個人利用では今のところ困ってないので、この形にしています。

auto_save_presave_hook を使う方法(うまくいっていない)

調べてみると、下記 issue で話題に上がっていた、保存前にフックを入れる処理があるようで、こちらが使えないかも試しました。
しかし、うまく動いてくれず、autosave が走ってしまいました。。

https://github.com/907th/vim-auto-save/issues/33

.vimrc
letg:auto_save_presave_hook='call AbortIfGitCommit()'function! AbortIfGitCommit()if&filetype!='gitcommit'letg:auto_save_abort=1endifendfunction

gitcommitの場合なら、autosave を abort するフラグを立てるという関数を、保存前のフックに設定しておく、というやりかたで書いてみたのですが、うまくフックしてくれず。。
別途時間があったら動かす方法を調べてみようと思います。

参考情報


Viewing all articles
Browse latest Browse all 5608

Trending Articles



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