Simplify statusline, support tabs, add more languages

This commit is contained in:
agryphus 2025-09-03 19:06:21 -04:00
parent c28dd3e9a9
commit bb94a399de
11 changed files with 166 additions and 109 deletions

View file

@ -30,6 +30,17 @@ require("lazy").setup({
event = "VeryLazy",
},
-- Markdown preview
{
"iamcco/markdown-preview.nvim",
cmd = { 'MarkdownPreviewToggle', 'MarkdownPreview', 'MarkdownPreviewStop' },
ft = { 'markdown' },
build = function()
vim.cmd [[Lazy load markdown-preview.nvim]]
vim.fn['mkdp#util#install']()
end,
},
-- Dashboard buffer
{
"goolord/alpha-nvim",
@ -37,6 +48,25 @@ require("lazy").setup({
dependencies = { 'nvim-tree/nvim-web-devicons' },
},
-- Compile mode
{
"ej-shafran/compile-mode.nvim",
-- tag = "v5.*",
-- you can just use the latest version:
branch = "latest",
-- or the most up-to-date updates:
-- branch = "nightly",
dependencies = {
"nvim-lua/plenary.nvim",
{ "m00qek/baleia.nvim", tag = "v1.3.0" },
},
config = function()
vim.g.compile_mode = {
baleia_setup = true,
}
end
};
-- Zen mode
"folke/zen-mode.nvim",
@ -75,10 +105,10 @@ require("lazy").setup({
-- See function signatures when typing them
{
"ray-x/lsp_signature.nvim",
event = "VeryLazy",
opts = {},
config = function(_, opts) require'lsp_signature'.setup(opts) end
-- "ray-x/lsp_signature.nvim",
-- event = "VeryLazy",
-- opts = {},
-- config = function(_, opts) require'lsp_signature'.setup(opts) end
},
-- Left-side file tree dispaly
@ -89,8 +119,15 @@ require("lazy").setup({
},
},
-- Shows current mode on bottom of screen
"itchyny/lightline.vim",
{
'nvim-lualine/lualine.nvim',
dependencies = { 'nvim-tree/nvim-web-devicons' },
},
{
'jedrzejboczar/possession.nvim',
requires = { 'nvim-lua/plenary.nvim' },
},
-- LSP
{'VonHeikemen/lsp-zero.nvim', branch = 'v4.x'},

View file

@ -10,13 +10,23 @@ vim.keymap.set("n", "J", "mzJ`z")
vim.keymap.set("n", "n", "nzzzv")
vim.keymap.set("n", "N", "Nzzzv")
-- step through visual lines by default
vim.keymap.set("n", "j", "gj")
vim.keymap.set("n", "gj", "j")
vim.keymap.set("n", "k", "gk")
vim.keymap.set("n", "gk", "k")
vim.keymap.set("v", "j", "gj")
vim.keymap.set("v", "gj", "j")
vim.keymap.set("v", "k", "gk")
vim.keymap.set("v", "gk", "k")
-- easier escape back to normal mode
vim.keymap.set("i", "<C-c>", "<Esc>")
vim.keymap.set("n", "Q", "<nop>")
-- universal find and replace
vim.keymap.set("n", "<leader>s", [[:%s/\<<C-r><C-w>\>/<C-r><C-w>/gI<Left><Left><Left>]])
vim.keymap.set("n", "<leader>r", [[:%s/\<<C-r><C-w>\>/<C-r><C-w>/gI<Left><Left><Left>]])
-- moving highlighted text
vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv")
@ -87,3 +97,34 @@ vim.keymap.set("n", "<leader>hF",
{ noremap = true, silent = false, desc = "Describe face" }
)
local str = string.format
for i = 1, 9 do
vim.keymap.set("n", str("<A-%s>", i), str("%sgt", i), { desc = str("Goto tab %s", i) })
vim.keymap.set("t", str("<A-%s>", i), str("<C-\\><C-n>%sgt", i), { desc = str("Goto tab %s", i) })
end
vim.keymap.set("n", "<A-n>", "<CMD>tabnew<CR>", { desc = "Create a new tab" })
vim.keymap.set("n", "<A-CR>", "<CMD>tabnew<CR><CMD>term<CR>i", { desc = "Create a new tab with a terminal" })
vim.keymap.set("n", "<A-q>", "<CMD>tabclose<CR>", { desc = "Close current tab" })
vim.keymap.set("n", "<A-0>", "<CMD>tablast<CR>", { desc = "Goto last tab" })
vim.keymap.set("n", "<A-]>", "<CMD>tabnext<CR>", { desc = "Goto next tab" })
vim.keymap.set("n", "<A-[>", "<CMD>tabprevious<CR>", { desc = "Goto prev tab" })
vim.keymap.set("n", "<A-->", "<CMD>tabm-<CR>", { desc = "Move tab to the left" })
vim.keymap.set("n", "<A-=>", "<CMD>tabm+<CR>", { desc = "Move tab to the right" })
vim.keymap.set("n", "<A-'>", "<CMD>tab split<CR>", { desc = "Clone window in new tab" })
vim.keymap.set("n", "<C-w><CR>", "<CMD>term<CR>i", { desc = "Terminal" })
vim.api.nvim_create_autocmd("TabEnter", {
callback = function()
local bufnr = vim.api.nvim_get_current_buf()
local buftype = vim.api.nvim_buf_get_option(bufnr, "buftype")
if buftype == "terminal" then
-- Enter Terminal-Job mode
vim.api.nvim_feedkeys("i", "n", false)
end
end,
})

View file

@ -21,6 +21,13 @@ autocmd("bufenter", {
end,
})
-- You can then map it to a key or create a command:
vim.api.nvim_create_user_command('GoFmt', function()
local filename = vim.fn.expand('%')
vim.fn.system('gofmt -e -w ' .. filename)
vim.cmd('edit!')
end, {})
vim.filetype.add({
extension = {
typ = 'typst'
@ -39,6 +46,8 @@ vim.opt.signcolumn = "auto"
vim.o.shell = "zsh"
vim.o.title = true
-- Do not map q to :q in man mode
vim.g.no_man_maps = true;