local function nnoremap(key, command) vim.api.nvim_set_keymap("n", key, command, { noremap = true }) end vim.g.mapleader = " " vim.g.maplocalleader = " " -- Move around windows nnoremap("", ":wincmd h") nnoremap("", ":wincmd j") nnoremap("", ":wincmd k") nnoremap("", ":wincmd l") -- Switch buffers nnoremap("", ":TablineBufferNext") nnoremap("", ":TablineBufferPrevious") -- fugitive nnoremap("g", ":0Git") -- vim-flog nnoremap("G", ":Flog -all -date=relative -open-cmd=new") -- telescope local telescope = require("telescope.builtin") local telescope_themes = require("telescope.themes") local telescope_projects = require("telescope").extensions.projects local function map_telescope(key, telescope_function) vim.api.nvim_set_keymap("n", key, "", { noremap = true, callback = function() local theme = telescope_themes.get_dropdown({ layout_config = { width = 0.9 } }) telescope_function(theme) end, }) end map_telescope("ff", telescope.find_files) map_telescope("fb", telescope.buffers) map_telescope("fg", telescope.git_files) map_telescope("fp", telescope_projects.projects) map_telescope("fs", telescope.lsp_document_symbols) map_telescope("fS", telescope.lsp_dynamic_workspace_symbols) map_telescope("", telescope.grep_string) map_telescope("", telescope.live_grep) -- terminal vim.api.nvim_create_autocmd("TermOpen", { pattern = "term://*", callback = function() local opts = { noremap = true } vim.api.nvim_buf_set_keymap(0, 't', '', [[]], opts) vim.api.nvim_buf_set_keymap(0, 't', '', [[h]], opts) vim.api.nvim_buf_set_keymap(0, 't', '', [[j]], opts) vim.api.nvim_buf_set_keymap(0, 't', '', [[k]], opts) vim.api.nvim_buf_set_keymap(0, 't', '', [[l]], opts) end, desc = "Map terminal esc and window switch keys", }) -- buffer closing nnoremap("gq", ":bdelete") -- toggle search highlighting vim.cmd('nnoremap * v:hlsearch ? ":nohlsearch" : "*"') -- insert-map jj/jk to escape require("better_escape").setup()