他のエディタ等で変更されたファイルを現在のバッファで上書き保存する

たとえばgitでpullなりrebaseなりしてファイルを更新した、けどやっぱり現在emacsのバッファ上に開いてるやつの方が正しいからそっちで上書きしたい、みたいな状況の時、
emacs上でそのままC-xC-sしようとしても (No changes need to be saved) って言われて保存できない。

仕方なく1文字変更して元に戻す
→このファイルは他の場所で変更されたけど本当に変更していいかい?
→yes
→保存
→このファイルは他の場所で変更されたけど本当に保存していいかい?
→yes

っていう手間をかけるのが面倒なので何かやり方ないか調べてみた。

How to force Emacs to save even if it thinks (no changes need to be saved) – Stack Overflow

(defun save-buffer-always ()
  "Save the buffer even if it is not modified."
  (interactive)
  (set-buffer-modified-p t)
  (save-buffer))

これだと (No changes need to be saved) が出ないので
> 仕方なく1文字変更して元に戻す
> →このファイルは他の場所で変更されたけど本当に変更していいかい?
> →yes
の部分を省略できる。
後半の確認ダイアログは省略できないけど、まあこれくらいはあった方がいい気もするしいいか。

 

コメントを残す

メールアドレスが公開されることはありません。