1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
|
-- ╭─────────────────────────────────────────────────────────╮
-- │ Keymaps │
-- ╰─────────────────────────────────────────────────────────╯
-- Create keymap function
local mapkey = function(mode, key, desc, action, plugin)
local keymapper = plugin and require("lz.n").keymap(plugin).set or vim.keymap.set
keymapper(mode, key, action, { noremap = true, silent = true, desc = desc })
end
-- Set the leader key
vim.g.mapleader = " "
-- Pickers
mapkey("n", "<leader>f", "Open file picker", ":Pick files<cr>", "mini.pick")
mapkey("n", "<leader>o", "Open old file picker", ":Pick oldfiles<cr>", "mini.pick")
mapkey("n", "<leader>/", "Open live grep picker", ":Pick grep_live<cr>", "mini.pick")
mapkey("n", "<leader>k", "Open colorscheme picker", ":Pick colorschemes<cr>", "mini.pick")
mapkey("n", "<leader>:", "Open command history picker", ":Pick history<cr>", "mini.pick")
-- mapkey("n", "<leader>z", "Open zoxide picker", ":FzfLua zoxide<cr>", "fzf-lua")
-- mapkey("n", "<leader>L", "Open cd picker", ":lua Custom_pickers.fzf_dir_cd()<cr>", "fzf-lua")
-- mapkey("n", "<leader>l", "Open tab cd picker", ":lua Custom_pickers.fzf_dir_tcd()<cr>", "fzf-lua")
-- File manager
mapkey("n", "<leader>e", "Open file manager", ":lua MiniFiles.open()<cr>", "mini.files")
-- Git
mapkey("n", "<leader>g", "Manage git", "")
mapkey("n", "<leader>ga", "Git add", ":Git add %:p<cr>", "mini-git")
mapkey("n", "<leader>gA", "Git add cwd", function() vim.cmd("Git add " .. vim.fn.getcwd() .. "/.") end, "mini-git")
mapkey("n", "<leader>gr", "Git remove", ":Git rm %:p<cr>", "mini-git")
mapkey("n", "<leader>gc", "Git commit", ":Git commit<cr>", "mini-git")
mapkey("n", "<leader>gC", "Browse git commits", ":Pick git_commits<cr>", "mini.pick")
mapkey("n", "<leader>gb", "Browse git branches", ":Pick git_branches<cr>", "mini.pick")
-- mapkey("n", "<leader>gB", "Browse git blame", ":FzfLua git_blame<cr>", "fzf-lua")
-- mapkey("n", "<leader>gg", "Git status", ":FzfLua git_status<cr>", "fzf-lua")
mapkey("n", "<leader>gp", "Git pull", ":Git pull<cr>", "mini-git")
mapkey("n", "<leader>gP", "Git push", ":Git push<cr>", "mini-git")
-- Tabs
mapkey("n", "<leader>t", "Manage tabs", "")
mapkey("n", "<leader>tt", "Go to next tab", ":tabn<cr>")
mapkey("n", "<leader>tT", "Go to previous tab", ":tabp<cr>")
mapkey("n", "<leader>to", "Open new tab", ":tabnew<cr>")
mapkey("n", "<leader>tc", "Close current tab", ":tabclose<cr>")
-- Buffers
mapkey("n", "<leader>b", "Manage buffers", "")
mapkey("n", "<leader>bb", "Open buffer picker", ":Pick buffers<cr>", "mini.pick")
mapkey("n", "<leader>bc", "Clear invisible buffers", function ()
local bufinfos = vim.fn.getbufinfo({buflisted = 1})
vim.tbl_map(function (bufinfo)
if bufinfo.changed == 0 and (not bufinfo.windows or #bufinfo.windows == 0) then
vim.api.nvim_buf_delete(bufinfo.bufnr, {force = false, unload = false})
vim.cmd.redrawtabline()
end
end, bufinfos)
end)
-- Comment box
mapkey({"n", "v"}, "<leader>j", "Manage comment graphics", "")
mapkey({"n", "v"}, "<leader>jd", "Remove comment graphics", ":CBd<cr>")
mapkey({"n", "v"}, "<leader>jb", "Create simple comment box", ":CBccbox<cr>")
mapkey({"n", "v"}, "<leader>jh", "Create heavy comment box", ":CBccbox3<cr>")
mapkey({"n", "v"}, "<leader>jq", "Create quote comment box", ":CBccbox12<cr>")
mapkey({"n", "v"}, "<leader>jl", "Create simple comment line", ":CBccline<cr>")
-- Session
mapkey("n", "<leader>w", "Manage sessions", "")
mapkey("n", "<leader>ww", "Search sessions", ":AutoSession search<cr>", "mini.pick")
mapkey("n", "<leader>wd", "Delete a session", ":AutoSession deletePicker<cr>", "mini.pick")
mapkey("n", "<leader>ws", "Save current session", ":AutoSession save<cr>")
mapkey("n", "<leader>wr", "Open last session", ":AutoSession restore<cr>")
mapkey("n", "<leader>wp", "Purge orphaned sessions", ":AutoSession purgeOrphaned<cr>")
mapkey("n", "<leader>wl", "Leave current session", function()
vim.cmd("wa")
vim.cmd("AutoSession save")
vim.cmd("new")
vim.cmd([[.+,$bwipeout]])
vim.cmd("cd ~")
end)
-- Terminal
mapkey("n", "<leader>n", "Open terminal", ":botright terminal<cr>")
-- Toggle spellcheck
mapkey("n", "zq", "Toggle spellcheck", ":set spell!<cr>")
-- Spelling suggestions
mapkey("n", "z=", "Pick spelling suggestions", ":Pick spellsuggest<cr>")
-- Do operations without yanking
mapkey({ "n", "v" }, "<leader>d", "Fully delete", [["_d]])
mapkey({ "n", "v" }, "<leader>D", "Fully delete line", [["_D]])
mapkey({ "n", "v" }, "<leader>x", "Fully delete character", [["_x]])
mapkey({ "n", "v" }, "<leader>X", "Fully delete previous character", [["_X]])
mapkey({ "n", "v" }, "<leader>c", "Fully change", [["_c]])
mapkey({ "n", "v" }, "<leader>C", "Fully change line", [["_C]])
mapkey({ "v" }, "<leader>p", "Fully put", [[P]])
-- Paste on newline
mapkey("n", "<leader>p", "Paste on newline", ":pu<cr>")
-- Visual Movement Keys
mapkey({ "n", "v" }, "j", "Go down visually", "gj")
mapkey({ "n", "v" }, "k", "Go up visually", "gk")
mapkey({ "n", "v" }, "<down>", "Go down visually", "g<down>")
mapkey({ "n", "v" }, "<up>", "Go up visually", "g<up>")
-- QOL Keys
mapkey("t", "<Esc><Esc>", "Exit terminal insert mode", "<C-\\><C-n>")
-- vim.keymap.set("c", "<cr>", function()
-- if vim.fn.pumvisible() == 1 then return '<c-y>' end
-- return '<cr>'
-- end, { expr = true }) -- Make enter complete command.
mapkey("n", "<esc>", "Clear highlights", ":noh<cr>") -- Make esc clear highlights
|