This is my personal Neovim configuration, tailored to my workflow and preferences. It’s a work in progress, and I'm always exploring ways to improve it.
Here's a general overview of the config layout:
lua
├── core
│ ├── keymaps.lua
│ ├── options.lua
│ └── ...
├── plugins
│ ├── telescope.lua
│ ├── treesitter.lua
│ └── ...
│ └── lsp
│ ├── lsp.lua
│ └── mason.lua
init.lua
Before using this config, install the following tools with Homebrew:
# Core tools
brew install neovim
brew install git
# Fonts (for icons)
brew tap homebrew/cask-fonts
brew install --cask font-hack-nerd-font
# Telescope dependencies
brew install ripgrep fd
# LazyGit integration
brew install lazygit
# LaTeX (for compiling .tex files)
brew install --cask mactex
# Skim (for viewing PDFs with SyncTeX)
brew install --cask skim
# Node.js (needed for copilot, markdown preview, LSPs, etc.)
brew install node
- Navigate to your config directory
cd ~/.config/
- Clone this repo:
https://github.com/EonP/nvim.git
- Launch Neovim - all plugins will install automatically
nvim
-
Some language servers require full SDKs to be installed and properly configured.
- For example,
java.lua
(Java LSP) requires the full JDK path for proper functionality.
Make sure to set yourJAVA_HOME
environment variable appropriately. - You can hardcode the JDK path, or set
JAVA_HOME
and useos.getenv("JAVA_HOME")
in your config:local jdk_path = os.getenv("JAVA_HOME") or "/Library/Java/JavaVirtualMachines/jdk-21.jdk/Contents/Home"
- For example,
-
All plugins are declared in
init.lua
and are organized into thelua/plugins/
directory. -
You can enable/disable features easily:
- Just comment or uncomment the relevant
require("plugins/...")
- Just comment or uncomment the relevant
Any kind of contribution is more than welcome—whether it's fixing bugs, adding plugins, or even just opening issues with suggestions!