summaryrefslogtreecommitdiff
path: root/lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua')
-rw-r--r--lua/config/init.lua1
-rw-r--r--lua/config/toggleterm.lua48
-rw-r--r--lua/config/whichkey.lua19
-rw-r--r--lua/plugins.lua1
4 files changed, 59 insertions, 10 deletions
diff --git a/lua/config/init.lua b/lua/config/init.lua
index ceb6f6b..7c828f3 100644
--- a/lua/config/init.lua
+++ b/lua/config/init.lua
@@ -19,3 +19,4 @@ require("config.autocommands")
require("config.hop")
require("config.zen")
require("config.spectre")
+require("config.toggleterm")
diff --git a/lua/config/toggleterm.lua b/lua/config/toggleterm.lua
new file mode 100644
index 0000000..6e11000
--- /dev/null
+++ b/lua/config/toggleterm.lua
@@ -0,0 +1,48 @@
+-- Adds ability to open a terminal with neovim, e.g. lazygit.
+
+local status_ok, toggleterm = pcall(require, "toggleterm")
+if not status_ok then
+ return
+end
+
+toggleterm.setup({
+ size = 20,
+ open_mapping = [[<c-\>]],
+ hide_numbers = true,
+ shade_filetypes = {},
+ shade_terminals = true,
+ shading_factor = 2,
+ start_in_insert = true,
+ insert_mappings = true,
+ persist_size = true,
+ direction = "float",
+ close_on_exit = true,
+ shell = vim.o.shell,
+ float_opts = {
+ border = "curved",
+ winblend = 0,
+ highlights = {
+ border = "Normal",
+ background = "Normal",
+ },
+ },
+})
+
+function _G.set_terminal_keymaps()
+ local opts = { noremap = true }
+ vim.api.nvim_buf_set_keymap(0, "t", "<esc>", [[<C-\><C-n>]], opts)
+ vim.api.nvim_buf_set_keymap(0, "t", "jk", [[<C-\><C-n>]], opts)
+ vim.api.nvim_buf_set_keymap(0, "t", "<C-h>", [[<C-\><C-n><C-W>h]], opts)
+ vim.api.nvim_buf_set_keymap(0, "t", "<C-j>", [[<C-\><C-n><C-W>j]], opts)
+ vim.api.nvim_buf_set_keymap(0, "t", "<C-k>", [[<C-\><C-n><C-W>k]], opts)
+ vim.api.nvim_buf_set_keymap(0, "t", "<C-l>", [[<C-\><C-n><C-W>l]], opts)
+end
+
+vim.cmd("autocmd! TermOpen term://* lua set_terminal_keymaps()")
+
+local Terminal = require("toggleterm.terminal").Terminal
+local lazygit = Terminal:new({ cmd = "lazygit", hidden = true })
+
+function _LAZYGIT_TOGGLE()
+ lazygit:toggle()
+end
diff --git a/lua/config/whichkey.lua b/lua/config/whichkey.lua
index 94aa65a..955e85a 100644
--- a/lua/config/whichkey.lua
+++ b/lua/config/whichkey.lua
@@ -99,6 +99,7 @@ local mappings = {
["z"] = { "<cmd>ZenMode<cr>", "Zen Mode" },
["v"] = { "<cmd>vsplit<cr>", "Vertical Split" },
["h"] = { "<cmd>split<cr>", "Horizontal Split" },
+
p = {
name = "Packer",
c = { "<cmd>PackerCompile<cr>", "Compile" },
@@ -162,6 +163,7 @@ local mappings = {
"Workspace Symbols",
},
},
+
s = {
name = "Search",
b = { "<cmd>Telescope git_branches<cr>", "Checkout branch" },
@@ -173,6 +175,7 @@ local mappings = {
k = { "<cmd>Telescope keymaps<cr>", "Keymaps" },
C = { "<cmd>Telescope commands<cr>", "Commands" },
},
+
r = {
name = "Replace",
r = { "<cmd>lua require('spectre').open()<cr>", "Replace" },
@@ -180,16 +183,12 @@ local mappings = {
f = { "<cmd>lua require('spectre').open_file_search()<cr>", "Replace Buffer" },
},
- -- t = {
- -- name = "Terminal",
- -- n = { "<cmd>lua _NODE_TOGGLE()<cr>", "Node" },
- -- u = { "<cmd>lua _NCDU_TOGGLE()<cr>", "NCDU" },
- -- t = { "<cmd>lua _HTOP_TOGGLE()<cr>", "Htop" },
- -- p = { "<cmd>lua _PYTHON_TOGGLE()<cr>", "Python" },
- -- f = { "<cmd>ToggleTerm direction=float<cr>", "Float" },
- -- h = { "<cmd>ToggleTerm size=10 direction=horizontal<cr>", "Horizontal" },
- -- v = { "<cmd>ToggleTerm size=80 direction=vertical<cr>", "Vertical" },
- -- },
+ t = {
+ name = "Terminal",
+ f = { "<cmd>ToggleTerm direction=float<cr>", "Float" },
+ h = { "<cmd>ToggleTerm size=10 direction=horizontal<cr>", "Horizontal" },
+ v = { "<cmd>ToggleTerm size=80 direction=vertical<cr>", "Vertical" },
+ },
}
local vopts = {
diff --git a/lua/plugins.lua b/lua/plugins.lua
index c9dc29d..82742b6 100644
--- a/lua/plugins.lua
+++ b/lua/plugins.lua
@@ -59,4 +59,5 @@ return {
"kevinhwang91/nvim-bqf",
event = "BufRead",
},
+ { "akinsho/toggleterm.nvim" },
}