feat: add fugitive, toggleterm, trouble plugins; configure oil

- Add vim-fugitive, toggleterm, trouble.nvim lazy specs
- Configure oil.nvim with hidden file toggle, sort, and float keymap
- Add treesitter install callback for per-lang notifications
- Enable arrow-key training keymaps

Co-Authored-By: Claude Sonnet 4 <noreply@anthropic.com>
This commit is contained in:
Patrick Pagni 2026-06-04 16:27:06 +01:00
parent 9b59f8fdff
commit 3c0b4bd1fc
6 changed files with 82 additions and 6 deletions

View File

@ -214,10 +214,10 @@ do
vim.keymap.set('t', '<Esc><Esc>', '<C-\\><C-n>', { desc = 'Exit terminal mode' }) vim.keymap.set('t', '<Esc><Esc>', '<C-\\><C-n>', { desc = 'Exit terminal mode' })
-- TIP: Disable arrow keys in normal mode -- TIP: Disable arrow keys in normal mode
-- vim.keymap.set('n', '<left>', '<cmd>echo "Use h to move!!"<CR>') vim.keymap.set('n', '<left>', '<cmd>echo "Use h to move!!"<CR>')
-- vim.keymap.set('n', '<right>', '<cmd>echo "Use l to move!!"<CR>') vim.keymap.set('n', '<right>', '<cmd>echo "Use l to move!!"<CR>')
-- vim.keymap.set('n', '<up>', '<cmd>echo "Use k to move!!"<CR>') vim.keymap.set('n', '<up>', '<cmd>echo "Use k to move!!"<CR>')
-- vim.keymap.set('n', '<down>', '<cmd>echo "Use j to move!!"<CR>') vim.keymap.set('n', '<down>', '<cmd>echo "Use j to move!!"<CR>')
-- Keybinds to make split navigation easier. -- Keybinds to make split navigation easier.
-- Use CTRL+<hjkl> to switch between windows -- Use CTRL+<hjkl> to switch between windows
@ -574,7 +574,13 @@ require('lazy').setup({
build = ':TSUpdate', build = ':TSUpdate',
config = function() config = function()
local parsers = { 'bash', 'c', 'diff', 'html', 'lua', 'luadoc', 'markdown', 'markdown_inline', 'python', 'query', 'sql', 'vim', 'vimdoc' } local parsers = { 'bash', 'c', 'diff', 'html', 'lua', 'luadoc', 'markdown', 'markdown_inline', 'python', 'query', 'sql', 'vim', 'vimdoc' }
require('nvim-treesitter').install(parsers) require('nvim-treesitter').install(parsers, function(lang, success)
if success then
vim.notify('treesitter: installed ' .. lang, vim.log.levels.INFO)
else
vim.notify('treesitter: failed to install ' .. lang, vim.log.levels.WARN)
end
end)
---@param buf integer ---@param buf integer
---@param language string ---@param language string
@ -628,5 +634,9 @@ require('lazy').setup({
checker = { enabled = false }, checker = { enabled = false },
}) })
-- Open Oil in a floating window
vim.keymap.set("n", "<leader>of", "<CMD>Oil --float<CR>", { desc = "Open Oil float" })
-- The line beneath this is called `modeline`. See `:help modeline` -- The line beneath this is called `modeline`. See `:help modeline`
-- vim: ts=2 sts=2 sw=2 et -- vim: ts=2 sts=2 sw=2 et

View File

@ -30,6 +30,7 @@
"telescope.nvim": { "branch": "master", "commit": "7d324792b7943e4aa16ad007212e6acc6f9fe335" }, "telescope.nvim": { "branch": "master", "commit": "7d324792b7943e4aa16ad007212e6acc6f9fe335" },
"todo-comments.nvim": { "branch": "main", "commit": "31e3c38ce9b29781e4422fc0322eb0a21f4e8668" }, "todo-comments.nvim": { "branch": "main", "commit": "31e3c38ce9b29781e4422fc0322eb0a21f4e8668" },
"tokyonight.nvim": { "branch": "main", "commit": "cdc07ac78467a233fd62c493de29a17e0cf2b2b6" }, "tokyonight.nvim": { "branch": "main", "commit": "cdc07ac78467a233fd62c493de29a17e0cf2b2b6" },
"trouble.nvim": { "branch": "main", "commit": "bd67efe408d4816e25e8491cc5ad4088e708a69a" },
"wezterm.nvim": { "branch": "main", "commit": "032c33b621b96cc7228955b4352b48141c482098" }, "wezterm.nvim": { "branch": "main", "commit": "032c33b621b96cc7228955b4352b48141c482098" },
"which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" } "which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" }
} }

View File

@ -0,0 +1,3 @@
return {
"tpope/vim-fugitive",
}

View File

@ -3,6 +3,30 @@ return {
dependencies = { 'nvim-mini/mini.nvim' }, dependencies = { 'nvim-mini/mini.nvim' },
config = function() config = function()
require('mini.icons').setup() require('mini.icons').setup()
require('oil').setup() require('oil').setup {
view_options = {
show_hidden = false,
is_hidden_file = function(name, bufnr)
return vim.startswith(name, '.')
end,
is_always_hidden = function(name, bufnr)
return false
end,
natural_order = false,
sort = {
{ 'type', 'asc' },
{ 'name', 'asc' },
},
},
keymaps = {
['<leader>th'] = {
callback = function()
require('oil').toggle_hidden()
end,
desc = 'Toggle hidden files',
mode = 'n',
},
},
}
end, end,
} }

View File

@ -0,0 +1 @@
return {'akinsho/toggleterm.nvim', version = "*", config = true}

View File

@ -0,0 +1,37 @@
return {
"folke/trouble.nvim",
opts = {}, -- for default options, refer to the configuration section for custom setup.
cmd = "Trouble",
keys = {
{
"<leader>xx",
"<cmd>Trouble diagnostics toggle<cr>",
desc = "Diagnostics (Trouble)",
},
{
"<leader>xX",
"<cmd>Trouble diagnostics toggle filter.buf=0<cr>",
desc = "Buffer Diagnostics (Trouble)",
},
{
"<leader>cs",
"<cmd>Trouble symbols toggle focus=false<cr>",
desc = "Symbols (Trouble)",
},
{
"<leader>cl",
"<cmd>Trouble lsp toggle focus=false win.position=right<cr>",
desc = "LSP Definitions / references / ... (Trouble)",
},
{
"<leader>xL",
"<cmd>Trouble loclist toggle<cr>",
desc = "Location List (Trouble)",
},
{
"<leader>xQ",
"<cmd>Trouble qflist toggle<cr>",
desc = "Quickfix List (Trouble)",
},
},
}