profile

Gavin Wiggins


LazyVim Configuration

Written on December 14, 2025

LazyVim is a great Neovim setup that is pre-configured with reasonable features. It's better than starting from scratch. Here are my configuration settings that focus on Python, HTML, CSS, and JavaScript. Configuration files for LazyVim must be located in the ~/.config/nvim directory. More info about LazyVim is available at https://www.lazyvim.org.

Config

Files located in the ~/.config/nvim/lua/config directory.

-- config/autocmds.lua

-- Trim trailing white space when a file is saved
vim.api.nvim_create_autocmd("BufWritePre", {
  pattern = "*",
  command = [[%s/\s\+$//e]],
})
-- config/keymaps.lua

vim.keymap.set("i", "jj", "<Esc>", { silent = true, desc = "Escape insert mode with jj" })

vim.keymap.set({ "n", "i" }, "<C-a>", "<Esc>ggVG", { desc = "Select all text with Ctrl-a" })
-- config/options.lua

vim.opt.relativenumber = false

vim.opt.conceallevel = 0

vim.g.autoformat = false

vim.g.lazyvim_python_lsp = "pyright"
vim.g.lazyvim_python_ruff = "ruff"

vim.g.lazyvim_prettier_needs_config = false

Plugins

Files located in the ~/.config/nvim/lua/plugins directory.

-- plugins/colorscheme.lua

return {
  "LazyVim/LazyVim",
  opts = {
    colorscheme = "catppuccin",
  },
}
-- plugins/lspconfig.lua

return {
  "neovim/nvim-lspconfig",
  opts = {
    inlay_hints = { enabled = false },
    servers = {
      pyright = {
        settings = {
          pyright = {
            disableOrganizeImports = true,
            disableTaggedHints = true,
          },
        },
      },
    },
  },
}
-- plugins/noice.lua

return {
  "folke/noice.nvim",
  opts = {
    presets = {
      lsp_doc_border = true,  -- Add a border to LSP hover and docs
    },
  },
}
-- plugins/snacks.lua

return {
  "snacks.nvim",
  opts = {
    indent = {
      scope = { enabled = false },
    },
    picker = {
      sources = {
        explorer = {
          hidden = true,
        },
      },
    },
  },
}
-- plugins/treesitter.lua

return {
  "nvim-treesitter/nvim-treesitter",
  opts = function(_, opts)
    vim.list_extend(opts.ensure_installed, {
      "css",
      "jinja",
      "swift",
    })
  end,
}

Gavin Wiggins © 2025
Made on a Mac with Genja. Hosted on GitHub Pages.