You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
First of all thank you very much for the great plugin!
I am creating a terminal instance where a pass a certain custom command as per the docs: in particular a minimal reproducible example can be thought of as
This works fine when toggling the terminal in normal mode, however whilst in terminal mode (with the command already toggled and the custom terminal already active) the only way to close it is via q rather than via <A-g> again. If I explicitly define a command in terminal mode as shown
I get exceptions of "attempt to index a boolean value" (also if I fully qualify the path to the custom function fully requiring the whole module). I wonder if the object fterm:new() really returns a toggleable instance, or perhaps I am merely making silly grammar mistakes while defining the keymap in terminal mode?
The text was updated successfully, but these errors were encountered:
gennaro-tedesco
changed the title
toggle custom terminal
toggle custom terminal: close the toggle
Dec 27, 2022
I was getting a very similar issue, but I managed to make the following work. Basically, I'm creating an autocmd that creates a keymap for each filetype, which I'm using as a proxy for each FTerm instance.
local function create_autocmd(pattern, key, term)
vim.api.nvim_create_autocmd("FileType", {
pattern = pattern,
callback = function(event)
local t = term
vim.keymap.set("t", key, function() t:close() end, { buffer = event.buf, silent = true })
end,
})
end
I use <C-Bslash> to toggle the default terminal like below (keymap for n mode is created separately):
local fterm = require("FTerm")
fterm.setup(opts)
create_close_autocmd("FTerm", "<C-Bslash>", fterm)
And I use <C-g> to toggle the GitUI terminal instance, which is created when the key is first used.
local gitui = nil
local function toggleGitUI()
if gitui == nil then
local filetype = "FTerm_GitUI"
gitui = require("FTerm"):new({
ft = filetype,
cmd = "gitui",
dimensions = {
height = 0.9,
width = 0.9,
},
})
create_close_autocmd(filetype, "<C-g>", gitui)
end
gitui:toggle()
end
I'm creating keymaps for n and t modes separately only because I used lazy.nvim to create the keymaps for Normal mode, and if you don't need that triggering, you could probably simplify this. Hope this helps.
First of all thank you very much for the great plugin!
I am creating a terminal instance where a pass a certain custom command as per the docs: in particular a minimal reproducible example can be thought of as
This works fine when toggling the terminal in normal mode, however whilst in terminal mode (with the command already toggled and the custom terminal already active) the only way to close it is via
q
rather than via<A-g>
again. If I explicitly define a command in terminal mode as shownI get exceptions of "attempt to index a boolean value" (also if I fully qualify the path to the custom function fully requiring the whole module). I wonder if the object
fterm:new()
really returns a toggleable instance, or perhaps I am merely making silly grammar mistakes while defining the keymap in terminal mode?The text was updated successfully, but these errors were encountered: