generated from AstroNvim/user_example
-
Notifications
You must be signed in to change notification settings - Fork 0
/
keymaps.lua
111 lines (102 loc) · 3.75 KB
/
keymaps.lua
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
-- Mapping data with "desc" stored directly by vim.keymap.set().
--
-- Please use this mappings table to set keyboard mapping since this is the
-- lower level configuration and more robust one. (which-key will
-- automatically pick-up stored data by this setting.)
local M = {}
function M.mappings(maps)
local utils = require "astronvim.utils"
local is_available = utils.is_available
local opts = { noremap = true, silent = true }
-- Buffer
maps.n["<leader>bn"] = { "<cmd>tabnew<cr>", desc = "New tab" }
maps.n["<leader>bD"] = {
function()
require("astronvim.utils.status").heirline.buffer_picker(
function(bufnr) require("astronvim.utils.buffer").close(bufnr) end
)
end,
desc = "Pick to close",
}
maps.n["<TAB>"] =
{ function() require("astronvim.utils.buffer").nav(vim.v.count > 0 and vim.v.count or 1) end, desc = "Next buffer" }
maps.n["<S-TAB>"] = {
function() require("astronvim.utils.buffer").nav(-(vim.v.count > 0 and vim.v.count or 1)) end,
desc = "Previous buffer",
}
maps.n["<leader>bo"] =
{ function() require("astronvim.utils.buffer").close_all(true) end, desc = "Close all buffers except current" }
maps.n["<leader>ba"] = { function() require("astronvim.utils.buffer").close_all() end, desc = "Close all buffers" }
maps.n["<leader>bc"] = { function() require("astronvim.utils.buffer").close() end, desc = "Close buffer" }
maps.n["<leader>bC"] =
{ function() require("astronvim.utils.buffer").close(0, true) end, desc = "Force close buffer" }
maps.n["<leader>bn"] = { "<cmd>tabnew<cr>", desc = "New tab" }
maps.n["<leader>bD"] = {
function()
require("astronvim.utils.status").heirline.buffer_picker(
function(bufnr) require("astronvim.utils.buffer").close(bufnr) end
)
end,
desc = "Pick to close",
}
-- Window jumping
-- maps.n["<C-h>"] = { "<C-w>h", desc = "jump to the right window" }
-- maps.n["<C-l>"] = { "<C-w>l", desc = "jump to the left window" }
-- maps.n["<C-j>"] = { "<C-w>j", desc = "jump to the bottom window" }
-- maps.n["<C-k>"] = { "<C-w>k", desc = "jump to the up window" }
-- Indent
maps.v["<"] = { "<gv", desc = "Unindent visual block" }
maps.v[">"] = { ">gv", desc = "Indent visual block" }
-- Comments, Comment.nvim
if is_available "Comment.nvim" then
maps.n["<C-/>"] = {
function() require("Comment.api").toggle.linewise.count(vim.v.count > 0 and vim.v.count or 1) end,
desc = "Comment line",
}
maps.v["<C-/>"] =
{ "<esc><cmd>lua require('Comment.api').toggle.linewise(vim.fn.visualmode())<cr>", desc = "Toggle comment line" }
end
maps.v["<leader>/"] = false
maps.n["<leader>/"] = false
-- Flash (easy motion), flash.nvim
if is_available "flash.nvim" then
maps.n["<leader>s"] = {
function() require("flash").jump() end,
desc = "Flash",
}
maps.x["<leader>s"] = {
function() require("flash").jump() end,
desc = "Flash",
}
maps.o["<leader>s"] = {
function() require("flash").jump() end,
desc = "Flash",
}
maps.n["<leader><leader>s"] = {
function() require("flash").treesitter() end,
desc = "Flash Treesitter",
}
maps.x["<leader><leader>s"] = {
function() require("flash").treesitter() end,
desc = "Flash Treesitter",
}
maps.o["<leader><leader>s"] = {
function() require("flash").treesitter() end,
desc = "Flash Treesitter",
}
end
-- vim-visual-multi
if is_available "vim-visual-multi" then
-- visual multi
vim.g.VM_maps = {
["Find Under"] = "<C-n>",
["Find Subword Under"] = "<C-n>",
["Select Cursor Up"] = "<C-S-Up>",
["Select Cursor Down"] = "<C-S-Down>",
["Select All"] = "<C-S-n>",
["Skip Region"] = "<C-x>",
}
end
return maps
end
return M