2021-08-12 12:58:03 +01:00
|
|
|
local user_map = require("chadrc").mappings
|
|
|
|
local miscMap = user_map.misc
|
|
|
|
|
|
|
|
local M = {}
|
|
|
|
local cmd = vim.cmd
|
|
|
|
|
2021-06-24 18:19:42 +01:00
|
|
|
local function map(mode, lhs, rhs, opts)
|
2021-06-27 16:29:39 +01:00
|
|
|
local options = {noremap = true, silent = true}
|
2021-03-13 01:23:02 +00:00
|
|
|
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 08:16:24 +01:00
|
|
|
local opt = {}
|
|
|
|
|
2021-06-24 18:19:42 +01:00
|
|
|
-- dont copy any deleted text , this is disabled by default so uncomment the below mappings if you want them
|
2021-05-09 09:22:38 +01:00
|
|
|
--[[ remove this line
|
2021-04-21 08:16:24 +01:00
|
|
|
|
|
|
|
map("n", "dd", [=[ "_dd ]=], opt)
|
|
|
|
map("v", "dd", [=[ "_dd ]=], opt)
|
|
|
|
map("v", "x", [=[ "_x ]=], opt)
|
|
|
|
|
2021-05-09 09:22:38 +01:00
|
|
|
this line too ]]
|
2021-06-24 18:19:42 +01:00
|
|
|
--
|
|
|
|
|
2021-08-14 08:56:54 +01:00
|
|
|
-- toggle unix readline's keymap
|
|
|
|
map("n", user_map.unix_keymap.toggle_unix_keymap,"<cmd>lua require 'mappings'.unix_keymap()<CR>",{nowait = true})
|
|
|
|
|
|
|
|
local _cmap_containp = function (key)
|
|
|
|
local cmap_tab = vim.api.nvim_get_keymap("c")
|
|
|
|
|
|
|
|
for _, value in ipairs(cmap_tab) do
|
|
|
|
if value['lhs'] == key then
|
|
|
|
return true
|
|
|
|
end
|
|
|
|
end
|
|
|
|
return false
|
|
|
|
end
|
|
|
|
|
|
|
|
M.unix_keymap = function()
|
|
|
|
local m = user_map.unix_keymap
|
|
|
|
|
|
|
|
if _cmap_containp("<C-A>") then
|
|
|
|
vim.api.nvim_del_keymap("i", m.forward)
|
|
|
|
vim.api.nvim_del_keymap("i", m.backward)
|
|
|
|
vim.api.nvim_del_keymap("i", m.top_of_line)
|
|
|
|
vim.api.nvim_del_keymap("i", m.end_of_line)
|
|
|
|
vim.api.nvim_del_keymap("c", m.forward)
|
|
|
|
vim.api.nvim_del_keymap("c", m.backward)
|
|
|
|
vim.api.nvim_del_keymap("c", m.top_of_line)
|
|
|
|
vim.api.nvim_del_keymap("c", m.end_of_line)
|
|
|
|
else
|
|
|
|
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)
|
|
|
|
vim.api.nvim_set_keymap("c", m.forward, '<Right>', {noremap = true})
|
|
|
|
vim.api.nvim_set_keymap("c", m.backward, '<Left>', {noremap = true})
|
|
|
|
vim.api.nvim_set_keymap("c", m.top_of_line, '<Home>', {noremap = true})
|
|
|
|
vim.api.nvim_set_keymap("c", m.end_of_line, '<End>', {noremap = true})
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
2021-07-17 12:18:41 +01:00
|
|
|
-- Don't copy the replaced text after pasting in visual mode
|
|
|
|
map("v", "p", '"_dP', opt)
|
|
|
|
|
2021-07-26 10:02:29 +01:00
|
|
|
-- 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 18:19:42 +01:00
|
|
|
-- copy whole file content
|
2021-08-12 12:58:03 +01:00
|
|
|
map("n", miscMap.copywhole_file, ":%y+<CR>", opt)
|
2021-04-20 05:15:14 +01:00
|
|
|
|
2021-06-24 18:19:42 +01:00
|
|
|
-- toggle numbers
|
2021-08-12 12:58:03 +01:00
|
|
|
map("n", miscMap.toggle_linenr, ":set nu!<CR>", opt)
|
|
|
|
|
2021-08-13 16:59:17 +01:00
|
|
|
-- open a new buffer as a Terminal
|
|
|
|
-- get out of terminal with jk
|
|
|
|
map("t", miscMap.esc_Termmode, "<C-\\><C-n>", opt)
|
|
|
|
|
|
|
|
M.toggleterm = function()
|
|
|
|
local m = user_map.toggleterm
|
|
|
|
|
|
|
|
-- Open terminals
|
|
|
|
map("n", m.toggle_window, ":execute v:count . 'ToggleTerm direction=window' <CR>", opt)
|
|
|
|
map("n", m.toggle_right, ":execute v:count . 'ToggleTerm direction=vertical' <CR>", opt)
|
|
|
|
map("n", m.toggle_bot, ":execute v:count . 'ToggleTerm direction=horizontal' <CR>", opt)
|
|
|
|
|
|
|
|
-- 'Un' toggle a term from within terminal edit mode
|
|
|
|
map("t", m.toggle_window, "<C-\\><C-n> :ToggleTerm <CR>", opt)
|
|
|
|
map("t", m.toggle_right, "<C-\\><C-n> :ToggleTerm <CR>", opt)
|
|
|
|
map("t", m.toggle_bot, "<C-\\><C-n> :ToggleTerm <CR>", opt)
|
|
|
|
end
|
|
|
|
|
2021-08-12 12:58:03 +01:00
|
|
|
M.truezen = function()
|
|
|
|
local m = user_map.truezen
|
2021-04-20 05:15:14 +01:00
|
|
|
|
2021-08-12 12:58:03 +01:00
|
|
|
map("n", m.ataraxisMode, ":TZAtaraxis<CR>", opt)
|
|
|
|
map("n", m.minimalisticmode, ":TZMinimalist<CR>", opt)
|
|
|
|
map("n", m.focusmode, ":TZFocus<CR>", opt)
|
|
|
|
end
|
2021-05-09 09:22:38 +01:00
|
|
|
|
2021-06-27 13:45:58 +01:00
|
|
|
map("n", "<C-s>", ":w <CR>", opt)
|
2021-06-15 11:27:55 +01:00
|
|
|
|
2021-08-12 12:58:03 +01: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)
|
|
|
|
end
|
2021-06-24 18:19:42 +01:00
|
|
|
|
2021-08-12 12:58:03 +01:00
|
|
|
M.nvimtree = function()
|
|
|
|
local m = user_map.nvimtree.treetoggle
|
|
|
|
|
|
|
|
map("n", m, ":NvimTreeToggle<CR>", opt)
|
|
|
|
end
|
|
|
|
|
|
|
|
M.neoformat = function()
|
|
|
|
local m = user_map.neoformat.format
|
|
|
|
map("n", m, ":Neoformat<CR>", opt)
|
|
|
|
end
|
|
|
|
|
|
|
|
M.dashboard = function()
|
|
|
|
local m = user_map.dashboard
|
|
|
|
|
|
|
|
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)
|
|
|
|
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)
|
|
|
|
end
|
|
|
|
|
2021-08-14 08:30:01 +01:00
|
|
|
M.telescope_media = function()
|
|
|
|
local m = user_map.telescope_media
|
|
|
|
map("n", m.media_files, ":Telescope media_files <CR>", opt)
|
|
|
|
end
|
|
|
|
|
2021-08-12 12:58:03 +01:00
|
|
|
M.bufferline = function()
|
|
|
|
local m = user_map.bufferline
|
|
|
|
|
|
|
|
map("n", m.new_buffer, ":enew<CR>", opt) -- new buffer
|
|
|
|
map("n", m.newtab, ":tabnew<CR>", opt) -- new tab
|
|
|
|
map("n", m.close, ":bd!<CR>", opt) -- close buffer
|
|
|
|
|
|
|
|
-- move between tabs
|
|
|
|
|
|
|
|
map("n", m.cycleNext, ":BufferLineCycleNext<CR>", opt)
|
|
|
|
map("n", m.cyclePrev, ":BufferLineCyclePrev<CR>", opt)
|
|
|
|
end
|
2021-07-17 04:38:45 +01:00
|
|
|
|
|
|
|
-- use ESC to turn off search highlighting
|
2021-07-18 11:40:23 +01:00
|
|
|
map("n", "<Esc>", ":noh<CR>", opt)
|
2021-07-17 04:38:45 +01:00
|
|
|
|
2021-07-23 16:11:09 +01:00
|
|
|
-- Packer commands till because we are not loading it at startup
|
2021-08-12 12:58:03 +01:00
|
|
|
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()")
|
|
|
|
|
|
|
|
M.fugitive = function()
|
|
|
|
local m = user_map.fugitive
|
|
|
|
|
|
|
|
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)
|
|
|
|
end
|
|
|
|
|
|
|
|
return M
|