He estado usando FileChangedRO
por un tiempo ahora para obtener automáticamente archivos al comenzar a editarlos y he encontrado que la advertencia W12 también es molesta. El problema es que la edición p4 actualiza los atributos del archivo para eliminar el indicador de solo lectura. Si como parte de la edición inicial también cambias el archivo, Vim ve esto como un conflicto ya que ya no es de solo lectura. Aquí está la solución que uso que es un poco más conservadora sobre el uso de FileChangedShell
en caso de que el archivo haya sido cambiado externamente por algún otro 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
Podría ser que a veces el archivo tiene en realidad cambiado? P.ej. si no tiene abierta la revisión de encabezado en VIM, un abrir para editar realmente intentaría reemplazar su archivo con el último. –
El comando que estoy usando, 'p4 edit', no se sincronizará con una revisión diferente de ese archivo, sin indicarlo explícitamente. El archivo solo se cambiaría si me sincronizara explícitamente con Vim. –