Neovim setup for HTML, CSS, and JavaScript development on macOS. Includes LSP support, syntax highlighting, and web dev plugins.
Install Homebrew if you don't have it:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"brew install --cask iterm2Open iTerm2 and configure it:
- Font: iTerm2 → Settings → Profiles → Text → Font → JetBrainsMono Nerd Font, size 14
- Background color: iTerm2 → Settings → Profiles → Colors → Background →
282828
Install the Nerd Font:
brew install --cask font-jetbrains-mono-nerd-fontbrew install neovimAdd this alias to your ~/.zshrc so vim always opens Neovim:
echo "alias vim='nvim'" >> ~/.zshrc
source ~/.zshrcBack up any existing Neovim config, then clone the LazyVim starter:
mv ~/.config/nvim ~/.config/nvim.bak 2>/dev/null
mv ~/.local/share/nvim ~/.local/share/nvim.bak 2>/dev/nullClone this repo directly as your Neovim config:
git clone https://github.com/ArthurAnimationLLC/dotfiles ~/.config/nvimOpen Neovim — LazyVim will detect the config and install all plugins automatically:
nvimWait for the plugin installation to complete, then quit and reopen:
:qa
nvimOpen Neovim and launch Mason:
:Mason
Press / to search, i to install. Install the following:
| Server | Purpose |
|---|---|
html-lsp |
HTML autocomplete and validation |
css-lsp |
CSS property completion |
typescript-language-server |
JavaScript and TypeScript |
eslint-lsp |
Inline JavaScript linting |
Press q to close Mason when done.
| Plugin | What it does |
|---|---|
gruvbox.nvim |
Warm dark colorscheme |
nvim-ts-autotag |
Auto-close and rename HTML tags |
nvim-colorizer.lua |
Inline color swatches for CSS values |
emmet-vim |
Expand HTML abbreviations |
~/.config/nvim/
├── init.lua
└── lua/
├── config/
│ ├── options.lua — editor options
│ ├── keymaps.lua — custom keymaps
│ └── autocmds.lua — autocommands
└── plugins/
├── colorscheme.lua — gruvbox + LazyVim colorscheme config
└── webdev.lua — HTML/CSS/JS plugins
termguicolors = true— 24-bit true color (required for gruvbox)tabstop = 2,shiftwidth = 2— 2-space indentationrelativenumber = true— relative line numbersclipboard = unnamedplus— system clipboard integrationundofile = true— persistent undo across sessionsshell = /bin/zsh— zsh for all terminal commands
To pull the latest config on any machine:
cd ~/.config/nvim
git pullThen sync plugins inside Neovim:
:Lazy sync