added functionality to easily replay last command
This commit is contained in:
@@ -2,22 +2,20 @@
|
|||||||
-- A library file with custom functions for cleaner code elsewhere
|
-- A library file with custom functions for cleaner code elsewhere
|
||||||
|
|
||||||
local C = {}
|
local C = {}
|
||||||
function C.runLastCommand()
|
function C.RunCommand(Command)
|
||||||
-- TODO fix implementation
|
-- TODO IMplement an autocompiler function based on context
|
||||||
local term = require("toggleterm.terminal").get(1)-- Get terminal ID 1
|
local tt = require("toggleterm")
|
||||||
-- Save position and buffer context
|
local command = string.lower(Command)
|
||||||
if term then
|
if command == "l" or command == "last" then tt.exec("clear && fc -e -\r") end
|
||||||
local original_window = vim.api.nvim_get_current_win()
|
if command == "c" or command == "compile" then tt.exec("clear && make\r") end
|
||||||
local saved_view = vim.fn.winsaveview()
|
vim.defer_fn(function ()
|
||||||
-- Using \r (carriage return) or \n\n often bypasses shell interceptors
|
vim.api.nvim_echo({
|
||||||
-- term:send("clear\r")
|
{ "▶ Terminal: ", "WarningMsg" },
|
||||||
term:send("test_dev.sh\r")
|
{ "Running previous terminal command... ", "Normal" },
|
||||||
vim.api.nvim_set_current_win(original_window)
|
}, true, {})
|
||||||
vim.fn.winrestview(saved_view)
|
end, 50)
|
||||||
else
|
return ""
|
||||||
vim.notify("Terminal 1 is not open yet!", vim.log.levels.WARN)
|
|
||||||
end
|
|
||||||
-- Return logic
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
return C
|
return C
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ vim.cmd('silent! tmapclear') -- Clears Terminal maps
|
|||||||
-- Define your current keymaps below this line
|
-- Define your current keymaps below this line
|
||||||
-- ==========================================
|
-- ==========================================
|
||||||
vim.keymap.set('n', '<leader>w', ':w<CR>')
|
vim.keymap.set('n', '<leader>w', ':w<CR>')
|
||||||
|
package.loaded["custom-functions"] = nil
|
||||||
local utils = require("custom-functions")
|
local utils = require("custom-functions")
|
||||||
|
|
||||||
-- move betwwen buffer easier
|
-- move betwwen buffer easier
|
||||||
@@ -25,13 +26,13 @@ vim.keymap.set('n','<M-Down>' ,"<cmd>lua require('resize').ResizeDown()<CR>")
|
|||||||
vim.keymap.set('n','<Esc>' ,'<cmd>nohlsearch<CR>')
|
vim.keymap.set('n','<Esc>' ,'<cmd>nohlsearch<CR>')
|
||||||
vim.keymap.set('t','<Esc><Esc>' ,'<C-\\><C-n>' ,{ desc = 'Exit terminal mode' })
|
vim.keymap.set('t','<Esc><Esc>' ,'<C-\\><C-n>' ,{ desc = 'Exit terminal mode' })
|
||||||
vim.keymap.set('n','<leader>r' ,'<cmd>TermExec cmd="clear && make"<CR>' ,{ desc = '[r]un make in terminal' })
|
vim.keymap.set('n','<leader>r' ,'<cmd>TermExec cmd="clear && make"<CR>' ,{ desc = '[r]un make in terminal' })
|
||||||
|
vim.keymap.set('n','<leader>l' ,function() utils.RunCommand("l") end ,{ desc = 'run [l]ast command in terminal' })
|
||||||
vim.keymap.set('n','<leader>n' ,'<cmd>ToggleTerm direction=vertical name=compile size=70<CR>', { desc = 'open a [n]ew terminal' })
|
vim.keymap.set('n','<leader>n' ,'<cmd>ToggleTerm direction=vertical name=compile size=70<CR>', { desc = 'open a [n]ew terminal' })
|
||||||
vim.keymap.set('n','<leader>t' ,'<cmd>ToggleTerm<CR>' ,{desc = '[T]oggle all terminals'})
|
vim.keymap.set('n','<leader>t' ,'<cmd>ToggleTerm<CR>' ,{desc = '[T]oggle all terminals'})
|
||||||
vim.keymap.set("n","<leader>e" ,"<cmd>NvimTreeToggle<CR>" ,{desc = 'open [E]xplorer'})
|
vim.keymap.set("n","<leader>e" ,"<cmd>NvimTreeToggle<CR>" ,{desc = 'open [E]xplorer'})
|
||||||
--
|
|
||||||
vim.keymap.set("n", "<leader>R" ,"<cmd>source %<Cr>:echo 'Config reloaded!'<CR>",{ desc = "[S]ource config file"})
|
|
||||||
-- Diagnostic keymaps
|
-- Diagnostic keymaps
|
||||||
vim.keymap.set('n', '<leader>q' ,vim.diagnostic.setloclist ,{ desc = 'Open diagnostic [Q]uickfix list' })
|
vim.keymap.set('n', '<leader>q' ,vim.diagnostic.setloclist ,{ desc = 'Open diagnostic [Q]uickfix list' })
|
||||||
|
vim.keymap.set("n", "<leader>R" ,"<cmd>source %<Cr>:echo 'Config reloaded!'<CR>" ,{ desc = "[S]ource config file"})
|
||||||
|
|
||||||
-- Disable arrow keys in normal mode
|
-- Disable arrow keys in normal mode
|
||||||
vim.keymap.set('n','<left>' ,'<cmd>echo "Use h to move!!"<CR>')
|
vim.keymap.set('n','<left>' ,'<cmd>echo "Use h to move!!"<CR>')
|
||||||
|
|||||||
Reference in New Issue
Block a user