diff options
author | Gustaf Rydholm <gustaf.rydholm@gmail.com> | 2022-01-14 18:48:13 +0100 |
---|---|---|
committer | Gustaf Rydholm <gustaf.rydholm@gmail.com> | 2022-01-14 18:48:13 +0100 |
commit | cdba3556882f5672de141cfa98c64f4257c69de0 (patch) | |
tree | 141f5d6529ed6b51afaa4d01114c91209afdce5e /lua/config | |
parent | 4aaf5df5b7023e73e58828b17b621a282be08860 (diff) |
Add toggleterm plugin
Diffstat (limited to 'lua/config')
-rw-r--r-- | lua/config/init.lua | 1 | ||||
-rw-r--r-- | lua/config/toggleterm.lua | 48 | ||||
-rw-r--r-- | lua/config/whichkey.lua | 19 |
3 files changed, 58 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 = { |