tangled
alpha
login
or
join now
oeiuwq.com
/
vix
1
fork
atom
Vic's *Nix config.
1
fork
atom
overview
issues
pulls
pipelines
fmt
oeiuwq.com
6 months ago
f3d8960d
6e00180d
+756
-723
19 changed files
expand all
collapse all
unified
split
modules
flake
fmt-excludes.nix
vic
_fish
aliases.nix
dots
config
nvim
after
ftplugin
rust.lua
init.lua
lazy-lock.json
lua
lazy-bootstrap.lua
plugins
codecompanion.lua
haunt.lua
hunk.lua
jj.lua
minifile.lua
rustaceanvim.lua
snacks
dashboard.lua
initf.lua
keys.lua
snacks.lua
tv.lua
which-key.lua
prelude.lua
+1
-1
modules/flake/fmt-excludes.nix
···
5
5
".envrc"
6
6
".leaderrc"
7
7
"*.el" # TODO contribute an emacs treefmt
8
8
-
"*/config/nvim/*"
8
8
+
"**/.gitignore"
9
9
"*/config/ghostty/*"
10
10
"*/config/wezterm/*"
11
11
"*/vic/dots/vscode/*"
+1
modules/vic/_fish/aliases.nix
···
5
5
tree = "exa -T";
6
6
# "." = "exa -g";
7
7
".." = "cd ..";
8
8
+
vs = ''vim -c "lua Snacks.picker.smart()"'';
8
9
vf = ''vim -c "lua Snacks.picker.files()"'';
9
10
vg = ''vim -c "lua Snacks.picker.grep()"'';
10
11
vr = ''vim -c "lua Snacks.picker.recent()"'';
+10
-15
modules/vic/dots/config/nvim/after/ftplugin/rust.lua
···
1
1
local bufnr = vim.api.nvim_get_current_buf()
2
2
+
vim.keymap.set("n", "<leader>a", function()
3
3
+
vim.cmd.RustLsp("codeAction") -- supports rust-analyzer's grouping
4
4
+
-- or vim.lsp.buf.codeAction() if you don't want grouping.
5
5
+
end, { silent = true, buffer = bufnr })
2
6
vim.keymap.set(
3
3
-
"n",
4
4
-
"<leader>a",
5
5
-
function()
6
6
-
vim.cmd.RustLsp('codeAction') -- supports rust-analyzer's grouping
7
7
-
-- or vim.lsp.buf.codeAction() if you don't want grouping.
8
8
-
end,
9
9
-
{ silent = true, buffer = bufnr }
10
10
-
)
11
11
-
vim.keymap.set(
12
12
-
"n",
13
13
-
"K", -- Override Neovim's built-in hover keymap with rustaceanvim's hover actions
14
14
-
function()
15
15
-
vim.cmd.RustLsp({'hover', 'actions'})
16
16
-
end,
17
17
-
{ silent = true, buffer = bufnr }
7
7
+
"n",
8
8
+
"K", -- Override Neovim's built-in hover keymap with rustaceanvim's hover actions
9
9
+
function()
10
10
+
vim.cmd.RustLsp({ "hover", "actions" })
11
11
+
end,
12
12
+
{ silent = true, buffer = bufnr }
18
13
)
+5
-5
modules/vic/dots/config/nvim/init.lua
···
1
1
if vim.g.vscode then
2
2
-
-- VSCode extension
2
2
+
-- VSCode extension
3
3
else
4
4
-
require 'prelude'
5
5
-
require 'lazy-bootstrap'
6
6
-
require("lazy").setup("plugins")
7
7
-
end
4
4
+
require("prelude")
5
5
+
require("lazy-bootstrap")
6
6
+
require("lazy").setup("plugins")
7
7
+
end
+48
-12
modules/vic/dots/config/nvim/lazy-lock.json
···
1
1
{
2
2
-
"CopilotChat.nvim": { "branch": "main", "commit": "1b176f209a9ff85905fa5952898b1f9d4ad676cc" },
3
3
-
"codecompanion.nvim": { "branch": "main", "commit": "c13422e23b45bfd49906c22014929dc4be8d67c7" },
4
4
-
"haunt.nvim": { "branch": "master", "commit": "5f96968844f77fef4756df0f14b9d8e9077691e0" },
5
5
-
"hunk.nvim": { "branch": "master", "commit": "1e0a4d719c780bb8b0690a54915601508ced321e" },
6
6
-
"jj.nvim": { "branch": "main", "commit": "b8eb856228e42bc5548842cc9d43d49c39d7d180" },
7
7
-
"lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" },
8
8
-
"mini.nvim": { "branch": "main", "commit": "48b924e4f3b37f62246873d237a4a89704d88948" },
9
9
-
"plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
10
10
-
"rustaceanvim": { "branch": "master", "commit": "12504405821c05874d2d1f6b5ec919f9808e2c99" },
11
11
-
"snacks.nvim": { "branch": "main", "commit": "f2746da0bb83df0febd97ac2e71e2b790ac89e2d" },
12
12
-
"tv.vim": { "branch": "main", "commit": "88163c4cfd72e580452a72af46282d707abc186b" },
13
13
-
"which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" }
2
2
+
"CopilotChat.nvim": {
3
3
+
"branch": "main",
4
4
+
"commit": "1b176f209a9ff85905fa5952898b1f9d4ad676cc"
5
5
+
},
6
6
+
"codecompanion.nvim": {
7
7
+
"branch": "main",
8
8
+
"commit": "c13422e23b45bfd49906c22014929dc4be8d67c7"
9
9
+
},
10
10
+
"haunt.nvim": {
11
11
+
"branch": "master",
12
12
+
"commit": "5f96968844f77fef4756df0f14b9d8e9077691e0"
13
13
+
},
14
14
+
"hunk.nvim": {
15
15
+
"branch": "master",
16
16
+
"commit": "1e0a4d719c780bb8b0690a54915601508ced321e"
17
17
+
},
18
18
+
"jj.nvim": {
19
19
+
"branch": "main",
20
20
+
"commit": "b8eb856228e42bc5548842cc9d43d49c39d7d180"
21
21
+
},
22
22
+
"lazy.nvim": {
23
23
+
"branch": "main",
24
24
+
"commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a"
25
25
+
},
26
26
+
"mini.nvim": {
27
27
+
"branch": "main",
28
28
+
"commit": "48b924e4f3b37f62246873d237a4a89704d88948"
29
29
+
},
30
30
+
"plenary.nvim": {
31
31
+
"branch": "master",
32
32
+
"commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509"
33
33
+
},
34
34
+
"rustaceanvim": {
35
35
+
"branch": "master",
36
36
+
"commit": "12504405821c05874d2d1f6b5ec919f9808e2c99"
37
37
+
},
38
38
+
"snacks.nvim": {
39
39
+
"branch": "main",
40
40
+
"commit": "f2746da0bb83df0febd97ac2e71e2b790ac89e2d"
41
41
+
},
42
42
+
"tv.vim": {
43
43
+
"branch": "main",
44
44
+
"commit": "88163c4cfd72e580452a72af46282d707abc186b"
45
45
+
},
46
46
+
"which-key.nvim": {
47
47
+
"branch": "main",
48
48
+
"commit": "370ec46f710e058c9c1646273e6b225acf47cbed"
49
49
+
}
14
50
}
+6
-6
modules/vic/dots/config/nvim/lua/lazy-bootstrap.lua
···
1
1
-- [[ Install `lazy.nvim` plugin manager ]]
2
2
-- See `:help lazy.nvim.txt` or https://github.com/folke/lazy.nvim for more info
3
3
-
local lazypath = vim.fn.stdpath 'data' .. '/lazy/lazy.nvim'
3
3
+
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
4
4
if not (vim.uv or vim.loop).fs_stat(lazypath) then
5
5
-
local lazyrepo = 'https://github.com/folke/lazy.nvim.git'
6
6
-
local out = vim.fn.system { 'git', 'clone', '--filter=blob:none', '--branch=stable', lazyrepo, lazypath }
7
7
-
if vim.v.shell_error ~= 0 then
8
8
-
error('Error cloning lazy.nvim:\n' .. out)
9
9
-
end
5
5
+
local lazyrepo = "https://github.com/folke/lazy.nvim.git"
6
6
+
local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
7
7
+
if vim.v.shell_error ~= 0 then
8
8
+
error("Error cloning lazy.nvim:\n" .. out)
9
9
+
end
10
10
end
11
11
12
12
---@type vim.Option
+6
-7
modules/vic/dots/config/nvim/lua/plugins/codecompanion.lua
···
1
1
return { {
2
2
-
"olimorris/codecompanion.nvim",
3
3
-
opts = {},
4
4
-
dependencies = {
5
5
-
"nvim-lua/plenary.nvim",
6
6
-
},
7
7
-
},
8
8
-
}
2
2
+
"olimorris/codecompanion.nvim",
3
3
+
opts = {},
4
4
+
dependencies = {
5
5
+
"nvim-lua/plenary.nvim",
6
6
+
},
7
7
+
} }
+7
-8
modules/vic/dots/config/nvim/lua/plugins/haunt.lua
···
1
1
return {
2
2
-
{
3
3
-
"https://git.sr.ht/~adigitoleo/haunt.nvim",
4
4
-
lazy = true,
5
5
-
config = function()
6
6
-
require('haunt').setup({
7
7
-
})
8
8
-
end,
9
9
-
}
2
2
+
{
3
3
+
"https://git.sr.ht/~adigitoleo/haunt.nvim",
4
4
+
lazy = true,
5
5
+
config = function()
6
6
+
require("haunt").setup({})
7
7
+
end,
8
8
+
},
10
9
}
+7
-7
modules/vic/dots/config/nvim/lua/plugins/hunk.lua
···
1
1
return {
2
2
-
{
3
3
-
"julienvincent/hunk.nvim",
4
4
-
cmd = { "DiffEditor" },
5
5
-
config = function()
6
6
-
require("hunk").setup()
7
7
-
end,
8
8
-
}
2
2
+
{
3
3
+
"julienvincent/hunk.nvim",
4
4
+
cmd = { "DiffEditor" },
5
5
+
config = function()
6
6
+
require("hunk").setup()
7
7
+
end,
8
8
+
},
9
9
}
+36
-40
modules/vic/dots/config/nvim/lua/plugins/jj.lua
···
1
1
return {
2
2
3
3
-
{
4
4
-
"nicolasgb/jj.nvim",
5
5
-
dependencies = {
6
6
-
"folke/snacks.nvim", -- Optional only if you use picker's
7
7
-
},
8
8
-
config = function()
9
9
-
require("jj").setup({})
10
10
-
local cmd = require "jj.cmd"
11
11
-
vim.keymap.set("n", "<leader>jj", '<cmd>J<CR>', { desc = "JJ" })
12
12
-
vim.keymap.set("n", "<leader>jd", cmd.describe, { desc = "JJ describe" })
13
13
-
vim.keymap.set("n", "<leader>jl", cmd.log, { desc = "JJ log" })
14
14
-
vim.keymap.set("n", "<leader>je", cmd.edit, { desc = "JJ edit" })
15
15
-
vim.keymap.set("n", "<leader>jn", cmd.new, { desc = "JJ new" })
16
16
-
vim.keymap.set("n", "<leader>js", cmd.status, { desc = "JJ status" })
17
17
-
vim.keymap.set("n", "<leader>ji", cmd.diff, { desc = "JJ diff" })
18
18
-
vim.keymap.set("n", "<leader>jq", cmd.squash, { desc = "JJ squash" })
19
19
-
20
20
-
-- Pickers
21
21
-
vim.keymap.set("n", "<leader>gj", function()
22
22
-
require("jj.picker").status()
23
23
-
end, { desc = "JJ Picker status" })
24
24
-
vim.keymap.set("n", "<leader>gl", function()
25
25
-
require("jj.picker").file_history()
26
26
-
end, { desc = "JJ Picker file history" })
27
27
-
28
28
-
3
3
+
{
4
4
+
"nicolasgb/jj.nvim",
5
5
+
dependencies = {
6
6
+
"folke/snacks.nvim", -- Optional only if you use picker's
7
7
+
},
8
8
+
config = function()
9
9
+
require("jj").setup({})
10
10
+
local cmd = require("jj.cmd")
11
11
+
vim.keymap.set("n", "<leader>jj", "<cmd>J<CR>", { desc = "JJ" })
12
12
+
vim.keymap.set("n", "<leader>jd", cmd.describe, { desc = "JJ describe" })
13
13
+
vim.keymap.set("n", "<leader>jl", cmd.log, { desc = "JJ log" })
14
14
+
vim.keymap.set("n", "<leader>je", cmd.edit, { desc = "JJ edit" })
15
15
+
vim.keymap.set("n", "<leader>jn", cmd.new, { desc = "JJ new" })
16
16
+
vim.keymap.set("n", "<leader>js", cmd.status, { desc = "JJ status" })
17
17
+
vim.keymap.set("n", "<leader>ji", cmd.diff, { desc = "JJ diff" })
18
18
+
vim.keymap.set("n", "<leader>jq", cmd.squash, { desc = "JJ squash" })
29
19
30
30
-
-- Some functions like `describe` or `log` can take parameters
31
31
-
vim.keymap.set("n", "<leader>jl", function()
32
32
-
cmd.log {
33
33
-
revisions = "all()",
34
34
-
}
35
35
-
end, { desc = "JJ log" })
20
20
+
-- Pickers
21
21
+
vim.keymap.set("n", "<leader>gj", function()
22
22
+
require("jj.picker").status()
23
23
+
end, { desc = "JJ Picker status" })
24
24
+
vim.keymap.set("n", "<leader>gl", function()
25
25
+
require("jj.picker").file_history()
26
26
+
end, { desc = "JJ Picker file history" })
36
27
37
37
-
-- This is an alias i use for moving bookmarks its so good
38
38
-
vim.keymap.set("n", "<leader>jt", function()
39
39
-
cmd.j "tug"
40
40
-
cmd.log {}
41
41
-
end, { desc = "JJ tug" })
42
42
-
end,
43
43
-
}
28
28
+
-- Some functions like `describe` or `log` can take parameters
29
29
+
vim.keymap.set("n", "<leader>jl", function()
30
30
+
cmd.log({
31
31
+
revisions = "all()",
32
32
+
})
33
33
+
end, { desc = "JJ log" })
44
34
35
35
+
-- This is an alias i use for moving bookmarks its so good
36
36
+
vim.keymap.set("n", "<leader>jt", function()
37
37
+
cmd.j("tug")
38
38
+
cmd.log({})
39
39
+
end, { desc = "JJ tug" })
40
40
+
end,
41
41
+
},
45
42
}
46
46
-
+21
-15
modules/vic/dots/config/nvim/lua/plugins/minifile.lua
···
1
1
return {
2
2
-
{
3
3
-
'nvim-mini/mini.nvim',
4
4
-
version = false,
5
5
-
lazy = true,
6
6
-
keys = {
7
7
-
{ '<leader>E', function() require('mini.files').open() end, desc = "Explore" },
8
8
-
},
9
9
-
config = function()
10
10
-
require('mini.files').setup({
11
11
-
mappings = {
12
12
-
close = '<ESC>',
13
13
-
go_in_plus = '<CR>',
2
2
+
{
3
3
+
"nvim-mini/mini.nvim",
4
4
+
version = false,
5
5
+
lazy = true,
6
6
+
keys = {
7
7
+
{
8
8
+
"<leader>E",
9
9
+
function()
10
10
+
require("mini.files").open()
11
11
+
end,
12
12
+
desc = "Explore",
13
13
+
},
14
14
+
},
15
15
+
config = function()
16
16
+
require("mini.files").setup({
17
17
+
mappings = {
18
18
+
close = "<ESC>",
19
19
+
go_in_plus = "<CR>",
20
20
+
},
21
21
+
})
22
22
+
end,
14
23
},
15
15
-
})
16
16
-
end,
17
17
-
},
18
24
}
+4
-4
modules/vic/dots/config/nvim/lua/plugins/rustaceanvim.lua
···
1
1
return {
2
2
{
3
3
-
'mrcjkb/rustaceanvim',
4
4
-
version = '^6', -- Recommended
3
3
+
"mrcjkb/rustaceanvim",
4
4
+
version = "^6", -- Recommended
5
5
lazy = false, -- This plugin is already lazy
6
6
-
}
7
7
-
}
6
6
+
},
7
7
+
}
+5
-4
modules/vic/dots/config/nvim/lua/plugins/snacks.lua
···
1
1
-
return { {
1
1
+
return {
2
2
+
{
2
3
"folke/snacks.nvim",
3
4
priority = 1000,
4
5
lazy = false,
5
6
---@type snacks.Config
6
7
opts = {
7
8
bigfile = { enabled = true },
8
8
-
dashboard = require('plugins.snacks.dashboard'),
9
9
+
dashboard = require("plugins.snacks.dashboard"),
9
10
explorer = { enabled = true },
10
11
indent = { enabled = true },
11
12
input = { enabled = true },
···
25
26
},
26
27
},
27
28
},
28
28
-
keys = require('plugins.snacks.keys'),
29
29
-
init = require('plugins.snacks.initf'),
29
29
+
keys = require("plugins.snacks.keys"),
30
30
+
init = require("plugins.snacks.initf"),
30
31
},
31
32
}
+28
-28
modules/vic/dots/config/nvim/lua/plugins/snacks/dashboard.lua
···
1
1
return {
2
2
-
enabled = true;
3
3
-
sections = {
4
4
-
{ icon = " ", title = "Recent Files", section = "recent_files", indent = 2, padding = 1 },
5
5
-
{ icon = " ", title = "Projects", section = "projects", indent = 2, padding = 1 },
6
6
-
{
7
7
-
icon = " ",
8
8
-
title = "jj Status",
9
9
-
section = "terminal",
10
10
-
enabled = function()
11
11
-
return Snacks.git.get_root() ~= nil
12
12
-
end,
13
13
-
cmd = "jj --ignore-working-copy show --no-patch --no-pager",
14
14
-
height = 10,
15
15
-
padding = 1,
16
16
-
ttl = 5 * 60,
17
17
-
indent = 3,
18
18
-
},
19
19
-
{ pane = 2, section = "startup" },
20
20
-
{ pane = 2, section = "header" },
21
21
-
{
22
22
-
pane = 2,
23
23
-
section = "terminal",
24
24
-
cmd = "echo hola",
25
25
-
height = 5,
26
26
-
padding = 1,
27
27
-
},
28
28
-
{ pane = 2, section = "keys", gap = 1, padding = 1 },
29
29
-
},
2
2
+
enabled = true,
3
3
+
sections = {
4
4
+
{ icon = " ", title = "Recent Files", section = "recent_files", indent = 2, padding = 1 },
5
5
+
{ icon = " ", title = "Projects", section = "projects", indent = 2, padding = 1 },
6
6
+
{
7
7
+
icon = " ",
8
8
+
title = "jj Status",
9
9
+
section = "terminal",
10
10
+
enabled = function()
11
11
+
return Snacks.git.get_root() ~= nil
12
12
+
end,
13
13
+
cmd = "jj --ignore-working-copy show --no-patch --no-pager",
14
14
+
height = 10,
15
15
+
padding = 1,
16
16
+
ttl = 5 * 60,
17
17
+
indent = 3,
18
18
+
},
19
19
+
{ pane = 2, section = "startup" },
20
20
+
{ pane = 2, section = "header" },
21
21
+
{
22
22
+
pane = 2,
23
23
+
section = "terminal",
24
24
+
cmd = "echo hola",
25
25
+
height = 5,
26
26
+
padding = 1,
27
27
+
},
28
28
+
{ pane = 2, section = "keys", gap = 1, padding = 1 },
29
29
+
},
30
30
}
+31
-32
modules/vic/dots/config/nvim/lua/plugins/snacks/initf.lua
···
1
1
-
return (function()
2
2
-
vim.api.nvim_create_autocmd("User", {
3
3
-
pattern = "VeryLazy",
4
4
-
callback = function()
5
5
-
-- Setup some globals for debugging (lazy-loaded)
6
6
-
_G.dd = function(...)
7
7
-
Snacks.debug.inspect(...)
8
8
-
end
9
9
-
_G.bt = function()
10
10
-
Snacks.debug.backtrace()
11
11
-
end
12
12
-
vim.print = _G.dd -- Override print to use snacks for `:=` command
1
1
+
return function()
2
2
+
vim.api.nvim_create_autocmd("User", {
3
3
+
pattern = "VeryLazy",
4
4
+
callback = function()
5
5
+
-- Setup some globals for debugging (lazy-loaded)
6
6
+
_G.dd = function(...)
7
7
+
Snacks.debug.inspect(...)
8
8
+
end
9
9
+
_G.bt = function()
10
10
+
Snacks.debug.backtrace()
11
11
+
end
12
12
+
vim.print = _G.dd -- Override print to use snacks for `:=` command
13
13
14
14
-
-- Create some toggle mappings
15
15
-
Snacks.toggle.option("spell", { name = "Spelling" }):map("<leader>us")
16
16
-
Snacks.toggle.option("wrap", { name = "Wrap" }):map("<leader>uw")
17
17
-
Snacks.toggle.option("relativenumber", { name = "Relative Number" }):map("<leader>uL")
18
18
-
Snacks.toggle.diagnostics():map("<leader>ud")
19
19
-
Snacks.toggle.line_number():map("<leader>ul")
20
20
-
Snacks.toggle
21
21
-
.option("conceallevel", { off = 0, on = vim.o.conceallevel > 0 and vim.o.conceallevel or 2 })
22
22
-
:map("<leader>uc")
23
23
-
Snacks.toggle.treesitter():map("<leader>uT")
24
24
-
Snacks.toggle
25
25
-
.option("background", { off = "light", on = "dark", name = "Dark Background" })
26
26
-
:map("<leader>ub")
27
27
-
Snacks.toggle.inlay_hints():map("<leader>uh")
28
28
-
Snacks.toggle.indent():map("<leader>ug")
29
29
-
Snacks.toggle.dim():map("<leader>uD")
30
30
-
end,
31
31
-
})
32
32
-
end)
33
33
-
14
14
+
-- Create some toggle mappings
15
15
+
Snacks.toggle.option("spell", { name = "Spelling" }):map("<leader>us")
16
16
+
Snacks.toggle.option("wrap", { name = "Wrap" }):map("<leader>uw")
17
17
+
Snacks.toggle.option("relativenumber", { name = "Relative Number" }):map("<leader>uL")
18
18
+
Snacks.toggle.diagnostics():map("<leader>ud")
19
19
+
Snacks.toggle.line_number():map("<leader>ul")
20
20
+
Snacks.toggle
21
21
+
.option("conceallevel", { off = 0, on = vim.o.conceallevel > 0 and vim.o.conceallevel or 2 })
22
22
+
:map("<leader>uc")
23
23
+
Snacks.toggle.treesitter():map("<leader>uT")
24
24
+
Snacks.toggle
25
25
+
.option("background", { off = "light", on = "dark", name = "Dark Background" })
26
26
+
:map("<leader>ub")
27
27
+
Snacks.toggle.inlay_hints():map("<leader>uh")
28
28
+
Snacks.toggle.indent():map("<leader>ug")
29
29
+
Snacks.toggle.dim():map("<leader>uD")
30
30
+
end,
31
31
+
})
32
32
+
end
+486
-485
modules/vic/dots/config/nvim/lua/plugins/snacks/keys.lua
···
1
1
return {
2
2
-
-- Top Pickers & Explorer
3
3
-
{
4
4
-
"<leader><space>",
5
5
-
function()
6
6
-
Snacks.picker.smart()
7
7
-
end,
8
8
-
desc = "Smart Find Files",
9
9
-
},
10
10
-
{
11
11
-
"<leader>,",
12
12
-
function()
13
13
-
Snacks.picker.buffers()
14
14
-
end,
15
15
-
desc = "Buffers",
16
16
-
},
17
17
-
{
18
18
-
"<leader>/",
19
19
-
function()
20
20
-
Snacks.picker.grep()
21
21
-
end,
22
22
-
desc = "Grep",
23
23
-
},
24
24
-
{
25
25
-
"<leader>:",
26
26
-
function()
27
27
-
Snacks.picker.command_history()
28
28
-
end,
29
29
-
desc = "Command History",
30
30
-
},
31
31
-
{
32
32
-
"<leader>n",
33
33
-
function()
34
34
-
Snacks.picker.notifications()
35
35
-
end,
36
36
-
desc = "Notification History",
37
37
-
},
38
38
-
{
39
39
-
"<leader>e",
40
40
-
function()
41
41
-
Snacks.explorer()
42
42
-
end,
43
43
-
desc = "File Explorer",
44
44
-
},
45
45
-
-- find
46
46
-
{
47
47
-
"<leader>fb",
48
48
-
function()
49
49
-
Snacks.picker.buffers()
50
50
-
end,
51
51
-
desc = "Buffers",
52
52
-
},
53
53
-
{
54
54
-
"<leader>fc",
55
55
-
function()
56
56
-
Snacks.picker.files({ cwd = vim.fn.stdpath("config") })
57
57
-
end,
58
58
-
desc = "Find Config File",
59
59
-
},
60
60
-
{
61
61
-
"<leader>ff",
62
62
-
function()
63
63
-
Snacks.picker.files()
64
64
-
end,
65
65
-
desc = "Find Files",
66
66
-
},
67
67
-
{
68
68
-
"<leader>fg",
69
69
-
function()
70
70
-
Snacks.picker.git_files()
71
71
-
end,
72
72
-
desc = "Find Git Files",
73
73
-
},
74
74
-
{
75
75
-
"<leader>fp",
76
76
-
function()
77
77
-
Snacks.picker.projects()
78
78
-
end,
79
79
-
desc = "Projects",
80
80
-
},
81
81
-
{
82
82
-
"<leader>fr",
83
83
-
function()
84
84
-
Snacks.picker.recent()
85
85
-
end,
86
86
-
desc = "Recent",
87
87
-
},
88
88
-
-- git
89
89
-
{
90
90
-
"<leader>gb",
91
91
-
function()
92
92
-
Snacks.picker.git_branches()
93
93
-
end,
94
94
-
desc = "Git Branches",
95
95
-
},
96
96
-
{
97
97
-
"<leader>gl",
98
98
-
function()
99
99
-
Snacks.picker.git_log()
100
100
-
end,
101
101
-
desc = "Git Log",
102
102
-
},
103
103
-
{
104
104
-
"<leader>gL",
105
105
-
function()
106
106
-
Snacks.picker.git_log_line()
107
107
-
end,
108
108
-
desc = "Git Log Line",
109
109
-
},
110
110
-
{
111
111
-
"<leader>gs",
112
112
-
function()
113
113
-
Snacks.picker.git_status()
114
114
-
end,
115
115
-
desc = "Git Status",
116
116
-
},
117
117
-
{
118
118
-
"<leader>gS",
119
119
-
function()
120
120
-
Snacks.picker.git_stash()
121
121
-
end,
122
122
-
desc = "Git Stash",
123
123
-
},
124
124
-
{
125
125
-
"<leader>gd",
126
126
-
function()
127
127
-
Snacks.picker.git_diff()
128
128
-
end,
129
129
-
desc = "Git Diff (Hunks)",
130
130
-
},
131
131
-
{
132
132
-
"<leader>gf",
133
133
-
function()
134
134
-
Snacks.picker.git_log_file()
135
135
-
end,
136
136
-
desc = "Git Log File",
137
137
-
},
138
138
-
-- Grep
139
139
-
{
140
140
-
"<leader>sb",
141
141
-
function()
142
142
-
Snacks.picker.lines()
143
143
-
end,
144
144
-
desc = "Buffer Lines",
145
145
-
},
146
146
-
{
147
147
-
"<leader>sB",
148
148
-
function()
149
149
-
Snacks.picker.grep_buffers()
150
150
-
end,
151
151
-
desc = "Grep Open Buffers",
152
152
-
},
153
153
-
{
154
154
-
"<leader>sg",
155
155
-
function()
156
156
-
Snacks.picker.grep()
157
157
-
end,
158
158
-
desc = "Grep",
159
159
-
},
160
160
-
{
161
161
-
"<leader>sw",
162
162
-
function()
163
163
-
Snacks.picker.grep_word()
164
164
-
end,
165
165
-
desc = "Visual selection or word",
166
166
-
mode = { "n", "x" },
167
167
-
},
168
168
-
-- search
169
169
-
{
170
170
-
'<leader>s"',
171
171
-
function()
172
172
-
Snacks.picker.registers()
173
173
-
end,
174
174
-
desc = "Registers",
175
175
-
},
176
176
-
{
177
177
-
"<leader>s/",
178
178
-
function()
179
179
-
Snacks.picker.search_history()
180
180
-
end,
181
181
-
desc = "Search History",
182
182
-
},
183
183
-
{
184
184
-
"<leader>sa",
185
185
-
function()
186
186
-
Snacks.picker.autocmds()
187
187
-
end,
188
188
-
desc = "Autocmds",
189
189
-
},
190
190
-
{
191
191
-
"<leader>sb",
192
192
-
function()
193
193
-
Snacks.picker.lines()
194
194
-
end,
195
195
-
desc = "Buffer Lines",
196
196
-
},
197
197
-
{
198
198
-
"<leader>sc",
199
199
-
function()
200
200
-
Snacks.picker.command_history()
201
201
-
end,
202
202
-
desc = "Command History",
203
203
-
},
204
204
-
{
205
205
-
"<leader>sC",
206
206
-
function()
207
207
-
Snacks.picker.commands()
208
208
-
end,
209
209
-
desc = "Commands",
210
210
-
},
211
211
-
{
212
212
-
"<leader>sd",
213
213
-
function()
214
214
-
Snacks.picker.diagnostics()
215
215
-
end,
216
216
-
desc = "Diagnostics",
217
217
-
},
218
218
-
{
219
219
-
"<leader>sD",
220
220
-
function()
221
221
-
Snacks.picker.diagnostics_buffer()
222
222
-
end,
223
223
-
desc = "Buffer Diagnostics",
224
224
-
},
225
225
-
{
226
226
-
"<leader>sh",
227
227
-
function()
228
228
-
Snacks.picker.help()
229
229
-
end,
230
230
-
desc = "Help Pages",
231
231
-
},
232
232
-
{
233
233
-
"<leader>sH",
234
234
-
function()
235
235
-
Snacks.picker.highlights()
236
236
-
end,
237
237
-
desc = "Highlights",
238
238
-
},
239
239
-
{
240
240
-
"<leader>si",
241
241
-
function()
242
242
-
Snacks.picker.icons()
243
243
-
end,
244
244
-
desc = "Icons",
245
245
-
},
246
246
-
{
247
247
-
"<leader>sj",
248
248
-
function()
249
249
-
Snacks.picker.jumps()
250
250
-
end,
251
251
-
desc = "Jumps",
252
252
-
},
253
253
-
{
254
254
-
"<leader>sk",
255
255
-
function()
256
256
-
Snacks.picker.keymaps()
257
257
-
end,
258
258
-
desc = "Keymaps",
259
259
-
},
260
260
-
{
261
261
-
"<leader>sl",
262
262
-
function()
263
263
-
Snacks.picker.loclist()
264
264
-
end,
265
265
-
desc = "Location List",
266
266
-
},
267
267
-
{
268
268
-
"<leader>sm",
269
269
-
function()
270
270
-
Snacks.picker.marks()
271
271
-
end,
272
272
-
desc = "Marks",
273
273
-
},
274
274
-
{
275
275
-
"<leader>sM",
276
276
-
function()
277
277
-
Snacks.picker.man()
278
278
-
end,
279
279
-
desc = "Man Pages",
280
280
-
},
281
281
-
{
282
282
-
"<leader>sp",
283
283
-
function()
284
284
-
Snacks.picker.lazy()
285
285
-
end,
286
286
-
desc = "Search for Plugin Spec",
287
287
-
},
288
288
-
{
289
289
-
"<leader>sq",
290
290
-
function()
291
291
-
Snacks.picker.qflist()
292
292
-
end,
293
293
-
desc = "Quickfix List",
294
294
-
},
295
295
-
{
296
296
-
"<leader>sR",
297
297
-
function()
298
298
-
Snacks.picker.resume()
299
299
-
end,
300
300
-
desc = "Resume",
301
301
-
},
302
302
-
{
303
303
-
"<leader>su",
304
304
-
function()
305
305
-
Snacks.picker.undo()
306
306
-
end,
307
307
-
desc = "Undo History",
308
308
-
},
309
309
-
{
310
310
-
"<leader>uC",
311
311
-
function()
312
312
-
Snacks.picker.colorschemes()
313
313
-
end,
314
314
-
desc = "Colorschemes",
315
315
-
},
316
316
-
-- LSP
317
317
-
{
318
318
-
"gd",
319
319
-
function()
320
320
-
Snacks.picker.lsp_definitions()
321
321
-
end,
322
322
-
desc = "Goto Definition",
323
323
-
},
324
324
-
{
325
325
-
"gD",
326
326
-
function()
327
327
-
Snacks.picker.lsp_declarations()
328
328
-
end,
329
329
-
desc = "Goto Declaration",
330
330
-
},
331
331
-
{
332
332
-
"gr",
333
333
-
function()
334
334
-
Snacks.picker.lsp_references()
335
335
-
end,
336
336
-
nowait = true,
337
337
-
desc = "References",
338
338
-
},
339
339
-
{
340
340
-
"gI",
341
341
-
function()
342
342
-
Snacks.picker.lsp_implementations()
343
343
-
end,
344
344
-
desc = "Goto Implementation",
345
345
-
},
346
346
-
{
347
347
-
"gy",
348
348
-
function()
349
349
-
Snacks.picker.lsp_type_definitions()
350
350
-
end,
351
351
-
desc = "Goto T[y]pe Definition",
352
352
-
},
353
353
-
{
354
354
-
"<leader>ss",
355
355
-
function()
356
356
-
Snacks.picker.lsp_symbols()
357
357
-
end,
358
358
-
desc = "LSP Symbols",
359
359
-
},
360
360
-
{
361
361
-
"<leader>sS",
362
362
-
function()
363
363
-
Snacks.picker.lsp_workspace_symbols()
364
364
-
end,
365
365
-
desc = "LSP Workspace Symbols",
366
366
-
},
367
367
-
-- Other
368
368
-
{
369
369
-
"<leader>z",
370
370
-
function()
371
371
-
Snacks.zen()
372
372
-
end,
373
373
-
desc = "Toggle Zen Mode",
374
374
-
},
375
375
-
{
376
376
-
"<leader>Z",
377
377
-
function()
378
378
-
Snacks.zen.zoom()
379
379
-
end,
380
380
-
desc = "Toggle Zoom",
381
381
-
},
382
382
-
{
383
383
-
"<leader>.",
384
384
-
function()
385
385
-
Snacks.scratch()
386
386
-
end,
387
387
-
desc = "Toggle Scratch Buffer",
388
388
-
},
389
389
-
{
390
390
-
"<leader>S",
391
391
-
function()
392
392
-
Snacks.scratch.select()
393
393
-
end,
394
394
-
desc = "Select Scratch Buffer",
395
395
-
},
396
396
-
{
397
397
-
"<leader>n",
398
398
-
function()
399
399
-
Snacks.notifier.show_history()
400
400
-
end,
401
401
-
desc = "Notification History",
402
402
-
},
403
403
-
{
404
404
-
"<leader>bd",
405
405
-
function()
406
406
-
Snacks.bufdelete()
407
407
-
end,
408
408
-
desc = "Delete Buffer",
409
409
-
},
410
410
-
{
411
411
-
"<leader>cR",
412
412
-
function()
413
413
-
Snacks.rename.rename_file()
414
414
-
end,
415
415
-
desc = "Rename File",
416
416
-
},
417
417
-
{
418
418
-
"<leader>gB",
419
419
-
function()
420
420
-
Snacks.gitbrowse()
421
421
-
end,
422
422
-
desc = "Git Browse",
423
423
-
mode = { "n", "v" },
424
424
-
},
425
425
-
{
426
426
-
"<leader>gg",
427
427
-
function()
428
428
-
Snacks.lazygit()
429
429
-
end,
430
430
-
desc = "Lazygit",
431
431
-
},
432
432
-
{
433
433
-
"<leader>un",
434
434
-
function()
435
435
-
Snacks.notifier.hide()
436
436
-
end,
437
437
-
desc = "Dismiss All Notifications",
438
438
-
},
439
439
-
{
440
440
-
"<c-/>",
441
441
-
function()
442
442
-
Snacks.terminal()
443
443
-
end,
444
444
-
desc = "Toggle Terminal",
445
445
-
},
446
446
-
{
447
447
-
"<c-_>",
448
448
-
function()
449
449
-
Snacks.terminal()
450
450
-
end,
451
451
-
desc = "which_key_ignore",
452
452
-
},
453
453
-
{
454
454
-
"]]",
455
455
-
function()
456
456
-
Snacks.words.jump(vim.v.count1)
457
457
-
end,
458
458
-
desc = "Next Reference",
459
459
-
mode = { "n", "t" },
460
460
-
},
461
461
-
{
462
462
-
"[[",
463
463
-
function()
464
464
-
Snacks.words.jump(-vim.v.count1)
465
465
-
end,
466
466
-
desc = "Prev Reference",
467
467
-
mode = { "n", "t" },
468
468
-
},
469
469
-
{
470
470
-
"<leader>N",
471
471
-
desc = "Neovim News",
472
472
-
function()
473
473
-
Snacks.win({
474
474
-
file = vim.api.nvim_get_runtime_file("doc/news.txt", false)[1],
475
475
-
width = 0.6,
476
476
-
height = 0.6,
477
477
-
wo = {
478
478
-
spell = false,
479
479
-
wrap = false,
480
480
-
signcolumn = "yes",
481
481
-
statuscolumn = " ",
482
482
-
conceallevel = 3,
483
483
-
},
484
484
-
})
485
485
-
end,
486
486
-
},
2
2
+
-- Top Pickers & Explorer
3
3
+
{
4
4
+
"<leader><space>",
5
5
+
function()
6
6
+
Snacks.picker.smart()
7
7
+
end,
8
8
+
desc = "Smart Find Files",
9
9
+
},
10
10
+
{
11
11
+
"<leader>,",
12
12
+
function()
13
13
+
Snacks.picker.buffers()
14
14
+
end,
15
15
+
desc = "Buffers",
16
16
+
},
17
17
+
{
18
18
+
"<leader>/",
19
19
+
function()
20
20
+
Snacks.picker.grep()
21
21
+
end,
22
22
+
desc = "Grep",
23
23
+
},
24
24
+
{
25
25
+
"<leader>:",
26
26
+
function()
27
27
+
Snacks.picker.command_history()
28
28
+
end,
29
29
+
desc = "Command History",
30
30
+
},
31
31
+
{
32
32
+
"<leader>n",
33
33
+
function()
34
34
+
Snacks.picker.notifications()
35
35
+
end,
36
36
+
desc = "Notification History",
37
37
+
},
38
38
+
{
39
39
+
"<leader>e",
40
40
+
function()
41
41
+
Snacks.explorer()
42
42
+
end,
43
43
+
desc = "File Explorer",
44
44
+
},
45
45
+
-- find
46
46
+
{
47
47
+
"<leader>fb",
48
48
+
function()
49
49
+
Snacks.picker.buffers()
50
50
+
end,
51
51
+
desc = "Buffers",
52
52
+
},
53
53
+
{
54
54
+
"<leader>fc",
55
55
+
function()
56
56
+
Snacks.picker.files({ cwd = vim.fn.stdpath("config") })
57
57
+
end,
58
58
+
desc = "Find Config File",
59
59
+
},
60
60
+
{
61
61
+
"<leader>ff",
62
62
+
function()
63
63
+
Snacks.picker.files()
64
64
+
end,
65
65
+
desc = "Find Files",
66
66
+
},
67
67
+
{
68
68
+
"<leader>fg",
69
69
+
function()
70
70
+
Snacks.picker.git_files()
71
71
+
end,
72
72
+
desc = "Find Git Files",
73
73
+
},
74
74
+
{
75
75
+
"<leader>fp",
76
76
+
function()
77
77
+
Snacks.picker.projects()
78
78
+
end,
79
79
+
desc = "Projects",
80
80
+
},
81
81
+
{
82
82
+
"<leader>fr",
83
83
+
function()
84
84
+
Snacks.picker.recent()
85
85
+
end,
86
86
+
desc = "Recent",
87
87
+
},
88
88
+
-- git
89
89
+
{
90
90
+
"<leader>gb",
91
91
+
function()
92
92
+
Snacks.picker.git_branches()
93
93
+
end,
94
94
+
desc = "Git Branches",
95
95
+
},
96
96
+
{
97
97
+
"<leader>gl",
98
98
+
function()
99
99
+
Snacks.picker.git_log()
100
100
+
end,
101
101
+
desc = "Git Log",
102
102
+
},
103
103
+
{
104
104
+
"<leader>gL",
105
105
+
function()
106
106
+
Snacks.picker.git_log_line()
107
107
+
end,
108
108
+
desc = "Git Log Line",
109
109
+
},
110
110
+
{
111
111
+
"<leader>gs",
112
112
+
function()
113
113
+
Snacks.picker.git_status()
114
114
+
end,
115
115
+
desc = "Git Status",
116
116
+
},
117
117
+
{
118
118
+
"<leader>gS",
119
119
+
function()
120
120
+
Snacks.picker.git_stash()
121
121
+
end,
122
122
+
desc = "Git Stash",
123
123
+
},
124
124
+
{
125
125
+
"<leader>gd",
126
126
+
function()
127
127
+
Snacks.picker.git_diff()
128
128
+
end,
129
129
+
desc = "Git Diff (Hunks)",
130
130
+
},
131
131
+
{
132
132
+
"<leader>gf",
133
133
+
function()
134
134
+
Snacks.picker.git_log_file()
135
135
+
end,
136
136
+
desc = "Git Log File",
137
137
+
},
138
138
+
-- Grep
139
139
+
{
140
140
+
"<leader>sb",
141
141
+
function()
142
142
+
Snacks.picker.lines()
143
143
+
end,
144
144
+
desc = "Buffer Lines",
145
145
+
},
146
146
+
{
147
147
+
"<leader>sB",
148
148
+
function()
149
149
+
Snacks.picker.grep_buffers()
150
150
+
end,
151
151
+
desc = "Grep Open Buffers",
152
152
+
},
153
153
+
{
154
154
+
"<leader>sg",
155
155
+
function()
156
156
+
Snacks.picker.grep()
157
157
+
end,
158
158
+
desc = "Grep",
159
159
+
},
160
160
+
{
161
161
+
"<leader>sw",
162
162
+
function()
163
163
+
Snacks.picker.grep_word()
164
164
+
end,
165
165
+
desc = "Visual selection or word",
166
166
+
mode = { "n", "x" },
167
167
+
},
168
168
+
-- search
169
169
+
{
170
170
+
'<leader>s"',
171
171
+
function()
172
172
+
Snacks.picker.registers()
173
173
+
end,
174
174
+
desc = "Registers",
175
175
+
},
176
176
+
{
177
177
+
"<leader>s/",
178
178
+
function()
179
179
+
Snacks.picker.search_history()
180
180
+
end,
181
181
+
desc = "Search History",
182
182
+
},
183
183
+
{
184
184
+
"<leader>sa",
185
185
+
function()
186
186
+
Snacks.picker.autocmds()
187
187
+
end,
188
188
+
desc = "Autocmds",
189
189
+
},
190
190
+
{
191
191
+
"<leader>sb",
192
192
+
function()
193
193
+
Snacks.picker.lines()
194
194
+
end,
195
195
+
desc = "Buffer Lines",
196
196
+
},
197
197
+
{
198
198
+
"<leader>sc",
199
199
+
function()
200
200
+
Snacks.picker.command_history()
201
201
+
end,
202
202
+
desc = "Command History",
203
203
+
},
204
204
+
{
205
205
+
"<leader>sC",
206
206
+
function()
207
207
+
Snacks.picker.commands()
208
208
+
end,
209
209
+
desc = "Commands",
210
210
+
},
211
211
+
{
212
212
+
"<leader>sd",
213
213
+
function()
214
214
+
Snacks.picker.diagnostics()
215
215
+
end,
216
216
+
desc = "Diagnostics",
217
217
+
},
218
218
+
{
219
219
+
"<leader>sD",
220
220
+
function()
221
221
+
Snacks.picker.diagnostics_buffer()
222
222
+
end,
223
223
+
desc = "Buffer Diagnostics",
224
224
+
},
225
225
+
{
226
226
+
"<leader>sh",
227
227
+
function()
228
228
+
Snacks.picker.help()
229
229
+
end,
230
230
+
desc = "Help Pages",
231
231
+
},
232
232
+
{
233
233
+
"<leader>sH",
234
234
+
function()
235
235
+
Snacks.picker.highlights()
236
236
+
end,
237
237
+
desc = "Highlights",
238
238
+
},
239
239
+
{
240
240
+
"<leader>si",
241
241
+
function()
242
242
+
Snacks.picker.icons()
243
243
+
end,
244
244
+
desc = "Icons",
245
245
+
},
246
246
+
{
247
247
+
"<leader>sj",
248
248
+
function()
249
249
+
Snacks.picker.jumps()
250
250
+
end,
251
251
+
desc = "Jumps",
252
252
+
},
253
253
+
{
254
254
+
"<leader>sk",
255
255
+
function()
256
256
+
Snacks.picker.keymaps()
257
257
+
end,
258
258
+
desc = "Keymaps",
259
259
+
},
260
260
+
{
261
261
+
"<leader>sl",
262
262
+
function()
263
263
+
Snacks.picker.loclist()
264
264
+
end,
265
265
+
desc = "Location List",
266
266
+
},
267
267
+
{
268
268
+
"<leader>sm",
269
269
+
function()
270
270
+
Snacks.picker.marks()
271
271
+
end,
272
272
+
desc = "Marks",
273
273
+
},
274
274
+
{
275
275
+
"<leader>sM",
276
276
+
function()
277
277
+
Snacks.picker.man()
278
278
+
end,
279
279
+
desc = "Man Pages",
280
280
+
},
281
281
+
{
282
282
+
"<leader>sp",
283
283
+
function()
284
284
+
Snacks.picker.lazy()
285
285
+
end,
286
286
+
desc = "Search for Plugin Spec",
287
287
+
},
288
288
+
{
289
289
+
"<leader>sq",
290
290
+
function()
291
291
+
Snacks.picker.qflist()
292
292
+
end,
293
293
+
desc = "Quickfix List",
294
294
+
},
295
295
+
{
296
296
+
"<leader>sR",
297
297
+
function()
298
298
+
Snacks.picker.resume()
299
299
+
end,
300
300
+
desc = "Resume",
301
301
+
},
302
302
+
{
303
303
+
"<leader>su",
304
304
+
function()
305
305
+
Snacks.picker.undo()
306
306
+
end,
307
307
+
desc = "Undo History",
308
308
+
},
309
309
+
{
310
310
+
"<leader>uC",
311
311
+
function()
312
312
+
Snacks.picker.colorschemes()
313
313
+
end,
314
314
+
desc = "Colorschemes",
315
315
+
},
316
316
+
-- LSP
317
317
+
{
318
318
+
"gd",
319
319
+
function()
320
320
+
Snacks.picker.lsp_definitions()
321
321
+
end,
322
322
+
desc = "Goto Definition",
323
323
+
},
324
324
+
{
325
325
+
"gD",
326
326
+
function()
327
327
+
Snacks.picker.lsp_declarations()
328
328
+
end,
329
329
+
desc = "Goto Declaration",
330
330
+
},
331
331
+
{
332
332
+
"gr",
333
333
+
function()
334
334
+
Snacks.picker.lsp_references()
335
335
+
end,
336
336
+
nowait = true,
337
337
+
desc = "References",
338
338
+
},
339
339
+
{
340
340
+
"gI",
341
341
+
function()
342
342
+
Snacks.picker.lsp_implementations()
343
343
+
end,
344
344
+
desc = "Goto Implementation",
345
345
+
},
346
346
+
{
347
347
+
"gy",
348
348
+
function()
349
349
+
Snacks.picker.lsp_type_definitions()
350
350
+
end,
351
351
+
desc = "Goto T[y]pe Definition",
352
352
+
},
353
353
+
{
354
354
+
"<leader>ss",
355
355
+
function()
356
356
+
Snacks.picker.lsp_symbols()
357
357
+
end,
358
358
+
desc = "LSP Symbols",
359
359
+
},
360
360
+
{
361
361
+
"<leader>sS",
362
362
+
function()
363
363
+
Snacks.picker.lsp_workspace_symbols()
364
364
+
end,
365
365
+
desc = "LSP Workspace Symbols",
366
366
+
},
367
367
+
-- Other
368
368
+
{
369
369
+
"<leader>z",
370
370
+
function()
371
371
+
Snacks.zen()
372
372
+
end,
373
373
+
desc = "Toggle Zen Mode",
374
374
+
},
375
375
+
{
376
376
+
"<leader>Z",
377
377
+
function()
378
378
+
Snacks.zen.zoom()
379
379
+
end,
380
380
+
desc = "Toggle Zoom",
381
381
+
},
382
382
+
{
383
383
+
"<leader>.",
384
384
+
function()
385
385
+
Snacks.scratch()
386
386
+
end,
387
387
+
desc = "Toggle Scratch Buffer",
388
388
+
},
389
389
+
{
390
390
+
"<leader>S",
391
391
+
function()
392
392
+
Snacks.scratch.select()
393
393
+
end,
394
394
+
desc = "Select Scratch Buffer",
395
395
+
},
396
396
+
{
397
397
+
"<leader>n",
398
398
+
function()
399
399
+
Snacks.notifier.show_history()
400
400
+
end,
401
401
+
desc = "Notification History",
402
402
+
},
403
403
+
{
404
404
+
"<leader>bd",
405
405
+
function()
406
406
+
Snacks.bufdelete()
407
407
+
end,
408
408
+
desc = "Delete Buffer",
409
409
+
},
410
410
+
{
411
411
+
"<leader>cR",
412
412
+
function()
413
413
+
Snacks.rename.rename_file()
414
414
+
end,
415
415
+
desc = "Rename File",
416
416
+
},
417
417
+
{
418
418
+
"<leader>gB",
419
419
+
function()
420
420
+
Snacks.gitbrowse()
421
421
+
end,
422
422
+
desc = "Git Browse",
423
423
+
mode = { "n", "v" },
424
424
+
},
425
425
+
{
426
426
+
"<leader>gg",
427
427
+
function()
428
428
+
Snacks.lazygit()
429
429
+
end,
430
430
+
desc = "Lazygit",
431
431
+
},
432
432
+
{
433
433
+
"<leader>un",
434
434
+
function()
435
435
+
Snacks.notifier.hide()
436
436
+
end,
437
437
+
desc = "Dismiss All Notifications",
438
438
+
},
439
439
+
{
440
440
+
"<c-/>",
441
441
+
function()
442
442
+
Snacks.terminal()
443
443
+
end,
444
444
+
desc = "Toggle Terminal",
445
445
+
},
446
446
+
{
447
447
+
"<c-_>",
448
448
+
function()
449
449
+
Snacks.terminal()
450
450
+
end,
451
451
+
desc = "which_key_ignore",
452
452
+
},
453
453
+
{
454
454
+
"]]",
455
455
+
function()
456
456
+
Snacks.words.jump(vim.v.count1)
457
457
+
end,
458
458
+
desc = "Next Reference",
459
459
+
mode = { "n", "t" },
460
460
+
},
461
461
+
{
462
462
+
"[[",
463
463
+
function()
464
464
+
Snacks.words.jump(-vim.v.count1)
465
465
+
end,
466
466
+
desc = "Prev Reference",
467
467
+
mode = { "n", "t" },
468
468
+
},
469
469
+
{
470
470
+
"<leader>N",
471
471
+
desc = "Neovim News",
472
472
+
function()
473
473
+
Snacks.win({
474
474
+
file = vim.api.nvim_get_runtime_file("doc/news.txt", false)[1],
475
475
+
width = 0.6,
476
476
+
height = 0.6,
477
477
+
wo = {
478
478
+
spell = false,
479
479
+
wrap = false,
480
480
+
signcolumn = "yes",
481
481
+
statuscolumn = " ",
482
482
+
conceallevel = 3,
483
483
+
},
484
484
+
})
485
485
+
end,
486
486
+
},
487
487
+
{ "<leader>Q", "<cmd>qa!<CR>", desc = "Quit" },
487
488
}
+1
-1
modules/vic/dots/config/nvim/lua/plugins/tv.lua
···
1
1
return {
2
2
-
{ 'prabirshrestha/tv.vim' }
2
2
+
{ "prabirshrestha/tv.vim" },
3
3
}
+51
-51
modules/vic/dots/config/nvim/lua/plugins/which-key.lua
···
13
13
-- after the plugin has been loaded as `require(MODULE).setup(opts)`.
14
14
15
15
return {
16
16
-
{ -- Useful plugin to show you pending keybinds.
17
17
-
'folke/which-key.nvim',
18
18
-
event = 'VimEnter', -- Sets the loading event to 'VimEnter'
19
19
-
opts = {
20
20
-
-- delay between pressing a key and opening which-key (milliseconds)
21
21
-
-- this setting is independent of vim.o.timeoutlen
22
22
-
delay = 0,
23
23
-
icons = {
24
24
-
-- set icon mappings to true if you have a Nerd Font
25
25
-
mappings = vim.g.have_nerd_font,
26
26
-
-- If you are using a Nerd Font: set icons.keys to an empty table which will use the
27
27
-
-- default which-key.nvim defined Nerd Font icons, otherwise define a string table
28
28
-
keys = vim.g.have_nerd_font and {} or {
29
29
-
Up = '<Up> ',
30
30
-
Down = '<Down> ',
31
31
-
Left = '<Left> ',
32
32
-
Right = '<Right> ',
33
33
-
C = '<C-…> ',
34
34
-
M = '<M-…> ',
35
35
-
D = '<D-…> ',
36
36
-
S = '<S-…> ',
37
37
-
CR = '<CR> ',
38
38
-
Esc = '<Esc> ',
39
39
-
ScrollWheelDown = '<ScrollWheelDown> ',
40
40
-
ScrollWheelUp = '<ScrollWheelUp> ',
41
41
-
NL = '<NL> ',
42
42
-
BS = '<BS> ',
43
43
-
Space = '<Space> ',
44
44
-
Tab = '<Tab> ',
45
45
-
F1 = '<F1>',
46
46
-
F2 = '<F2>',
47
47
-
F3 = '<F3>',
48
48
-
F4 = '<F4>',
49
49
-
F5 = '<F5>',
50
50
-
F6 = '<F6>',
51
51
-
F7 = '<F7>',
52
52
-
F8 = '<F8>',
53
53
-
F9 = '<F9>',
54
54
-
F10 = '<F10>',
55
55
-
F11 = '<F11>',
56
56
-
F12 = '<F12>',
57
57
-
},
58
58
-
},
16
16
+
{ -- Useful plugin to show you pending keybinds.
17
17
+
"folke/which-key.nvim",
18
18
+
event = "VimEnter", -- Sets the loading event to 'VimEnter'
19
19
+
opts = {
20
20
+
-- delay between pressing a key and opening which-key (milliseconds)
21
21
+
-- this setting is independent of vim.o.timeoutlen
22
22
+
delay = 0,
23
23
+
icons = {
24
24
+
-- set icon mappings to true if you have a Nerd Font
25
25
+
mappings = vim.g.have_nerd_font,
26
26
+
-- If you are using a Nerd Font: set icons.keys to an empty table which will use the
27
27
+
-- default which-key.nvim defined Nerd Font icons, otherwise define a string table
28
28
+
keys = vim.g.have_nerd_font and {} or {
29
29
+
Up = "<Up> ",
30
30
+
Down = "<Down> ",
31
31
+
Left = "<Left> ",
32
32
+
Right = "<Right> ",
33
33
+
C = "<C-…> ",
34
34
+
M = "<M-…> ",
35
35
+
D = "<D-…> ",
36
36
+
S = "<S-…> ",
37
37
+
CR = "<CR> ",
38
38
+
Esc = "<Esc> ",
39
39
+
ScrollWheelDown = "<ScrollWheelDown> ",
40
40
+
ScrollWheelUp = "<ScrollWheelUp> ",
41
41
+
NL = "<NL> ",
42
42
+
BS = "<BS> ",
43
43
+
Space = "<Space> ",
44
44
+
Tab = "<Tab> ",
45
45
+
F1 = "<F1>",
46
46
+
F2 = "<F2>",
47
47
+
F3 = "<F3>",
48
48
+
F4 = "<F4>",
49
49
+
F5 = "<F5>",
50
50
+
F6 = "<F6>",
51
51
+
F7 = "<F7>",
52
52
+
F8 = "<F8>",
53
53
+
F9 = "<F9>",
54
54
+
F10 = "<F10>",
55
55
+
F11 = "<F11>",
56
56
+
F12 = "<F12>",
57
57
+
},
58
58
+
},
59
59
60
60
-
-- Document existing key chains
61
61
-
spec = {
62
62
-
-- { '<leader>s', group = '[S]earch' },
63
63
-
-- { '<leader>t', group = '[T]oggle' },
64
64
-
-- { '<leader>h', group = 'Git [H]unk', mode = { 'n', 'v' } },
65
65
-
},
66
66
-
},
67
67
-
},
60
60
+
-- Document existing key chains
61
61
+
spec = {
62
62
+
-- { '<leader>s', group = '[S]earch' },
63
63
+
-- { '<leader>t', group = '[T]oggle' },
64
64
+
-- { '<leader>h', group = 'Git [H]unk', mode = { 'n', 'v' } },
65
65
+
},
66
66
+
},
67
67
+
},
68
68
}
69
69
-- vim: ts=2 sts=2 sw=2 et
+2
-2
modules/vic/dots/config/nvim/lua/prelude.lua
···
1
1
-
vim.g.mapleader = ' '
2
2
-
vim.g.maplocalleader = ' '
1
1
+
vim.g.mapleader = " "
2
2
+
vim.g.maplocalleader = " "
3
3
vim.g.have_nerd_font = not vim.g.vscode