Skip to main content
Module

x/denops_std/function/mod.ts>writefile

📚 Standard module for denops.vim
Go to Latest
function writefile
import { writefile } from "https://deno.land/x/denops_std@v6.4.0/function/mod.ts";

When {object} is a List write it to file {fname}. Each list item is separated with a NL. Each list item must be a String or Number. All NL characters are replaced with a NUL character. Inserting CR characters needs to be done before passing {list} to writefile().

When {object} is a Blob write the bytes to file {fname} unmodified, also when binary mode is not specified.

{flags} must be a String. These characters are recognized:

'b' Binary mode is used: There will not be a NL after the last list item. An empty item at the end does cause the last line in the file to end in a NL.

'a' Append mode is used, lines are appended to the file:

:call writefile(["foo"], "event.log", "a")
:call writefile(["bar"], "event.log", "a")

'D' Delete the file when the current function ends. This works like:

     :defer delete({fname})

 Fails when not in a function.  Also see `:defer`.

's' fsync() is called after writing the file. This flushes the file to disk, if possible. This takes more time but avoids losing the file if the system crashes.

'S' fsync() is not called, even when 'fsync' is set.

 When **{flags}** does not contain "S" or "s" then fsync() is
 called if the 'fsync' option is set.

An existing file is overwritten, if possible.

When the write fails -1 is returned, otherwise 0. There is an error message if the file can't be created or when writing fails.

Also see readfile(). To copy a file byte for byte:

:let fl = readfile("foo", "b")
:call writefile(fl, "foocopy", "b")

Can also be used as a method:

GetText()->writefile("thefile")

Parameters

denops: Denops
object: unknown
fname: unknown
optional
flags: unknown

Returns

Promise<number>