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-cliRun :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 nvimUpdate 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
jellybeanstheme (set inlua/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>ihpreviews the image under the cursor,<leader>ggopens LazyGit, and<leader>gbopens the current file (or visual selection) on GitHub. Install the external tools withbrew 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, andpj4444all format JSON withjq.<leader>pyformats YAML with Ruby,px/px2format XML with the existing Ruby/Perl scripts in~/.vim/, andphformats HTML withtidy. All use Conform, so failed commands leave the buffer unchanged.<leader>fmuses the configured formatter for the current filetype.
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.