local user_map = require("utils").load_config().mappings local miscMap = user_map.misc local cmd = vim.cmd local function map(mode, lhs, rhs, opts) local options = { noremap = true, silent = true } if opts then options = vim.tbl_extend("force", options, opts) end vim.api.nvim_set_keymap(mode, lhs, rhs, options) end local M = {} local opt = {} -- these mappings will only be called during initialization M.misc = function() -- dont copy any deleted text , this is disabled by default so uncomment the below mappings if you want them -- map("n", "dd", [=[ "_dd ]=], opt) -- map("v", "dd", [=[ "_dd ]=], opt) -- map("v", "x", [=[ "_x ]=], opt) -- todo: this should be configurable via chadrc -- Don't copy the replaced text after pasting in visual mode map("v", "p", '"_dP', opt) -- Allow moving the cursor through wrapped lines with j, k, and -- http://www.reddit.com/r/vim/comments/2k4cbr/problem_with_gj_and_gk/ -- empty mode is same as using :map map("", "j", 'v:count ? "j" : "gj"', { expr = true }) map("", "k", 'v:count ? "k" : "gk"', { expr = true }) map("", "", 'v:count ? "j" : "gj"', { expr = true }) map("", "", 'v:count ? "k" : "gk"', { expr = true }) -- copy whole file content map("n", miscMap.copywhole_file, ":%y+", opt) -- toggle numbers map("n", miscMap.toggle_linenr, ":set nu!", opt) -- terminals local function terms() local m = user_map.terms -- get out of terminal mode map("t", m.esc_termmode, "", opt) -- hide a term from within terminal mode map("t", m.esc_hide_termmode, " :lua require('utils').close_buffer() ", opt) -- pick a hidden term map("n", m.pick_term, ":Telescope terms ", opt) -- Open terminals -- TODO this opens on top of an existing vert/hori term, fixme map("n", m.new_wind, ":execute 'terminal' | let b:term_type = 'wind' | startinsert ", opt) map("n", m.new_vert, ":execute 'vnew +terminal' | let b:term_type = 'vert' | startinsert ", opt) map("n", m.new_hori, ":execute 15 .. 'new +terminal' | let b:term_type = 'hori' | startinsert ", opt) end terms() -- ctrl + s to save file map("n", "", ":w ", opt) -- use ESC to turn off search highlighting map("n", "", ":noh", opt) -- navigation within insert mode local check_insertNav = require("utils").load_config().options.enable_insertNav if check_insertNav == true then local m = user_map.insert_nav map("i", m.forward, "", opt) map("i", m.backward, "", opt) map("i", m.top_of_line, "^i", opt) map("i", m.end_of_line, "", opt) map("i", m.next_line, "", opt) map("i", m.prev_line, "", opt) end -- check the theme toggler local theme_toggler = require("utils").load_config().ui.theme_toggler if theme_toggler == true then local m = user_map.misc.theme_toggle map("n", m, ":lua require('utils').toggle_theme(require('utils').load_config().ui.fav_themes)", opt) end -- Packer commands till because we are not loading it at startup cmd "silent! command PackerCompile lua require 'pluginList' require('packer').compile()" cmd "silent! command PackerInstall lua require 'pluginList' require('packer').install()" cmd "silent! command PackerStatus lua require 'pluginList' require('packer').status()" cmd "silent! command PackerSync lua require 'pluginList' require('packer').sync()" cmd "silent! command PackerUpdate lua require 'pluginList' require('packer').update()" -- add NvChadUpdate command and mapping cmd "silent! command! NvChadUpdate lua require('utils').update_nvchad()" map("n", user_map.misc.update_nvchad, ":NvChadUpdate", opt) end M.bufferline = function() local m = user_map.bufferline map("n", m.new_buffer, ":enew", opt) -- new buffer map("n", m.newtab, ":tabnew", opt) -- new tab map("n", m.close, ":lua require('utils').close_buffer() ", opt) -- close buffer -- move between tabs map("n", m.cycleNext, ":BufferLineCycleNext", opt) map("n", m.cyclePrev, ":BufferLineCyclePrev", opt) end M.chadsheet = function() local m = user_map.chadsheet map("n", m.default_keys, ":lua require('cheatsheet').show_cheatsheet_telescope()", opt) map( "n", m.user_keys, ":lua require('cheatsheet').show_cheatsheet_telescope{bundled_cheatsheets = false, bundled_plugin_cheatsheets = false }", opt ) end M.comment_nvim = function() local m = user_map.comment_nvim.comment_toggle map("n", m, ":CommentToggle", opt) map("v", m, ":CommentToggle", opt) end M.dashboard = function() local m = user_map.dashboard map("n", m.open, ":Dashboard", opt) map("n", m.newfile, ":DashboardNewFile", opt) map("n", m.bookmarks, ":DashboardJumpMarks", opt) map("n", m.sessionload, ":SessionLoad", opt) map("n", m.sessionsave, ":SessionSave", opt) end M.fugitive = function() local m = user_map.fugitive map("n", m.Git, ":Git", opt) map("n", m.diffget_2, ":diffget //2", opt) map("n", m.diffget_3, ":diffget //3", opt) map("n", m.git_blame, ":Git blame", opt) end M.nvimtree = function() local m = user_map.nvimtree.treetoggle map("n", m, ":NvimTreeToggle", opt) end M.neoformat = function() local m = user_map.neoformat.format map("n", m, ":Neoformat", opt) end M.truezen = function() local m = user_map.truezen map("n", m.ataraxisMode, ":TZAtaraxis", opt) map("n", m.minimalisticmode, ":TZMinimalist", opt) map("n", m.focusmode, ":TZFocus", opt) end M.telescope = function() local m = user_map.telescope map("n", m.live_grep, ":Telescope live_grep", opt) map("n", m.git_status, ":Telescope git_status ", opt) map("n", m.git_commits, ":Telescope git_commits ", opt) map("n", m.find_files, ":Telescope find_files ", opt) map("n", m.buffers, ":Telescope buffers", opt) map("n", m.help_tags, ":Telescope help_tags", opt) map("n", m.oldfiles, ":Telescope oldfiles", opt) map("n", m.themes, ":Telescope themes", opt) end M.telescope_media = function() local m = user_map.telescope_media map("n", m.media_files, ":Telescope media_files ", opt) end return M