- Neovim 0.5
- With packer.nvim
use {
"numtostr/FTerm.nvim",
config = function()
require("FTerm").setup()
end
}
- With vim-plug
Plug 'numtostr/FTerm.nvim'
" Somewhere after plug#end()
lua require('FTerm').setup()
-
require('FTerm').setup()
- To configure the terminal window. -
require('FTerm').open()
- To open the terminal -
require('FTerm').close()
- To close the terminalActually this closes the floating window not the actual terminal buffer
-
require('FTerm').toggle()
- To toggle the terminal
Options can be provided when calling setup()
.
cmd
: Command to run inside the terminal. (default:os.getenv('SHELL')
)
NOTE: This is not meant for edit in the default terminal. See custom terminal section for use case.
-
dimensions
: Object containing the terminal window dimensions.The value for each field should be between
0
and1
height
- Height of the terminal window (default:0.8
)width
- Width of the terminal window (default:0.8
)x
- X axis of the terminal window (default:0.5
)y
- Y axis of the terminal window (default:0.5
)
-
border
: Neovim's native window border (default:single
). See:h nvim_open_win
for more configuration options.
require'FTerm'.setup({
dimensions = {
height = 0.8,
width = 0.8,
x = 0.5,
y = 0.5
},
border = 'single' -- or 'double'
})
-- Keybinding
local map = vim.api.nvim_set_keymap
local opts = { noremap = true, silent = true }
map('n', '<A-i>', '<CMD>lua require("FTerm").toggle()<CR>', opts)
map('t', '<A-i>', '<C-\\><C-n><CMD>lua require("FTerm").toggle()<CR>', opts)
By default FTerm
only creates and manage one terminal instance but you can create your terminal by using the underlying terminal function and overriding the default command.
Below are some examples:
- Running gitui
local term = require("FTerm.terminal")
local gitui = term:new():setup({
cmd = "gitui",
dimensions = {
height = 0.9,
width = 0.9
}
})
-- Use this to toggle gitui in a floating terminal
function _G.__fterm_gitui()
gitui:toggle()
end
Screenshot
- Running bpytop
local term = require("FTerm.terminal")
local top = term:new():setup({
cmd = "bpytop"
})
-- Use this to toggle bpytop in a floating terminal
function _G.__fterm_top()
top:toggle()
end
Screenshot
vim-floaterm for the inspiration