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 opt = {} -- dont copy any deleted text , this is disabled by default so uncomment the below mappings if you want them --[[ remove this line map("n", "dd", [=[ "_dd ]=], opt) map("v", "dd", [=[ "_dd ]=], opt) map("v", "x", [=[ "_x ]=], opt) this line too ]] -- -- escape with 'jk' mapping vim.api.nvim_set_keymap("i", "jk", "", {}) vim.api.nvim_set_keymap("v", "jk", "", {}) vim.api.nvim_set_keymap("t", "jk", "", {}) -- Don't copy the replaced text after pasting in visual mode map("v", "p", '"_dP', opt) -- OPEN TERMINALS -- map("n", "", [[ vnew +terminal | setlocal nobuflisted ]], opt) -- term over right map("n", "", [[ 10new +terminal | setlocal nobuflisted ]], opt) -- term bottom map("n", "t", [[ terminal ]], opt) -- term buffer -- copy whole file content map("n", "", [[ %y+]], opt) -- toggle numbers map("n", "n", [[ set nu!]], opt) -- Truezen.nvim map("n", "zz", ":TZAtaraxis", opt) map("n", "zm", ":TZMinimalist", opt) map("n", "zf", ":TZFocus", opt) map("n", "", ":w ", opt) -- Commenter Keybinding map("n", "/", ":CommentToggle", opt) map("v", "/", ":CommentToggle", opt) -- compe stuff local t = function(str) return vim.api.nvim_replace_termcodes(str, true, true, true) end local check_back_space = function() local col = vim.fn.col(".") - 1 if col == 0 or vim.fn.getline("."):sub(col, col):match("%s") then return true else return false end end _G.tab_complete = function() if vim.fn.pumvisible() == 1 then return t "" elseif check_back_space() then return t "" else return vim.fn["compe#complete"]() end end _G.s_tab_complete = function() if vim.fn.pumvisible() == 1 then return t "" elseif vim.fn.call("vsnip#jumpable", {-1}) == 1 then return t "(vsnip-jump-prev)" else return t "" end end function _G.completions() local npairs if not pcall( function() npairs = require "nvim-autopairs" end ) then return end if vim.fn.pumvisible() == 1 then if vim.fn.complete_info()["selected"] ~= -1 then return vim.fn["compe#confirm"]("") end end return npairs.check_break_line_char() end -- compe mappings map("i", "", "v:lua.tab_complete()", {expr = true}) map("s", "", "v:lua.tab_complete()", {expr = true}) map("i", "", "v:lua.s_tab_complete()", {expr = true}) map("s", "", "v:lua.s_tab_complete()", {expr = true}) map("i", "", "v:lua.completions()", {expr = true}) -- nvimtree map("n", "", ":NvimTreeToggle", opt) -- format code map("n", "fm", [[ Neoformat]], opt) -- dashboard stuff map("n", "fw", [[ Telescope live_grep]], opt) map("n", "db", [[ Dashboard]], opt) map("n", "fn", [[ DashboardNewFile]], opt) map("n", "bm", [[ DashboardJumpMarks]], opt) map("n", "l", [[ SessionLoad]], opt) map("n", "s", [[ SessionSave]], opt) -- Telescope map("n", "gt", [[ Telescope git_status ]], opt) map("n", "cm", [[ Telescope git_commits ]], opt) map("n", "ff", [[ Telescope find_files ]], opt) map("n", "fp", [[lua require('telescope').extensions.media_files.media_files()]], opt) map("n", "fb", [[Telescope buffers]], opt) map("n", "fh", [[Telescope help_tags]], opt) map("n", "fo", [[Telescope oldfiles]], opt) -- bufferline tab stuff map("n", "", ":enew", opt) -- new buffer map("n", "b", ":tabnew", opt) -- new tab map("n", "", ":bd!", opt) -- close tab -- move between tabs map("n", "", [[BufferLineCycleNext]], opt) map("n", "", [[BufferLineCyclePrev]], opt) -- use ESC to turn off search highlighting map("n", "", ":noh", opt) -- get out of terminal with jk map("t", "jk", "", opt)