A modular Neovim configuration built with Lua, featuring LSP support, file navigation, autocompletion, and modern UI enhancements.
- Neovim 0.8+ (install with
brew install neovim) - Git (for cloning plugins)
- A Nerd Font (optional but recommended for icons)
- ripgrep (required for telescope search):
brew install ripgrep - Node.js (for LSP servers and markdown preview):
brew install node
If you're setting this up fresh, copy all files to your Neovim config directory:
# Backup existing config (if any)
mv ~/.config/nvim ~/.config/nvim.backup
# Create config directory
mkdir -p ~/.config/nvim
# Copy this configuration to ~/.config/nvim-
Start Neovim:
nvim
-
Install Packer (automatic):
- The configuration automatically installs Packer on first run
- You'll see Packer cloning itself to the data directory
-
Install Plugins:
:PackerSync
- This downloads and installs all plugins
- Wait for completion (green checkmarks)
- Restart Neovim:
:qathennvim - Note: Some plugins have dependencies on others. If you see errors, restart Neovim and run
:PackerSyncagain to ensure all plugins install correctly
-
Install LSP Servers:
:Mason
- Mason will auto-install pylsp (Python LSP server)
- You can install additional servers here if needed
# Check health of Neovim installation
:checkhealth
# Check specific components
:checkhealth telescope
:checkhealth nvim-treesitter
:checkhealth vim.lspNote: You may see a deprecation warning about :checkhealth lspconfig - this is normal and doesn't affect functionality.
# Verify all required tools are installed
nvim --version && rg --version && node --versionAll commands should return version information without errors.
- File Explorer: Press
<Space>.to toggle nvim-tree - File Search: Press
<Space>ffto open Telescope file finder - Live Grep: Press
<Space>fsto search in files - Markdown: Open a
.mdfile to see:- Beautiful in-buffer rendering
- Press
<Space>mpfor browser preview
- LSP: Open a Python file - you should see:
- Syntax highlighting
- Error diagnostics
- Autocompletion with
<Tab>
- Python REPL: Press ``` to toggle iPython REPL
Packer not found:
# Manually install Packer
git clone --depth 1 https://github.com/wbthomason/packer.nvim \
~/.local/share/nvim/site/pack/packer/start/packer.nvimTelescope fzf errors:
# Ensure telescope-fzf-native compiles
:PackerCompileMissing icons:
- Install a Nerd Font from nerdfonts.com
- Set your terminal to use the Nerd Font
LSP not working:
# Check LSP status
:LspInfo
# Reinstall language servers
:Mason
# Then reinstall pylsp or other serversSee key_mappings.md for a comprehensive list of all key mappings organized by function.
- Edit
lua/bruce/plugins-setup.lua - Add plugin with
use('author/plugin-name') - Run
:PackerSync - Create config file in
lua/bruce/plugins/if needed - Require the config in
init.lua
:PackerUpdate:PackerCleanIf you encounter issues:
- Check Neovim version:
nvim --version(should be 0.8+) - Run health checks:
:checkhealth - Clear plugin cache: Delete
~/.local/share/nvimand reinstall - Check error messages:
:messages - Verify file permissions: Ensure config files are readable
The configuration is modular. Key files to modify:
lua/bruce/core/options.lua- Editor settingslua/bruce/core/keymaps.lua- Key mappingslua/bruce/core/colorscheme.lua- Theme settingslua/bruce/plugins-setup.lua- Plugin list- Individual plugin configs in
lua/bruce/plugins/