local function map(mode, lhs, rhs, opts) local options = { noremap = true } if opts then options = vim.tbl_extend("force", options, opts) end vim.api.nvim_set_keymap(mode, lhs, rhs, options) end vim.g.mapleader = " " map("n", "j", "gj") map("n", "k", "gk") map("n", "", "h") map("n", "", "j") map("n", "", "k") map("n", "", "l") map("i", "", "ā") map("i", "", "ē") map("i", "", "ī") map("i", "", "ō") map("i", "", "ū") map("n", "", ":w|:!texbld run compile") map("n", "", ":w|:!./test.sh") -- hacks vim.keymap.set("v", "J", ":m '>+1gv=gv") vim.keymap.set("v", "K", ":m '<-2gv=gv") vim.keymap.set("n", "J", "mzJ`z") vim.keymap.set("n", "", "zz") vim.keymap.set("n", "", "zz") vim.keymap.set("n", "n", "nzzzv") vim.keymap.set("n", "N", "Nzzzv") vim.keymap.set("x", "p", [["_dP]]) vim.keymap.set({ "n", "v" }, "y", [["+y]]) vim.keymap.set("n", "Y", [["+Y]]) vim.keymap.set("n", "x", "!chmod +x %", { silent = true }) vim.keymap.set("n", "X", "!chmod -x %", { silent = true }) -- execute file vim.keymap.set("n", ",", "e ~/.config/nvim"); vim.keymap.set("n", "r", "so ~/.config/nvim/init.lua") vim.keymap.set("n", "e", "!%:p", { silent = true }) vim.keymap.set("n", "vz", "e ~/.zshrc"); vim.keymap.set("n", "fmt", function() vim.lsp.buf.formatting_sync() end) if os.getenv("TMUX") ~= nil then vim.keymap.set("n", "", [[silent !tmux neww "zsh -c '. ~/.zshenv; tmuxs'"]]) vim.keymap.set("n", "", [[silent !tmux neww ncmpcpp]]) else local function unavailable() print("Not in a tmux session") end vim.keymap.set("n", "", unavailable) vim.keymap.set("n", "", unavailable) end