As title. I’m learning Neovim’s terminal-emulator related API. To explain the problem I need to show you the code first. I have a Lua script like this:
local win = vim.api.nvim_get_current_win()
local buf = vim.api.nvim_create_buf(true, false)
local jobid
local chan = vim.api.nvim_open_term(buf, {
on_input = function(_, _, _, data)
if jobid then
pcall(vim.api.nvim_chan_send, jobid, data)
end
end,
})
local opts = {
-- height = vim.api.nvim_win_get_height(win),
height = 10,
-- width = true and 2 or vim.api.nvim_win_get_width(win),
width = 20,
pty = true,
on_stdout = function(_, data)
vim.api.nvim_chan_send(chan, table.concat(data, "\n"))
end,
on_exit = function(_, exit_code)
vim.api.nvim_chan_send(chan, '\r\n[Process exited ' .. tostring(exit_code) .. ']')
vim.api.nvim_buf_set_keymap(buf, "t", "<CR>", "<cmd>bd!<CR>", { noremap = true, silent = true})
end,
}
jobid = vim.fn.jobstart({ 'cat', '/path/to/this/test.lua' }, opts)
vim.fn.jobresize(jobid, 20, 10)
vim.fn.jobresize(jobid, 30, 20)
vim.fn.jobresize(jobid, 40, 30)
vim.api.nvim_set_current_buf(buf)
And the three calls of vim.fn.jobresize
doesn’t seem to change the width and height of the output being printed. I still got a much large width being used after running the script by :source
:
- As you can see from the image, it wraps at columns 85, and this is apparently not either
20
,30
,40
I have set usingjobresize
.