[Linux][vim] samba上のファイルをvimで編集する時のtimestampの問題を回避する設定
どうも、samba上でvimでファイルを編集していると、変更してないのに変更されていると文句を言ってくる。
WARNING: The file has been changed since reading it!!! 警告: 読込んだ後にファイルに変更がありました!!!
こいつです。
ググってみたところ、sambaのtimestampまわりの問題のようなんだけど、
バグ報告はあるものの、だいぶ前に既に直っているとかで、closeされちゃったりしてて、なんかいまいちよくわからず。
回避できずにだいぶ放置してたんだけど…。
やっぱ、なんとかしようと思い、vimのマニュアルを読んでいると以下のものが使えそうな気がした。
- set autoread
- 変更を検知して読み直す
- autocmd
- イベントに関連付けてコマンドを実行できる
- checktime
- timestampのチェック
これらを利用して以下のように設定。
autocmd BufWritePost * sleep 1 autocmd BufWritePost * checktime set autoread
これで、一応回避できました。
sleep 1 を入れないと、どうもダメでした。
※本当は、samba側でなんとかしたいんだけども