aboutsummaryrefslogtreecommitdiff
path: root/neovim/.config/nvim/lua/keybinds.lua
diff options
context:
space:
mode:
Diffstat (limited to 'neovim/.config/nvim/lua/keybinds.lua')
-rw-r--r--neovim/.config/nvim/lua/keybinds.lua67
1 files changed, 55 insertions, 12 deletions
diff --git a/neovim/.config/nvim/lua/keybinds.lua b/neovim/.config/nvim/lua/keybinds.lua
index d113573..1a56ccc 100644
--- a/neovim/.config/nvim/lua/keybinds.lua
+++ b/neovim/.config/nvim/lua/keybinds.lua
@@ -5,23 +5,36 @@ end
-- Fix * (Keep the cursor position, don't move to next match)
map("n", "*", "*N")
--- Fix n and N. Keeping cursor in center
-map("n", "n", "nzz")
-map("n", "N", "Nzz")
-
-- Move line up and down in NORMAL and VISUAL modes
map("n", "<A-j>", "<cmd>move .+1<cr>")
map("n", "<A-k>", "<cmd>move .-2<cr>")
map("x", "<A-j>", ":move '>+1<cr>gv=gv")
map("x", "<A-k>", ":move '<-2<cr>gv=gv")
+-- Keep cursor position
+map("n", "J", "mzJ`z")
+
+-- Keep cursur in center
+map("n", "<C-d>", "<C-d>zz")
+map("n", "<C-u>", "<C-u>zz")
+map("n", "n", "nzzzv")
+map("n", "N", "Nzzzv")
+
+-- Remove to void (and paste)
+map("n", "<leader>d", "\"_d")
+map("v", "<leader>d", "\"_d")
+map("x", "<leader>p", "\"_dP")
+
+-- Format
+map("n", "<leader>i", function() vim.lsp.buf.format() end)
+-- Edit word
+map("n", "<leader>s", [[:%s/\<<C-r><C-w>\>/<C-r><C-w>/gI<Left><Left><Left>]])
+-- Make executable
+map("n", "<leader>x", "<cmd>!chmod +x %<CR>")
+
-- map("n", "<C-space>", ":Files<CR>")
map("n", "<C-c>", ":!compile %<cr><cr>")
--- Mimic shell movements
--- map("i", "<C-E>", "<ESC>A")
--- map("i", "<C-A>", "<ESC>I")
-
-- Move to the next/previous buffer
-- map("n", "<leader>[", "<CMD>bp<CR>")
-- map("n", "<leader>]", "<CMD>bn<CR>")
@@ -29,12 +42,42 @@ map("n", "<C-c>", ":!compile %<cr><cr>")
-- Move to last buffer
-- map("n", """", "<CMD>b#<CR>")
--- Plugin
-map("n", "<C-f>", "<cmd>TodoTelescope<cr>")
+-- Telescope binds
+local Telescope = setmetatable({}, {
+ __index = function(_, k)
+ if vim.bo.filetype == "NvimTree" then
+ vim.cmd.wincmd("l")
+ end
+ return require("telescope.builtin")[k]
+ end,
+})
+
+-- Help
+map("n", "<leader>fh", Telescope.help_tags)
+-- Files with match
+map("n", "<leader>ff", Telescope.live_grep)
+-- Project files
+map("n", "<leader>fp", Telescope.find_files)
+-- Changed git files
+map("n", "<leader>fc", Telescope.git_status)
+-- Git files
+map("n", "<leader>fg", function()
+ local ok = pcall(Telescope.git_files, { show_untracked = true })
+ if not ok then
+ Telescope.find_files()
+ end
+end)
+
+-- Highlighted comments
+map("n", "<leader>ft", "<cmd>TodoTelescope<cr>")
-- Hacky update thing
--- TODO: Fix timing
-map("n", "<leader>u", "<cmd>PackerSync<cr><cmd>PackerCompile<cr><cmd>TSUpdate<cr><cmd>Mason<cr>")
+--[[ map("n", "<leader>u", function()
+ local ok = pcall(vim.cmd.PackerSync)
+ if ok then ok = pcall(vim.cmd.PackerCompile) end
+ if ok then ok = pcall(vim.cmd.TSUpdate) end
+ if ok then pcall(vim.cmd.Mason) end
+end) ]]
exp = {}
exp.map = map