local uv = vim.loop
local readall = function(path, callback)
uv.fs_open(path, "r", 384, function(open_err, fd)
assert(open_err == nil, open_err)
uv.fs_stat(path, function(stat_err, stat)
assert(stat_err == nil, stat_err)
uv.fs_read(fd, stat.size, 0, function(read_err, data)
assert(read_err == nil, read_err)
assert(#data == stat.size)
uv.fs_close(fd, function(close_err, success)
assert(close_err == nil, close_err)
assert(success)
callback(data)
end)
end)
end)
end)
end
readall("/tmp/seq30", function(data)
for _, line in ipairs(vim.split(data, "\n")) do
print(line)
end
end)
贴出来给大家瞅瞅啊。
其实就一个 io.lines(path),写完上面这篇代码我不由得犹豫,我就写个小插件,有必要强上异步吗?
还只是个这么简单的需求。
( vim.loop 是 neovim 提供的 libuv/luv 访问入口)