Ming Lei wrote:

> I have a basic question about vim internal. Let me use an example to
> describe:
> 
> Say I have a text file of 20Mbytes. I use VIM to insert 3 characters at
> offset 1024 bytes from the beginning of the file and then I save the
> file. My question is: how does VIM handle the file write and save? Does
> VIM rewrite the whole file back to disk/file system? Can anyone describe
> the procedure that VIM employs at the granularity of the system call?

Vim always writes the whole file.  Most systems allow overwriting
halfway a file, but inserting halfway a file is rare (I can't name a
system that supports this).

Anyway, Vim wants to keep the original file so long as writing isn't
finished, to avoid the risk that a system crash results in neither the
original or the new file.

-- 
Nobody will ever need more than 640 kB RAM.
                -- Bill Gates, 1983
Windows 98 requires 16 MB RAM.
                -- Bill Gates, 1999
Logical conclusion: Nobody will ever need Windows 98.

 /// Bram Moolenaar -- [EMAIL PROTECTED] -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\        download, build and distribute -- http://www.A-A-P.org        ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

Reply via email to