mirror of
https://github.com/neovim/neovim.git
synced 2024-12-23 20:55:18 -07:00
fix(termcap): use tmux passthrough sequence when running in tmux (#26281)
tmux intercepts and ignores XTGETTCAP so wrap the query in the tmux passthrough sequence to make sure the query arrives at the "host" terminal. Users must still set the 'allow-passthrough' option in their tmux.conf.
This commit is contained in:
parent
79b6ff28ad
commit
b7831c7f99
@ -34,10 +34,6 @@ function M.query(caps, cb)
|
|||||||
local seq =
|
local seq =
|
||||||
vim.text.hexdecode(v):gsub('\\E', '\027'):gsub('%%p%d', ''):gsub('\\(%d+)', string.char)
|
vim.text.hexdecode(v):gsub('\\E', '\027'):gsub('%%p%d', ''):gsub('\\(%d+)', string.char)
|
||||||
|
|
||||||
-- TODO: When libtermkey is patched to accept BEL as an OSC terminator, this workaround can
|
|
||||||
-- be removed
|
|
||||||
seq = seq:gsub('\007$', '\027\\')
|
|
||||||
|
|
||||||
cb(cap, seq)
|
cb(cap, seq)
|
||||||
|
|
||||||
count = count - 1
|
count = count - 1
|
||||||
@ -54,6 +50,12 @@ function M.query(caps, cb)
|
|||||||
end
|
end
|
||||||
|
|
||||||
local query = string.format('\027P+q%s\027\\', table.concat(encoded, ';'))
|
local query = string.format('\027P+q%s\027\\', table.concat(encoded, ';'))
|
||||||
|
|
||||||
|
-- If running in tmux, wrap with the passthrough sequence
|
||||||
|
if os.getenv('TMUX') then
|
||||||
|
query = string.format('\027Ptmux;\027%s\027\\', query)
|
||||||
|
end
|
||||||
|
|
||||||
io.stdout:write(query)
|
io.stdout:write(query)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user