NvChad/lua/mappings.lua

186 lines
5.7 KiB
Lua
Raw Normal View History

2021-08-12 11:58:03 +00:00
local user_map = require("chadrc").mappings
local miscMap = user_map.misc
local M = {}
local cmd = vim.cmd
2021-06-24 17:19:42 +00:00
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)
2021-03-07 14:22:30 +00:00
end
2021-04-21 07:16:24 +00:00
local opt = {}
2021-06-24 17:19:42 +00:00
-- dont copy any deleted text , this is disabled by default so uncomment the below mappings if you want them
2021-05-09 08:22:38 +00:00
--[[ remove this line
2021-04-21 07:16:24 +00:00
map("n", "dd", [=[ "_dd ]=], opt)
map("v", "dd", [=[ "_dd ]=], opt)
map("v", "x", [=[ "_x ]=], opt)
2021-05-09 08:22:38 +00:00
this line too ]]
2021-06-24 17:19:42 +00:00
--
-- 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, <Up> and <Down>
-- 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("", "<Down>", 'v:count ? "j" : "gj"', { expr = true })
map("", "<Up>", 'v:count ? "k" : "gk"', { expr = true })
2021-06-24 17:19:42 +00:00
-- copy whole file content
2021-08-12 11:58:03 +00:00
map("n", miscMap.copywhole_file, ":%y+<CR>", opt)
2021-04-20 04:15:14 +00:00
2021-06-24 17:19:42 +00:00
-- toggle numbers
2021-08-12 11:58:03 +00:00
map("n", miscMap.toggle_linenr, ":set nu!<CR>", opt)
-- terminals
local function terms()
local m = user_map.terms
-- get out of terminal mode
map("t", m.esc_termmode, "<C-\\><C-n>", opt)
-- hide a term from within terminal mode
map("t", m.esc_hide_termmode, "<C-\\><C-n> :lua require('utils').close_buffer() <CR>", opt)
-- pick a hidden term
map("n", m.pick_term, ":Telescope terms <CR>", 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 <CR>", opt)
map("n", m.new_vert, ":execute 'vnew +terminal' | let b:term_type = 'vert' | startinsert <CR>", opt)
map("n", m.new_hori, ":execute 15 .. 'new +terminal' | let b:term_type = 'hori' | startinsert <CR>", opt)
end
terms()
2021-08-12 11:58:03 +00:00
M.truezen = function()
local m = user_map.truezen
2021-04-20 04:15:14 +00:00
map("n", m.ataraxisMode, ":TZAtaraxis<CR>", opt)
map("n", m.minimalisticmode, ":TZMinimalist<CR>", opt)
map("n", m.focusmode, ":TZFocus<CR>", opt)
2021-08-12 11:58:03 +00:00
end
2021-05-09 08:22:38 +00:00
2021-06-27 12:45:58 +00:00
map("n", "<C-s>", ":w <CR>", opt)
2021-06-15 10:27:55 +00:00
2021-08-12 11:58:03 +00:00
M.comment_nvim = function()
local m = user_map.comment_nvim.comment_toggle
map("n", m, ":CommentToggle<CR>", opt)
map("v", m, ":CommentToggle<CR>", opt)
2021-08-12 11:58:03 +00:00
end
2021-06-24 17:19:42 +00:00
2021-08-12 11:58:03 +00:00
M.nvimtree = function()
local m = user_map.nvimtree.treetoggle
2021-08-12 11:58:03 +00:00
map("n", m, ":NvimTreeToggle<CR>", opt)
2021-08-12 11:58:03 +00:00
end
M.neoformat = function()
local m = user_map.neoformat.format
map("n", m, ":Neoformat<CR>", opt)
2021-08-12 11:58:03 +00:00
end
M.dashboard = function()
local m = user_map.dashboard
2021-08-12 11:58:03 +00:00
map("n", m.open, ":Dashboard<CR>", opt)
map("n", m.newfile, ":DashboardNewFile<CR>", opt)
map("n", m.bookmarks, ":DashboardJumpMarks<CR>", opt)
map("n", m.sessionload, ":SessionLoad<CR>", opt)
map("n", m.sessionsave, ":SessionSave<CR>", opt)
2021-08-12 11:58:03 +00:00
end
M.telescope = function()
local m = user_map.telescope
map("n", m.live_grep, ":Telescope live_grep<CR>", opt)
map("n", m.git_status, ":Telescope git_status <CR>", opt)
map("n", m.git_commits, ":Telescope git_commits <CR>", opt)
map("n", m.find_files, ":Telescope find_files <CR>", opt)
map("n", m.buffers, ":Telescope buffers<CR>", opt)
map("n", m.help_tags, ":Telescope help_tags<CR>", opt)
map("n", m.oldfiles, ":Telescope oldfiles<CR>", opt)
map("n", m.themes, ":Telescope themes<CR>", opt)
2021-08-12 11:58:03 +00:00
end
M.telescope_media = function()
local m = user_map.telescope_media
map("n", m.media_files, ":Telescope media_files <CR>", opt)
end
2021-08-16 16:48:08 +00:00
M.chadsheet = function()
local m = user_map.chadsheet
map("n", m.default_keys, ":lua require('cheatsheet').show_cheatsheet_telescope()<CR>", opt)
map(
"n",
m.user_keys,
":lua require('cheatsheet').show_cheatsheet_telescope{bundled_cheatsheets = false, bundled_plugin_cheatsheets = false }<CR>",
opt
)
end
2021-08-12 11:58:03 +00:00
M.bufferline = function()
local m = user_map.bufferline
2021-08-12 11:58:03 +00:00
map("n", m.new_buffer, ":enew<CR>", opt) -- new buffer
map("n", m.newtab, ":tabnew<CR>", opt) -- new tab
map("n", m.close, ":lua require('utils').close_buffer() <CR>", opt) -- close buffer
2021-08-12 11:58:03 +00:00
-- move between tabs
2021-08-12 11:58:03 +00:00
map("n", m.cycleNext, ":BufferLineCycleNext<CR>", opt)
map("n", m.cyclePrev, ":BufferLineCyclePrev<CR>", opt)
2021-08-12 11:58:03 +00:00
end
-- use ESC to turn off search highlighting
2021-07-18 10:40:23 +00:00
map("n", "<Esc>", ":noh<CR>", opt)
-- 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()"
2021-08-12 11:58:03 +00:00
M.fugitive = function()
local m = user_map.fugitive
2021-08-12 11:58:03 +00:00
map("n", m.Git, ":Git<CR>", opt)
map("n", m.diffget_2, ":diffget //2<CR>", opt)
map("n", m.diffget_3, ":diffget //3<CR>", opt)
map("n", m.git_blame, ":Git blame<CR>", opt)
2021-08-12 11:58:03 +00:00
end
2021-08-14 08:14:28 +00:00
-- navigation within insert mode
local check_insertNav = require("chadrc").options.enable_insertNav
if check_insertNav == true then
local m = user_map.insert_nav
map("i", m.forward, "<Right>", opt)
map("i", m.backward, "<Left>", opt)
map("i", m.top_of_line, "<ESC>^i", opt)
map("i", m.end_of_line, "<End>", opt)
map("i", m.next_line, "<Up>", opt)
map("i", m.prev_line, "<Down>", opt)
2021-08-14 08:14:28 +00:00
end
2021-08-14 19:14:55 +00:00
local theme_toggler = require("chadrc").ui.theme_toggler
if theme_toggler == true then
local m = user_map.misc.theme_toggle
2021-08-14 19:14:55 +00:00
map("n", m, ":lua require('utils').toggle_theme(require('chadrc').ui.fav_themes)<CR>", opt)
2021-08-14 19:14:55 +00:00
end
2021-08-12 11:58:03 +00:00
return M