Skip to content

About

Neovim settings

Resources

Stars

2 stars

Watchers

1 watching

Forks

Latest commit

 

History

49 Commits

Folders and files

Repository files navigation

My Neovim Config

based on nvchad starter template

git clone git@github.com:duckworth/nvim-settings.git ~/.config/nvim

Uses Hack Nerd Font Mono, install from homebrew:

brew install --cask font-hack-nerd-font

Run :MasonInstallAll command after lazy.nvim finishes downloading plugins. Learn customization of ui & base46 from :h nvui.

Tree-sitter uses the main branch and requires Neovim 0.12 or later and the Tree-sitter CLI (0.26.1 or later):

brew install tree-sitter-cli

Run :TSInstallAll to install the configured parsers and :TSUpdate to update them. NvChad enables highlighting through Neovim's built-in Tree-sitter API.

If parser builds report unknown architecture arm64e.x1 on macOS, the selected Xcode compiler and Command Line Tools SDK may be mismatched. Start Neovim with the matching Command Line Tools compiler for parser installation or updates:

DEVELOPER_DIR=/Library/Developer/CommandLineTools nvim

Update command: :Lazy update

Notes:

~/.config/nvim
├── init.lua          -- Main entry point for Neovim
├── lazy-lock.json    -- Tracks installed plugin versions (managed by lazy.nvim)
└── lua
    ├── chadrc.lua     -- Primary configuration point (formerly `custom/chadrc.lua`)
    ├── configs        -- Plugin and LSP configuration files
    │   ├── conform.lua
    │   ├── lazy.lua
    │   └── lspconfig.lua
    ├── custom         -- Custom scripts and configurations
    │   └── init.lua
    ├── mappings.lua   -- Custom keybindings
    ├── options.lua    -- Neovim options (similar to `.vimrc` settings)
    └── plugins        -- Plugin setup
        └── init.lua   -- List of plugins to install

Customizations:

  • Theme: Uses the jellybeans theme (set in lua/chadrc.lua).
  • Nvim-Tree: Automatically opens when Neovim starts with a directory argument. Mouse support uses NvChad defaults and stays enabled in all windows. (Directory startup behavior is in lua/custom/init.lua.)
  • Neovide: New window/tab and clipboard shortcuts are in lua/mappings.lua.
  • Font: VimR manages its font in Settings > Appearance. Neovide uses lua/options.lua.
  • Snacks: Images display automatically in Ghostty when opening image files or viewing Markdown images. <leader>ih previews the image under the cursor, <leader>gg opens LazyGit, and <leader>gb opens the current file (or visual selection) on GitHub. Install the external tools with brew install imagemagick lazygit. For VimR, open images in macOS Preview; the image viewer requires a terminal with Kitty graphics support.
  • Formatting: <leader>pj, pj2, pj3, and pj4444 all format JSON with jq. <leader>py formats YAML with Ruby, px/px2 format XML with the existing Ruby/Perl scripts in ~/.vim/, and ph formats HTML with tidy. All use Conform, so failed commands leave the buffer unchanged. <leader>fm uses the configured formatter for the current filetype.

Maintenance

NvChad supplies the shared editor defaults. Keep lua/options.lua limited to personal overrides instead of copying those defaults. Mouse support is global; do not toggle it when entering or leaving the file tree.

Use :Lazy to inspect plugins. :Lazy update updates installed plugins and lazy-lock.json; commit the lockfile after checking the result. To undo an update, restore the previous lockfile and run :Lazy restore.

VimR and terminal Neovim normally share this config, but VimR can use a bundled Neovim version. Check :version in each when troubleshooting compatibility.

About

Neovim settings

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages