Sto usando da un po 'il FileChangedRO
per verificare automaticamente i file quando si inizia a modificarli e ho trovato fastidioso anche l'avviso W12. Il problema è che p4 edit aggiorna gli attributi del file per rimuovere il flag di sola lettura. Se come parte della modifica iniziale cambi anche il file, Vim lo vede come un conflitto poiché non è più solo in lettura. Ecco la soluzione che uso, che è un po 'più prudente sull'uso di FileChangedShell
nel caso in cui il file sia stato modificato esternamente per qualche altro motivo.
let s:IgnoreChange=0
autocmd! FileChangedRO * nested
\ let s:IgnoreChange=1 |
\ call system("p4 edit " . expand("%")) |
\ set noreadonly
autocmd! FileChangedShell *
\ if 1 == s:IgnoreChange |
\ let v:fcs_choice="" |
\ let s:IgnoreChange=0 |
\ else |
\ let v:fcs_choice="ask" |
\ endif
fonte
2009-12-18 06:45:44
Potrebbe essere che a volte il file è in realtà cambiato? Per esempio. se non avessi la revisione della testa aperta in VIM, un'apertura per la modifica proverebbe effettivamente a sostituire il tuo file con quello più recente. –
Il comando che sto usando, 'p4 edit', non si sincronizzerà con una revisione diversa di quel file, senza dirlo esplicitamente. Il file verrà modificato solo se sinceramente sincronizzato dietro a vim's back. –