aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--snippets/lua_keymap9
-rw-r--r--vim/init/basic.vim2
-rw-r--r--vim/init/keymaps.vim9
-rw-r--r--vim/lua/plugins/init.lua620
-rw-r--r--vim/mini.lua234
5 files changed, 486 insertions, 388 deletions
diff --git a/snippets/lua_keymap b/snippets/lua_keymap
index 255fe49..d221d2b 100644
--- a/snippets/lua_keymap
+++ b/snippets/lua_keymap
@@ -1,6 +1,5 @@
1vim.keymap.set( 1vim.keymap.set( 'n', '<leader>', function()
2 'n', 2 require(''),
3 '<leader>gp', 3 end,
4 require('gitsigns').prev_hunk, 4 { buffer = bufnr, desc = '' }
5 { buffer = bufnr, desc = '[G]o to [P]revious Hunk' }
6) 5)
diff --git a/vim/init/basic.vim b/vim/init/basic.vim
index 818e996..2394045 100644
--- a/vim/init/basic.vim
+++ b/vim/init/basic.vim
@@ -82,7 +82,7 @@ set autoindent smartindent
82set shiftwidth=2 82set shiftwidth=2
83set cindent 83set cindent
84set ttimeout 84set ttimeout
85set ttimeoutlen=50 85set timeoutlen=500
86" set updatetime=4000 86" set updatetime=4000
87" autocmd CursorHold * normal! m' 87" autocmd CursorHold * normal! m'
88 88
diff --git a/vim/init/keymaps.vim b/vim/init/keymaps.vim
index 82c3c07..5639e11 100644
--- a/vim/init/keymaps.vim
+++ b/vim/init/keymaps.vim
@@ -12,8 +12,8 @@ imap <C-c> <Esc>l
12 12
13" Search for selected test 13" Search for selected test
14vnoremap * y/\V<C-R>=escape(@",'/\')<CR><CR> 14vnoremap * y/\V<C-R>=escape(@",'/\')<CR><CR>
15
16" Set wrap 15" Set wrap
16
17nnoremap <leader>W :set wrap!<CR> 17nnoremap <leader>W :set wrap!<CR>
18 18
19" Fast saving 19" Fast saving
@@ -243,6 +243,7 @@ function! CloseBufferSafely()
243 let answer = confirm("Save changes?", "&Yes\n&No\n&Cancel") 243 let answer = confirm("Save changes?", "&Yes\n&No\n&Cancel")
244 if answer == 1 | write | endif 244 if answer == 1 | write | endif
245 if answer == 3 | return | endif 245 if answer == 3 | return | endif
246 if answer == "" | return | endif
246 endif 247 endif
247 248
248 let bufs = getbufinfo({'buflisted': 1}) 249 let bufs = getbufinfo({'buflisted': 1})
@@ -404,7 +405,8 @@ vnoremap zF :<C-u>call UnfoldSelectionOnly()<CR>
404nnoremap zF :<C-u>call ResumeFoldmethod()<CR>zv 405nnoremap zF :<C-u>call ResumeFoldmethod()<CR>zv
405 406
406" Select current fold 407" Select current fold
407xnoremap iz :<C-U>silent!normal![zV]z<CR> 408xnoremap az :<C-U>silent!normal![zV]z<CR>
409xnoremap iz :<C-U>silent!normal![zjV]zk<CR>
408 410
409" Use l to open fold 411" Use l to open fold
410nnoremap <expr> l foldclosed('.') == -1 ? 'l' : 'zo' 412nnoremap <expr> l foldclosed('.') == -1 ? 'l' : 'zo'
@@ -413,6 +415,9 @@ nnoremap <expr> l foldclosed('.') == -1 ? 'l' : 'zo'
413nnoremap <expr> zo foldclosed('.') == -1 ? 'zjzo' : 'zo' 415nnoremap <expr> zo foldclosed('.') == -1 ? 'zjzo' : 'zo'
414nnoremap <expr> zO foldclosed('.') == -1 ? 'zjzO' : 'zO' 416nnoremap <expr> zO foldclosed('.') == -1 ? 'zjzO' : 'zO'
415 417
418nnoremap zJ zjzx
419nnoremap zK zkzx
420
416" Fold file except selection 421" Fold file except selection
417let b:original_foldmethod = "" 422let b:original_foldmethod = ""
418function! UnfoldSelectionOnly() 423function! UnfoldSelectionOnly()
diff --git a/vim/lua/plugins/init.lua b/vim/lua/plugins/init.lua
index 03a7d46..6f6e044 100644
--- a/vim/lua/plugins/init.lua
+++ b/vim/lua/plugins/init.lua
@@ -1,334 +1,334 @@
1return { 1return {
2 2
3 -- Detect tabstop and shiftwidth automatically 3 -- Detect tabstop and shiftwidth automatically
4 "tpope/vim-sleuth", 4 "tpope/vim-sleuth",
5 5
6 -- Use sudo in command mode 6 -- Use sudo in command mode
7 { 7 {
8 "lambdalisue/suda.vim", 8 "lambdalisue/suda.vim",
9 cmd = { "SudaWrite" }, 9 cmd = { "SudaWrite" },
10 }, 10 },
11 11
12 -- For focus mode 12 -- For focus mode
13 { 13 {
14 "Pocco81/true-zen.nvim", 14 "Pocco81/true-zen.nvim",
15 lazy = false, 15 lazy = false,
16 cmd = { "TZAtaraxis", "TZMinimalist" }, 16 cmd = { "TZAtaraxis", "TZMinimalist" },
17 }, 17 },
18 18
19 -- hop.nvim: For quick jump 19 -- hop.nvim: For quick jump
20 { 20 {
21 "smoka7/hop.nvim", 21 "smoka7/hop.nvim",
22 lazy = false, 22 lazy = false,
23 version = "*", 23 version = "*",
24 opts = { 24 opts = {
25 keys = "etovxqpdygfblzhckisuran", 25 keys = "etovxqpdygfblzhckisuran",
26 }, 26 },
27 config = function() 27 config = function()
28 require("hop").setup() 28 require("hop").setup()
29 end, 29 end,
30 }, 30 },
31 31
32 { 32 {
33 "stevearc/conform.nvim", 33 "stevearc/conform.nvim",
34 lazy = false, 34 lazy = false,
35 -- event = 'BufWritePre', -- uncomment for format on save 35 -- event = 'BufWritePre', -- uncomment for format on save
36 config = function() 36 config = function()
37 require("configs.conform") 37 require("configs.conform")
38 38
39 vim.keymap.set("n", "<leader>F", function() 39 vim.keymap.set("n", "<leader>F", function()
40 require("conform").format({ lsp_fallback = true }) 40 require("conform").format({ lsp_fallback = true })
41 end, { desc = "format files" }) 41 end, { desc = "format files" })
42 end, 42 end,
43 }, 43 },
44 44
45 { 45 {
46 -- Add indentation guides even on blank lines 46 -- Add indentation guides even on blank lines
47 "lukas-reineke/indent-blankline.nvim", 47 "lukas-reineke/indent-blankline.nvim",
48 -- See `:help ibl` 48 -- See `:help ibl`
49 enabled = true, 49 enabled = true,
50 main = "ibl", 50 main = "ibl",
51 opts = { 51 opts = {
52 indent = { char = "┊" }, 52 indent = { char = "┊" },
53 whitespace = { highlight = { "Whitespace", "NonText" } }, 53 whitespace = { highlight = { "Whitespace", "NonText" } },
54 }, 54 },
55 }, 55 },
56 56
57 { 57 {
58 "lewis6991/gitsigns.nvim", 58 "lewis6991/gitsigns.nvim",
59 opts = function() 59 opts = function()
60 return { 60 return {
61 -- See `:help gitsigns.txt` 61 -- See `:help gitsigns.txt`
62 signs = { 62 signs = {
63 add = { text = "+" }, 63 add = { text = "+" },
64 change = { text = "~" }, 64 change = { text = "~" },
65 delete = { text = "_" }, 65 delete = { text = "_" },
66 topdelete = { text = "‾" }, 66 topdelete = { text = "‾" },
67 changedelete = { text = "~" }, 67 changedelete = { text = "~" },
68 }, 68 },
69 on_attach = function(bufnr) 69 on_attach = function(bufnr)
70 local gs = require("gitsigns") 70 local gs = require("gitsigns")
71 vim.keymap.set( 71 vim.keymap.set(
72 "n", 72 "n",
73 "<leader>gp", 73 "<leader>gp",
74 gs.prev_hunk, 74 gs.prev_hunk,
75 { buffer = bufnr, desc = "[G]o to [P]revious Hunk" } 75 { buffer = bufnr, desc = "[G]o to [P]revious Hunk" }
76 ) 76 )
77 vim.keymap.set("n", "<leader>gn", gs.next_hunk, { buffer = bufnr, desc = "[G]o to [N]ext Hunk" }) 77 vim.keymap.set("n", "<leader>gn", gs.next_hunk, { buffer = bufnr, desc = "[G]o to [N]ext Hunk" })
78 vim.keymap.set("n", "<leader>hp", gs.preview_hunk, { buffer = bufnr, desc = "[P]review [H]unk" }) 78 vim.keymap.set("n", "<leader>hp", gs.preview_hunk, { buffer = bufnr, desc = "[P]review [H]unk" })
79 vim.keymap.set("n", "<leader>hd", gs.diffthis, { buffer = bufnr, desc = "[h]unk [d]iff" }) 79 vim.keymap.set("n", "<leader>hd", gs.diffthis, { buffer = bufnr, desc = "[h]unk [d]iff" })
80 vim.keymap.set("n", "<leader>hD", function() 80 vim.keymap.set("n", "<leader>hD", function()
81 gs.diffthis("~") 81 gs.diffthis("~")
82 end, { buffer = bufnr, desc = "[h]unk [d]iff for ~" }) 82 end, { buffer = bufnr, desc = "[h]unk [d]iff for ~" })
83 -- vim.keymap.set("n", "<leader>gb", gs.blame_line{full=true}, { desc = "Git Blame" }) 83 -- vim.keymap.set("n", "<leader>gb", gs.blame_line{full=true}, { desc = "Git Blame" })
84 vim.keymap.set("n", "<leader>gb", gs.toggle_current_line_blame, { desc = "Blame Line" }) 84 vim.keymap.set("n", "<leader>gb", gs.toggle_current_line_blame, { desc = "Blame Line" })
85 vim.keymap.set("v", "hr", gs.reset_hunk, { buffer = bufnr, desc = "[h]unk [r]eset" }) 85 vim.keymap.set("v", "hr", gs.reset_hunk, { buffer = bufnr, desc = "[h]unk [r]eset" })
86 end, 86 end,
87 } 87 }
88 end, 88 end,
89 }, 89 },
90 90
91 { 91 {
92 "iberianpig/tig-explorer.vim", 92 "iberianpig/tig-explorer.vim",
93 lazy = false, 93 lazy = false,
94 dependencies = { 94 dependencies = {
95 "rbgrouleff/bclose.vim", 95 "rbgrouleff/bclose.vim",
96 }, 96 },
97 config = function() 97 config = function()
98 vim.keymap.del("n", "<leader>bd") 98 vim.keymap.del("n", "<leader>bd")
99 end, 99 end,
100 }, 100 },
101 { 101 {
102 "epwalsh/obsidian.nvim", 102 "epwalsh/obsidian.nvim",
103 version = "*", -- recommended, use latest release instead of latest commit 103 version = "*", -- recommended, use latest release instead of latest commit
104 lazy = true, 104 lazy = true,
105 ft = "markdown", 105 ft = "markdown",
106 -- Replace the above line with this if you only want to load obsidian.nvim for markdown files in your vault: 106 -- Replace the above line with this if you only want to load obsidian.nvim for markdown files in your vault:
107 -- event = { 107 -- event = {
108 -- -- If you want to use the home shortcut '~' here you need to call 'vim.fn.expand'. 108 -- -- If you want to use the home shortcut '~' here you need to call 'vim.fn.expand'.
109 -- -- E.g. "BufReadPre " .. vim.fn.expand "~" .. "/my-vault/**.md" 109 -- -- E.g. "BufReadPre " .. vim.fn.expand "~" .. "/my-vault/**.md"
110 -- "BufReadPre path/to/my-vault/**.md", 110 -- "BufReadPre path/to/my-vault/**.md",
111 -- "BufNewFile path/to/my-vault/**.md", 111 -- "BufNewFile path/to/my-vault/**.md",
112 -- }, 112 -- },
113 dependencies = { 113 dependencies = {
114 -- Required. 114 -- Required.
115 "nvim-lua/plenary.nvim", 115 "nvim-lua/plenary.nvim",
116 }, 116 },
117 opts = { 117 opts = {
118 workspaces = { 118 workspaces = {
119 { 119 {
120 name = "log", 120 name = "log",
121 path = "~/log", 121 path = "~/log",
122 }, 122 },
123 }, 123 },
124 completion = { 124 completion = {
125 -- Set to false to disable completion. 125 -- Set to false to disable completion.
126 nvim_cmp = true, 126 nvim_cmp = true,
127 -- Trigger completion at 2 chars. 127 -- Trigger completion at 2 chars.
128 min_chars = 2, 128 min_chars = 2,
129 }, 129 },
130 mapping = { 130 mapping = {
131 -- Toggle check-boxes. 131 -- Toggle check-boxes.
132 ["<leader>oc"] = { 132 ["<leader>oc"] = {
133 action = function() 133 action = function()
134 return require("obsidian").util.toggle_checkbox() 134 return require("obsidian").util.toggle_checkbox()
135 end, 135 end,
136 opts = { buffer = true }, 136 opts = { buffer = true },
137 }, 137 },
138 -- Smart action depending on context, either follow link or toggle checkbox. 138 -- Smart action depending on context, either follow link or toggle checkbox.
139 ["<cr>"] = { 139 ["<cr>"] = {
140 action = function() 140 action = function()
141 return require("obsidian").util.smart_action() 141 return require("obsidian").util.smart_action()
142 end, 142 end,
143 opts = { buffer = true, expr = true }, 143 opts = { buffer = true, expr = true },
144 }, 144 },
145 }, 145 },
146 -- see below for full list of options 👇 146 -- see below for full list of options 👇
147 note_id_func = function(title) 147 note_id_func = function(title)
148 return title 148 return title
149 -- Create note IDs in a Zettelkasten format with a timestamp and a suffix. 149 -- Create note IDs in a Zettelkasten format with a timestamp and a suffix.
150 -- In this case a note with the title 'My new note' will be given an ID that looks 150 -- In this case a note with the title 'My new note' will be given an ID that looks
151 -- like '1657296016-my-new-note', and therefore the file name '1657296016-my-new-note.md' 151 -- like '1657296016-my-new-note', and therefore the file name '1657296016-my-new-note.md'
152 -- local suffix = "" 152 -- local suffix = ""
153 -- title = title:gsub(" ", "-"):gsub("[^A-Za-z0-9-]", ""):lower() 153 -- title = title:gsub(" ", "-"):gsub("[^A-Za-z0-9-]", ""):lower()
154 -- if title ~= nil and title ~= "" then 154 -- if title ~= nil and title ~= "" then
155 -- -- If title is given, transform it into valid file name. 155 -- -- If title is given, transform it into valid file name.
156 -- suffix = "-" .. title 156 -- suffix = "-" .. title
157 -- else 157 -- else
158 -- -- If title is nil, just add 4 random uppercase letters to the suffix. 158 -- -- If title is nil, just add 4 random uppercase letters to the suffix.
159 -- for _ = 1, 4 do 159 -- for _ = 1, 4 do
160 -- suffix = suffix .. string.char(math.random(65, 90)) 160 -- suffix = suffix .. string.char(math.random(65, 90))
161 -- end 161 -- end
162 -- suffix = "-" .. title 162 -- suffix = "-" .. title
163 -- end 163 -- end
164 -- return tostring(os.time()) .. suffix 164 -- return tostring(os.time()) .. suffix
165 end, 165 end,
166 -- Optional, for templates (see below). 166 -- Optional, for templates (see below).
167 templates = { 167 templates = {
168 folder = "templates", 168 folder = "templates",
169 date_format = "%Y-%m-%d", 169 date_format = "%Y-%m-%d",
170 time_format = "%H:%M", 170 time_format = "%H:%M",
171 -- A map for custom variables, the key should be the variable and the value a function 171 -- A map for custom variables, the key should be the variable and the value a function
172 substitutions = {}, 172 substitutions = {},
173 }, 173 },
174 }, 174 },
175 config = function() 175 config = function()
176 vim.keymap.set("n", "<leader>oo", ":Obsidian", { buffer = true }) 176 vim.keymap.set("n", "<leader>oo", ":Obsidian", { buffer = true })
177 vim.keymap.set("n", "<leader>ot", ":ObsidianTags<CR>", { buffer = true }) 177 vim.keymap.set("n", "<leader>ot", ":ObsidianTags<CR>", { buffer = true })
178 vim.keymap.set("n", "<leader>os", ":ObsidianSearch<CR>", { buffer = true }) 178 vim.keymap.set("n", "<leader>os", ":ObsidianSearch<CR>", { buffer = true })
179 vim.keymap.set("n", "<leader>oq", ":ObsidianQuickSwitch<CR>", { buffer = true }) 179 vim.keymap.set("n", "<leader>oq", ":ObsidianQuickSwitch<CR>", { buffer = true })
180 vim.keymap.set("v", "<leader>on", ":ObsidianLinkNew<CR>", { buffer = true }) 180 vim.keymap.set("v", "<leader>on", ":ObsidianLinkNew<CR>", { buffer = true })
181 vim.keymap.set("n", "<leader>ol", ":ObsidianLinks<CR>", { buffer = true }) 181 vim.keymap.set("n", "<leader>ol", ":ObsidianLinks<CR>", { buffer = true })
182 end, 182 end,
183 }, 183 },
184 184
185 { 185 {
186 "iamcco/markdown-preview.nvim", 186 "iamcco/markdown-preview.nvim",
187 cmd = { "MarkdownPreviewToggle", "MarkdownPreview", "MarkdownPreviewStop" }, 187 cmd = { "MarkdownPreviewToggle", "MarkdownPreview", "MarkdownPreviewStop" },
188 ft = { "markdown" }, 188 ft = { "markdown" },
189 build = function() 189 build = function()
190 vim.fn["mkdp#util#install"]() 190 vim.fn["mkdp#util#install"]()
191 end, 191 end,
192 init = function() 192 init = function()
193 vim.g.mkdp_preview_options = { 193 vim.g.mkdp_preview_options = {
194 mkit = { breaks = true }, 194 mkit = { breaks = true },
195 toc = { 195 toc = {
196 containerClass = "toc", 196 containerClass = "toc",
197 format = "function format(x, htmlencode) { return `<span>${htmlencode(x)}</span>`; }", 197 format = "function format(x, htmlencode) { return `<span>${htmlencode(x)}</span>`; }",
198 callback = "console.log('foo')", 198 callback = "console.log('foo')",
199 }, 199 },
200 } 200 }
201 vim.cmd("let g:mkdp_browser = 'firefox'") 201 vim.cmd("let g:mkdp_browser = 'firefox'")
202 end, 202 end,
203 }, 203 },
204 204
205 { 205 {
206 "nvim-telescope/telescope.nvim", 206 "nvim-telescope/telescope.nvim",
207 opts = function() 207 opts = function()
208 return require("configs.telescope") 208 return require("configs.telescope")
209 end, 209 end,
210 }, 210 },
211 211
212 { 212 {
213 "nvim-telescope/telescope-fzf-native.nvim", 213 "nvim-telescope/telescope-fzf-native.nvim",
214 build = "cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release && cmake --build build --config Release", 214 build = "cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release && cmake --build build --config Release",
215 }, 215 },
216 216
217 { 217 {
218 "nvim-treesitter/nvim-treesitter", 218 "nvim-treesitter/nvim-treesitter",
219 dependencies = { 219 dependencies = {
220 "nvim-treesitter/nvim-treesitter-textobjects", 220 "nvim-treesitter/nvim-treesitter-textobjects",
221 }, 221 },
222 opts = function() 222 opts = function()
223 return require("configs.treesitter") 223 return require("configs.treesitter")
224 end, 224 end,
225 }, 225 },
226 226
227 { 227 {
228 "stevearc/aerial.nvim", 228 "stevearc/aerial.nvim",
229 opts = {}, 229 opts = {},
230 -- Optional dependencies 230 -- Optional dependencies
231 dependencies = { 231 dependencies = {
232 "nvim-treesitter/nvim-treesitter", 232 "nvim-treesitter/nvim-treesitter",
233 "nvim-tree/nvim-web-devicons", 233 "nvim-tree/nvim-web-devicons",
234 }, 234 },
235 }, 235 },
236 236
237 -- { 237 -- {
238 -- 'numToStr/Comment.nvim', 238 -- 'numToStr/Comment.nvim',
239 -- lazy = true, 239 -- lazy = true,
240 -- opts = { 240 -- opts = {
241 -- opleader = { 241 -- opleader = {
242 -- ---Line-comment keymap 242 -- ---Line-comment keymap
243 -- line = '<C-/>', 243 -- line = '<C-/>',
244 -- ---Block-comment keymap 244 -- ---Block-comment keymap
245 -- block = 'gb', 245 -- block = 'gb',
246 -- }, 246 -- },
247 -- } 247 -- }
248 -- }, 248 -- },
249 249
250 { 250 {
251 "neovim/nvim-lspconfig", 251 "neovim/nvim-lspconfig",
252 lazy = false, 252 lazy = false,
253 config = function() 253 config = function()
254 require("nvchad.configs.lspconfig").defaults() 254 require("nvchad.configs.lspconfig").defaults()
255 require("configs.lspconfig") 255 require("configs.lspconfig")
256 end, 256 end,
257 }, 257 },
258 -- 258 --
259 { 259 {
260 "williamboman/mason.nvim", 260 "williamboman/mason.nvim",
261 opts = { 261 opts = {
262 automatically_installation = true, 262 automatically_installation = true,
263 ensure_installed = { 263 ensure_installed = {
264 "vim-language-server", 264 "vim-language-server",
265 "lua-language-server", 265 "lua-language-server",
266 "css-lsp", 266 "css-lsp",
267 "html-lsp", 267 "html-lsp",
268 "prettier", 268 "prettier",
269 "stylua", 269 "stylua",
270 }, 270 },
271 }, 271 },
272 }, 272 },
273 273
274 { 274 {
275 "numToStr/Comment.nvim", 275 "numToStr/Comment.nvim",
276 lazy = false, 276 lazy = false,
277 opts = { 277 opts = {
278 toggler = { 278 toggler = {
279 line = "<C-/>", 279 line = "<C-/>",
280 block = "gb", 280 block = "gb",
281 }, 281 },
282 opleader = { 282 opleader = {
283 line = "<C-/>", 283 line = "<C-/>",
284 block = "gb", 284 block = "gb",
285 }, 285 },
286 }, 286 },
287 }, 287 },
288 288
289 { 289 {
290 "tpope/vim-surround", 290 "tpope/vim-surround",
291 lazy = false, 291 lazy = false,
292 config = function() 292 config = function()
293 vim.cmd("vmap s S") 293 vim.cmd("vmap s S")
294 end, 294 end,
295 }, 295 },
296 296
297 { 297 {
298 "nvim-tree/nvim-tree.lua", 298 "nvim-tree/nvim-tree.lua",
299 opts = function() 299 opts = function()
300 local opts = require("nvchad.configs.nvimtree") 300 local opts = require("nvchad.configs.nvimtree")
301 opts.on_attach = function(bufnr) 301 opts.on_attach = function(bufnr)
302 local api = require("nvim-tree.api") 302 local api = require("nvim-tree.api")
303 api.config.mappings.default_on_attach(bufnr) 303 api.config.mappings.default_on_attach(bufnr)
304 vim.keymap.set("n", "l", api.node.open.edit, { buffer = bufnr, nowait = true }) 304 vim.keymap.set("n", "l", api.node.open.edit, { buffer = bufnr, nowait = true })
305 vim.keymap.set("n", "h", api.tree.change_root_to_parent, { buffer = bufnr, nowait = true }) 305 vim.keymap.set("n", "h", api.tree.change_root_to_parent, { buffer = bufnr, nowait = true })
306 end 306 end
307 return opts 307 return opts
308 end, 308 end,
309 }, 309 },
310 310
311 { 311 {
312 "folke/which-key.nvim", 312 "folke/which-key.nvim",
313 lazy = false, 313 lazy = false,
314 opts = { 314 opts = {
315 presets = { 315 presets = {
316 windows = true, -- default bindings on <c-w> 316 windows = true, -- default bindings on <c-w>
317 nav = true, -- misc bindings to work with windows 317 nav = true, -- misc bindings to work with windows
318 z = true, -- bindings for folds, spelling and others prefixed with z 318 z = true, -- bindings for folds, spelling and others prefixed with z
319 g = true, -- bindings for prefixed with g 319 g = true, -- bindings for prefixed with g
320 }, 320 },
321 }, 321 },
322 }, 322 },
323 -- { 323 -- {
324 -- 'junegunn/goyo.vim', 324 -- 'junegunn/goyo.vim',
325 -- lazy = false, 325 -- lazy = false,
326 -- }, 326 -- },
327 327
328 -- { 328 -- {
329 -- 'akinsho/bufferline.nvim', 329 -- 'akinsho/bufferline.nvim',
330 -- lazy = false, 330 -- lazy = false,
331 -- version = "*", 331 -- version = "*",
332 -- dependencies = 'nvim-tree/nvim-web-devicons' 332 -- dependencies = 'nvim-tree/nvim-web-devicons'
333 -- } 333 -- }
334} 334}
diff --git a/vim/mini.lua b/vim/mini.lua
index 2646ca6..d87c01c 100644
--- a/vim/mini.lua
+++ b/vim/mini.lua
@@ -1,6 +1,6 @@
1-- vim: sw=2 foldmethod=marker foldmarker={{{,}}} 1-- vim: sw=2 foldmethod=marker foldmarker={{{,}}}
2 2
3-- Ref: https://github.com/echasnovski/mini.nvim?tab=readme-ov-file 3-- Ref: https://github.com/echasnovski/mini.nvim
4-- TODO 4-- TODO
5 5
6-- Install mini.nvim {{{ 6-- Install mini.nvim {{{
@@ -40,6 +40,17 @@ vim.g.animate_disable = true
40-- mini.basics {{{ 40-- mini.basics {{{
41require('mini.basics').setup() 41require('mini.basics').setup()
42-- }}} 42-- }}}
43-- mini.misc {{{
44require('mini.misc').setup({
45 make_global = { 'put', 'put_text', 'zoom'}
46}) --}}}
47-- mini.extra {{{
48require('mini.extra').setup()
49-- }}}
50-- mini.colors {{{
51require('mini.colors').setup()
52vim.keymap.set( 'n', '<leader>co', function() require('mini.colors').interactive() end)
53-- }}}
43-- mini.base16 {{{ 54-- mini.base16 {{{
44require('mini.base16').setup({ 55require('mini.base16').setup({
45 palette = { 56 palette = {
@@ -78,14 +89,22 @@ require('mini.base16').setup({
78 }, 89 },
79 use_cterm = true, 90 use_cterm = true,
80}) --}}} 91}) --}}}
81-- mini.misc {{{
82require('mini.misc').setup({
83 make_global = { 'put', 'put_text', 'zoom'}
84}) --}}}
85-- mini.icons {{{ 92-- mini.icons {{{
86require('mini.icons').setup({ 93require('mini.icons').setup({
87}) --}}} 94}) --}}}
95-- mini.tabline {{{
96
97require('mini.tabline').setup {}
98
99for i = 1, 9, 1 do
100 vim.keymap.set("n", string.format("<A-%s>", i), function()
101 vim.api.nvim_set_current_buf( vim.fn.getbufinfo({ buflisted=true })[i].bufnr)
102 end, {silent = true})
103end
104
105-- }}}
88-- mini.statusline {{{ 106-- mini.statusline {{{
107
89require('mini.statusline').setup({ 108require('mini.statusline').setup({
90 content = { 109 content = {
91 active = status_config 110 active = status_config
@@ -126,54 +145,52 @@ function status_config()
126 { hl = mode_hl, strings = { location } }, 145 { hl = mode_hl, strings = { location } },
127 }) 146 })
128end 147end
129-- }}}
130-- mini.clue {{{
131local miniclue = require('mini.clue')
132miniclue.setup({
133 triggers = {
134 -- Leader triggers
135 { mode = 'n', keys = '<Leader>' },
136 { mode = 'x', keys = '<Leader>' },
137
138 -- Built-in completion
139 { mode = 'i', keys = '<C-x>' },
140
141 -- `g` key
142 { mode = 'n', keys = 'g' },
143 { mode = 'x', keys = 'g' },
144
145 -- Marks
146 { mode = 'n', keys = "'" },
147 { mode = 'n', keys = '`' },
148 { mode = 'x', keys = "'" },
149 { mode = 'x', keys = '`' },
150
151 -- Registers
152 { mode = 'n', keys = '"' },
153 { mode = 'x', keys = '"' },
154 { mode = 'i', keys = '<C-r>' },
155 { mode = 'c', keys = '<C-r>' },
156
157 -- Window commands
158 { mode = 'n', keys = '<C-w>' },
159
160 -- `z` key
161 { mode = 'n', keys = 'z' },
162 { mode = 'x', keys = 'z' },
163 },
164 148
165 clues = { 149-- }}}
166 -- Enhance this by adding descriptions for <Leader> mapping groups 150-- Disabled: mini.clue {{{
167 miniclue.gen_clues.builtin_completion(), 151-- local miniclue = require('mini.clue')
168 miniclue.gen_clues.g(), 152-- miniclue.setup({
169 miniclue.gen_clues.marks(), 153-- triggers = {
170 miniclue.gen_clues.registers(), 154-- -- Leader triggers
171 miniclue.gen_clues.windows(), 155-- { mode = 'n', keys = '<Leader>' },
172 miniclue.gen_clues.z(), 156-- { mode = 'x', keys = '<Leader>' },
173 }, 157--
174})-- }}} 158-- -- Built-in completion
175-- mini.colors {{{ 159-- { mode = 'i', keys = '<C-x>' },
176require('mini.colors').setup() 160--
161-- -- `g` key
162-- { mode = 'n', keys = 'g' },
163-- { mode = 'x', keys = 'g' },
164--
165-- -- Marks
166-- { mode = 'n', keys = "'" },
167-- { mode = 'n', keys = '`' },
168-- { mode = 'x', keys = "'" },
169-- { mode = 'x', keys = '`' },
170--
171-- -- Registers
172-- { mode = 'n', keys = '"' },
173-- { mode = 'x', keys = '"' },
174-- { mode = 'i', keys = '<C-r>' },
175-- { mode = 'c', keys = '<C-r>' },
176--
177-- -- Window commands
178-- { mode = 'n', keys = '<C-w>' },
179--
180-- -- `z` key
181-- { mode = 'n', keys = 'z' },
182-- { mode = 'x', keys = 'z' },
183-- },
184--
185-- clues = {
186-- -- Enhance this by adding descriptions for <Leader> mapping groups
187-- miniclue.gen_clues.builtin_completion(),
188-- miniclue.gen_clues.g(),
189-- miniclue.gen_clues.marks(),
190-- miniclue.gen_clues.registers(),
191-- miniclue.gen_clues.windows(),
192-- miniclue.gen_clues.z(),
193-- },
177-- }}} 194-- }}}
178-- mini.comment {{{ 195-- mini.comment {{{
179require('mini.comment').setup({ 196require('mini.comment').setup({
@@ -213,29 +230,60 @@ require('mini.diff').setup({
213 }, 230 },
214}) 231})
215-- }}} 232-- }}}
216-- mini.extra {{{
217require('mini.extra').setup()
218-- }}}
219-- mini.map {{{ 233-- mini.map {{{
220require('mini.map').setup() 234require('mini.map').setup()
221-- }}} 235vim.keymap.set( 'n', '<leader><leader>mp', function() require('mini.map').toggle() end, { buffer = bufnr, desc = '' })
222-- mini.tabline {{{
223
224require('mini.tabline').setup()
225
226for i = 1, 9, 1 do
227 vim.keymap.set("n", string.format("<A-%s>", i), function()
228 vim.api.nvim_set_current_buf(vim.t.bufs[i])
229 end)
230end
231
232-- }}} 236-- }}}
233-- mini.visits {{{ 237-- mini.visits {{{
234require('mini.visits').setup() 238require('mini.visits').setup()
239vim.keymap.set( 'n', '<leader><leader>li', function()
240 MiniVisits.list_paths()
241 end,
242 { buffer = bufnr, desc = '' }
243)
235-- }}} 244-- }}}
236-- mini.completion {{{ 245-- mini.completion {{{
237require('mini.completion').setup() 246require('mini.completion').setup()
238-- }}} 247-- }}}
248-- mini.surround {{{
249require('mini.surround').setup {
250 mappings = {
251 add = 's'
252 }
253}
254-- }}}
255-- mini.indentscope {{{
256require('mini.indentscope').setup()
257-- }}}
258-- mini.splitjoin {{{
259require('mini.splitjoin').setup()
260-- }}}
261-- mini.move {{{
262require('mini.move').setup()
263-- }}}
264-- mini.pairs {{{
265require('mini.pairs').setup()
266-- }}}
267-- mini.hipatterns {{{
268local hipatterns = require('mini.hipatterns')
269hipatterns.setup({
270 highlighters = {
271 -- Highlight standalone 'FIXME', 'HACK', 'TODO', 'NOTE'
272 fixme = { pattern = '%f[%w]()FIXME()%f[%W]', group = 'MiniHipatternsFixme' },
273 hack = { pattern = '%f[%w]()HACK()%f[%W]', group = 'MiniHipatternsHack' },
274 todo = { pattern = '%f[%w]()TODO()%f[%W]', group = 'MiniHipatternsTodo' },
275 note = { pattern = '%f[%w]()NOTE()%f[%W]', group = 'MiniHipatternsNote' },
276
277 -- Highlight hex color strings (`#rrggbb`) using that color
278 hex_color = hipatterns.gen_highlighter.hex_color(),
279 },
280})
281vim.keymap.set( 'n', '<leader><leader>hi', function()
282 MiniHipatterns.toggle()
283 end,
284 { buffer = bufnr, desc = 'Toggle hex color highlight' }
285)
286-- }}}
239-- Telescope {{{ 287-- Telescope {{{
240add({ 288add({
241 source = "nvim-telescope/telescope.nvim", 289 source = "nvim-telescope/telescope.nvim",
@@ -409,15 +457,61 @@ end, { desc = "Search Directory" })-- }}}
409-- toggleterm {{{ 457-- toggleterm {{{
410 458
411add({ 459add({
412 source = "akinsho/toggleterm.nvim", 460source = "akinsho/toggleterm.nvim",
413 hooks = { post_checkout = function() end }, 461hooks = { post_checkout = function() end },
414}) 462})
415require("toggleterm").setup{ 463require("toggleterm").setup{
416 persist_size = false, 464persist_size = false,
417 direction = 'float', 465direction = 'float',
418} 466}
419 467
420vim.keymap.set({ "n", "t" }, "<A-i>", function() vim.cmd("ToggleTerm direction=float") end, { desc = "terminal toggle floating term" }) 468vim.keymap.set({ "n", "t" }, "<A-i>", function() vim.cmd("ToggleTerm direction=float") end, { desc = "terminal toggle floating term" })
421vim.keymap.set({ "n", "t" }, "<A-v>", function() vim.cmd("ToggleTerm direction=horizontal") end, { desc = "terminal toggle floating term" }) 469vim.keymap.set({ "n", "t" }, "<A-v>", function() vim.cmd("ToggleTerm direction=horizontal") end, { desc = "terminal toggle floating term" })
422 470
423--}}} 471--}}}
472-- Tig {{{
473
474add({
475 source = "iberianpig/tig-explorer.vim",
476 depends = { "rbgrouleff/bclose.vim" },
477 hooks = { post_checkout = function() end },
478})
479
480--}}}
481-- Disabled: suda {{{
482-- add { source = "lambdalisue/suda.vim" }
483-- }}}
484-- which-key {{{
485add({
486 source = "folke/which-key.nvim",
487 checkout = "stable",
488})
489require('which-key').setup {
490 defaults = {
491 win = {
492 -- don't allow the popup to overlap with the cursor
493 no_overlap = false,
494 -- width = 1,
495 height = { min = 10, max = 25 },
496 -- col = 0,
497 -- row = math.huge,
498 -- border = "none",
499 padding = { 1, 2 }, -- extra window padding [top/bottom, right/left]
500 title = true,
501 title_pos = "center",
502 zindex = 1000,
503 -- Additional vim.wo and vim.bo options
504 bo = {},
505 wo = {
506 -- winblend = 10, -- value between 0-100 0 for fully opaque and 100 for fully transparent
507 },
508 },
509 }
510}
511-- }}}
512-- true-zen {{{
513add {
514 source = "Pocco81/true-zen.nvim",
515}
516vim.keymap.set("n", "<leader>z", ":TZAtaraxis<CR>")
517-- }}}