aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/lua/vim.lua
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2019-08-19 01:14:06 +0200
committerJustin M. Keyes <justinkz@gmail.com>2019-08-27 21:19:10 +0200
commitf99caa755c84788f0e2e9959ccad7c4539fb4927 (patch)
treedf0d5c516b884517f0ce666522bb8b17122aac0c /src/nvim/lua/vim.lua
parentabd55be19a2f1443cfffb8d4953f86f32efe40aa (diff)
downloadrneovim-f99caa755c84788f0e2e9959ccad7c4539fb4927.tar.gz
rneovim-f99caa755c84788f0e2e9959ccad7c4539fb4927.tar.bz2
rneovim-f99caa755c84788f0e2e9959ccad7c4539fb4927.zip
paste: use chansend() in Terminal-mode
Diffstat (limited to 'src/nvim/lua/vim.lua')
-rw-r--r--src/nvim/lua/vim.lua12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/nvim/lua/vim.lua b/src/nvim/lua/vim.lua
index e20fc1472e..49eb99c81a 100644
--- a/src/nvim/lua/vim.lua
+++ b/src/nvim/lua/vim.lua
@@ -95,15 +95,23 @@ end
-- Default paste function.
local function _paste(data)
+ local call = vim.api.nvim_call_function
+ local mode = call('mode', {})
+ if mode == 't' then
+ call('chansend',
+ {vim.api.nvim_buf_get_option(0, 'channel'), data})
+ return true
+ end
+
-- local eof = (data == {''})
- local curline = vim.api.nvim_call_function('line', {'.'})
+ local curline = call('line', {'.'})
vim.api.nvim_buf_set_lines(
0,
curline,
curline,
false,
data)
- vim.api.nvim_call_function(
+ call(
'cursor',
{curline + #data, 9999999})
-- TODO: do not redraw (slow!) until paste is finished.