diff options
Diffstat (limited to 'lua/gabrielgio/term.lua')
-rw-r--r-- | lua/gabrielgio/term.lua | 28 |
1 files changed, 25 insertions, 3 deletions
diff --git a/lua/gabrielgio/term.lua b/lua/gabrielgio/term.lua index 0172fbe..0bd5675 100644 --- a/lua/gabrielgio/term.lua +++ b/lua/gabrielgio/term.lua @@ -1,7 +1,29 @@ local key = require("gabrielgio.key") +require("toggleterm").setup() + +local function isempty(s) + return s == nil or s == "" +end + +local lastCommand = "" + key.nnoremap("<C-n>", ":Neogit kind=replace<cr>") -key.nnoremap("<C-p>", ":ToggleTerminal<cr>") -key.tnoremap("<C-p>", "<C-\\><C-n>:ToggleTerminal<cr>") +key.nnoremap("<C-p>", ":ToggleTerm size=40 direction=float<cr>") +key.nnoremap("<C-l>", ":ToggleTerm size=100 direction=vertical<cr>") +key.vnoremap("<C-y>", ":ToggleTermSendVisualSelection<cr>") +key.nnoremap("<C-y>", function() + local user_input = vim.fn.input("$ ") + + if isempty(user_input) then + user_input = lastCommand + end + + if not isempty(user_input) then + vim.cmd(string.format("TermExec cmd='%s'", user_input)) + lastCommand = user_input + end +end) key.tnoremap("<Esc>", "<C-\\><C-n>") -key.tnoremap("<C-n>", "<C-\\><C-n>:Neogit kind=replace<cr>") +key.tnoremap("<C-p>", "<C-\\><C-n>:ToggleTerm<cr>") +key.tnoremap("<C-l>", "<C-\\><C-n>:ToggleTerm<cr>") |