mirror of
https://github.com/neovim/neovim.git
synced 2025-09-06 19:38:20 +00:00
paste: support replace mode (#11945)
* paste: support replace mode * Clean up Co-authored-by: Jesse Bakker <git@jessebakker.com>
This commit is contained in:
@@ -212,6 +212,18 @@ do
|
||||
vim.api.nvim_put(lines, 'c', true, true)
|
||||
-- XXX: Normal-mode: workaround bad cursor-placement after first chunk.
|
||||
vim.api.nvim_command('normal! a')
|
||||
elseif phase < 2 and mode == 'R' then
|
||||
local nchars = 0
|
||||
for _, line in ipairs(lines) do
|
||||
nchars = nchars + line:len()
|
||||
end
|
||||
local row, col = unpack(vim.api.nvim_win_get_cursor(0))
|
||||
local bufline = vim.api.nvim_buf_get_lines(0, row-1, row, true)[1]
|
||||
local firstline = lines[1]
|
||||
firstline = bufline:sub(1, col)..firstline
|
||||
lines[1] = firstline
|
||||
lines[#lines] = lines[#lines]..bufline:sub(col + nchars + 1, bufline:len())
|
||||
vim.api.nvim_buf_set_lines(0, row-1, row, false, lines)
|
||||
else
|
||||
vim.api.nvim_put(lines, 'c', false, true)
|
||||
end
|
||||
|
Reference in New Issue
Block a user