Skip to content

Instantly share code, notes, and snippets.

@blakedietz
Last active February 25, 2025 05:44
Show Gist options
  • Save blakedietz/d2e025bd331cd26243d642e68bebff1a to your computer and use it in GitHub Desktop.
Save blakedietz/d2e025bd331cd26243d642e68bebff1a to your computer and use it in GitHub Desktop.
neovim bootstrap recommendations

neovim configurations

I would start with lazyvim. Start completely fresh, then port over configurations and plugins into the ~/.config/nvim folder

Dotfile management

To manage dotfiles I would recommend a tool called chezmoi. It's got a terrible name, but of all the different approaches I've used over the years, it's been the absolute best.

Hyper key

I am a bit of a keyboard nerd. The bare minimum I would recommend is a hyper key. There are a lot of different ways to achieve the functionality, QMK/ZMK, Raycast and the earliest being karabiner elements.  For your laptop, you'll either use Raycast, or karabiner.

Keyboard configs

Cranking up key repeat and down delay. Once you use a computer with a fast key repeat, everything else feels like a snails pace.

Regarding learning vim and remaining productive

I highly recommend using https://marketplace.cursorapi.com/items?itemName=asvetliakov.vscode-neovim. This is different than a vim emulator in that vscode/cursor will run a separate neovim instance and embed it. The advantage of this is that you can re-use configurations from your neovim configs from above in ~/.config/neovim directly from vscode. This will keep you productive as you'll still have everything be familiar and easy to access (find and replace, refactoring, some other plugins for vscode, etc), but you'll also be able to use full blown neovim under the covers.

return {
  {
    "folke/tokyonight.nvim",
    -- Here's an example of disabling a plugin in lazyvim when running in vscode
    cond = not vim.g.vscode,
    opts = {
      style = "night",
      dim_inactive = true,
      on_highlights = function(hl, c)
        -- Make borders slightly more legible VertSplit didn't seem to do anything
        hl.WinSeparator = {
          fg = c.cyan,
        }
      end,
    },
  },
}

Resources

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment