summaryrefslogtreecommitdiff
path: root/lua/keybindings.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua/keybindings.lua')
-rw-r--r--lua/keybindings.lua44
1 files changed, 44 insertions, 0 deletions
diff --git a/lua/keybindings.lua b/lua/keybindings.lua
new file mode 100644
index 0000000..e10e458
--- /dev/null
+++ b/lua/keybindings.lua
@@ -0,0 +1,44 @@
+vim.g.mapleader = " "
+
+-- Splits keybindings
+vim.keymap.set("n", "<leader>s", "<ESC>:vsplit<CR>")
+vim.keymap.set("n", "<leader>vs", "<ESC>:split<CR>")
+
+-- Splits shortcuts
+vim.keymap.set("n", "<leader>j", "<C-W><C-J>")
+vim.keymap.set("n", "<leader>k", "<C-W><C-K>")
+vim.keymap.set("n", "<leader>l", "<C-W><C-L>")
+vim.keymap.set("n", "<leader>h", "<C-W><C-H>")
+
+-- Horizontal window resizing
+vim.keymap.set("n", "<leader>.", "<C-W>>")
+vim.keymap.set("n", "<leader>,", "<C-W><")
+
+-- Copy to system clipboard
+vim.keymap.set("n", "<leader>y", '"+y')
+vim.keymap.set("v", "<leader>y", '"+y')
+vim.keymap.set("n", "<leader>d", '"+d')
+vim.keymap.set("v", "<leader>d", '"+d')
+
+-- Terminal mode
+-- au TerminalOpen * setlocal nospell
+vim.keymap.set('t', "<leader><ESC>", "<C-\\><C-n>")
+vim.keymap.set('t', "<S-space>", "<space>")
+
+-- Tabs
+vim.keymap.set("n", "<leader>tn", ":tabnew<CR>")
+vim.keymap.set("n", "<leader>tt", ":tabnew | term<CR>")
+vim.keymap.set("n", "<leader>th", ":tabprevious<CR>")
+vim.keymap.set("n", "<leader>tl", ":tabnext<CR>")
+vim.keymap.set("n", "<leader>tc", ":tabclose<CR>")
+vim.keymap.set("n", "<leader>t,", ":tabmove -1<CR>")
+vim.keymap.set("n", "<leader>t.", ":tabmove +1<CR>")
+
+-- Trailing whitespace trimmer
+function trim_whitespace()
+ local view = vim.fn.winsaveview()
+ vim.cmd.retab()
+ vim.cmd[[keeppatterns %s/\s\+$//e]]
+ vim.fn.winrestview(view)
+end
+vim.keymap.set("n", "<leader>f", trim_whitespace)