Normalmente, in realtà non modificare un file in vim. Se si esegue vim foo
, modificare, scrivere e uscire, vim scollega foo
e crea un nuovo file e un nuovo collegamento denominato foo
. Ma, se il file ha più di un collegamento, allora vim
modifica effettivamente il file. Ad esempio:Modifica un file sul posto in vim
$ ls -i foo
19428852 foo
$ vi foo
$ ls -i foo
19428857 foo
$ ln foo bar
$ vi bar
$ ls -i bar
19428857 bar
Ho cercato un modo per modificare effettivamente un file e sembra che ci siano due scelte. Utilizzare ed
o utilizzare vim
ma assicurarsi che vi siano almeno due collegamenti al file prima di modificare. Suppongo che la domanda sia accademica, in quanto non importa che Vim crei un nuovo file se c'è un solo link, e vim sembra fare la cosa giusta se i collegamenti vengono creati mentre il montaggio è in corso, ma sono curioso :
è possibile fare vim modificare sempre il file, e non crearne uno nuovo?
Alcuni motivi per cui si fa la differenza ... vantaggio di creare un nuovo file e scambiare il link: impedisce altri programmi di vedere un file parzialmente scritta. Vantaggio di scrivere il file al suo posto: il programma fileschaged (che usa fam) sembra vedere prima il cambiamento (immediatamente, contro 6 secondi circa quando il file viene cancellato e il link scambiato, per qualche motivo ... questo è discutibilmente una idiosincrasia in fam o fileschanged) –