Adding Changes
This commit is contained in:
48
lua/cargdev/core/function/openTerminal.lua
Normal file
48
lua/cargdev/core/function/openTerminal.lua
Normal file
@@ -0,0 +1,48 @@
|
||||
vim.g.mapleader = " "
|
||||
|
||||
local keymap = vim.keymap
|
||||
|
||||
-- Function to open terminal
|
||||
local function open_terminal()
|
||||
-- Move to the rightmost buffer (equivalent to `<C-l>` multiple times)
|
||||
vim.cmd("wincmd l")
|
||||
vim.cmd("wincmd l")
|
||||
vim.cmd("wincmd l")
|
||||
vim.cmd("wincmd l")
|
||||
|
||||
-- Get current buffer number and type
|
||||
local buf_num = vim.api.nvim_get_current_buf()
|
||||
local buf_type = vim.api.nvim_buf_get_option(buf_num, "buftype")
|
||||
|
||||
if buf_type == "terminal" then
|
||||
-- If already in a terminal, close it
|
||||
vim.cmd("q")
|
||||
else
|
||||
-- Open terminal in a vertical split
|
||||
vim.cmd("vsp | term zsh")
|
||||
|
||||
-- Disable line numbers in terminal
|
||||
vim.cmd("setlocal nonumber norelativenumber")
|
||||
|
||||
-- Auto-start insert mode in terminal
|
||||
vim.api.nvim_create_autocmd({ "BufWinEnter", "WinEnter" }, {
|
||||
buffer = 0,
|
||||
command = "startinsert!",
|
||||
})
|
||||
vim.api.nvim_create_autocmd("BufLeave", {
|
||||
buffer = 0,
|
||||
command = "stopinsert!",
|
||||
})
|
||||
|
||||
-- Terminal key mappings
|
||||
vim.keymap.set("t", "<C-h>", "<C-\\><C-n><C-w>h", { buffer = true })
|
||||
vim.keymap.set("t", "<C-t>", "<C-\\><C-n>:q<CR>", { buffer = true })
|
||||
vim.keymap.set("t", "<C-\\><C-\\>", "<C-\\><C-n>", { buffer = true })
|
||||
|
||||
-- Start terminal in insert mode
|
||||
vim.cmd("startinsert!")
|
||||
end
|
||||
end
|
||||
|
||||
-- Keybinding to open terminal
|
||||
keymap.set("n", "<Leader>ter", open_terminal, { noremap = true, silent = true })
|
||||
@@ -1,2 +1,19 @@
|
||||
require("cargdev.core.options")
|
||||
require("cargdev.core.keymaps")
|
||||
|
||||
-- Load all Lua files inside `cargdev/core/function/`
|
||||
local function load_functions()
|
||||
local function_path = vim.fn.stdpath("config") .. "/lua/cargdev/core/function"
|
||||
local scan = vim.fn.globpath(function_path, "*.lua", false, true)
|
||||
|
||||
for _, file in ipairs(scan) do
|
||||
local module_name = "cargdev.core.function." .. file:match("([^/]+)%.lua$")
|
||||
local success, err = pcall(require, module_name)
|
||||
|
||||
if not success then
|
||||
vim.notify("Error loading function module: " .. module_name .. "\n" .. err, vim.log.levels.ERROR)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
load_functions()
|
||||
|
||||
@@ -31,6 +31,30 @@ keymap.set("n", "<leader>tf", "<cmd>tabnew %<CR>", { desc = "Open current buffer
|
||||
-- sintax fixer
|
||||
keymap.set("n", "<leader>sy", "gg=G<CR>", { desc = "Format current file" })
|
||||
|
||||
|
||||
keymap.set("n", "<C-e>", "10<C-e>", { noremap = true, silent = true })
|
||||
keymap.set("n", "<C-y>", "10<C-y>", { noremap = true, silent = true })
|
||||
|
||||
-- close current file on buffer
|
||||
keymap.set("n", "<leader>bd", ":bd<CR>", { desc = "Close current file on buffer" })
|
||||
|
||||
-- Set buftabline mappings
|
||||
keymap.set("n", "<C-p>", ":bnext<CR>", { noremap = true, silent = true })
|
||||
keymap.set("n", "<C-n>", ":bprev<CR>", { noremap = true, silent = true })
|
||||
|
||||
-- Coding hacks
|
||||
keymap.set(
|
||||
"n",
|
||||
"<leader>re",
|
||||
"ggOimport<space>React<space>from<space>'react';<esc>0",
|
||||
{ desc = "Type import react from 'react' at the top of the file" }
|
||||
)
|
||||
keymap.set("n", "<leader>,", "$a,<ESC>", { desc = "Adding ',' at the end of the line" })
|
||||
keymap.set("n", "<leader>;", "$a;<ESC>", { desc = "Adding ';' at the end of the line" })
|
||||
keymap.set("n", "<leader>con", "oconsole.log()<ESC>0w$h", { desc = "Adding console.log() on the line below" })
|
||||
keymap.set("n", "<leader>x", ":!node %<CR>", { desc = "Running current project using node" })
|
||||
|
||||
-- Move between Tmux and Neovim splits using Alt + Arrow keys
|
||||
-- keymap.set("n", "<A-h>", ":TmuxNavigateLeft<CR>", { noremap = true, silent = true })
|
||||
-- keymap.set("n", "<A-j>", ":TmuxNavigateDown<CR>", { noremap = true, silent = true })
|
||||
-- keymap.set("n", "<A-k>", ":TmuxNavigateUp<CR>", { noremap = true, silent = true })
|
||||
-- keymap.set("n", "<A-l>", ":TmuxNavigateRight<CR>", { noremap = true, silent = true })
|
||||
|
||||
Reference in New Issue
Block a user