After running the installation script, follow these steps to ensure everything works correctly.
The installation scripts configure npm to use ~/.npm-global for user-level global packages to avoid permission issues.
npm config get prefix --location=per-user
# Should output: /home/your-username/.npm-globalThe npm packages installed in ~/.npm-global/bin need to be in your PATH. Add the following to your shell configuration:
export PATH=~/.npm-global/bin:$PATHexport PATH=~/.npm-global/bin:$PATHset -gx PATH ~/.npm-global/bin $PATHAfter editing your shell configuration, reload it:
# Bash
source ~/.bashrc
# Zsh
source ~/.zshrc
# Fish
source ~/.config/fish/config.fishOr simply open a new terminal window.
After setup, verify the language servers are in your PATH:
# LSP servers
lua-language-server --version
clangd --version
pyright --version
# Formatters
stylua --version
prettier --version
shfmt --version
clang-format --version
# npm packages should now be accessible
which lua-language-server
which bash-language-server
which stylua
which prettierProblem: npm packages installed but not in PATH
Solution:
- Check npm prefix:
npm config get prefix --location=per-user - Ensure
~/.npm-global/binis in your PATH - Add PATH export to your shell config file
- Reload shell:
source ~/.bashrc(or equivalent)
Problem: npm tries to write to system directories
Solution:
- Verify npm config:
npm config get prefix --location=per-user - Should return:
/home/username/.npm-global - If not, reset with:
npm config set prefix '~/.npm-global' --location=per-user
If verification shows some packages missing:
Debian/Ubuntu:
npm install -g lua-language-server bash-language-server
npm install -g @johnnymorganz/stylua-bin prettier @fsouza/prettierd
pip3 install --user pyright ruffArch Linux:
npm install -g bash-language-server
npm install -g @johnnymorganz/stylua-bin prettier @fsouza/prettierdFedora/RHEL:
npm install -g bash-language-server
npm install -g @johnnymorganz/stylua-bin prettier @fsouza/prettierdOnce language servers are verified working:
# Clone the bugsvim configuration
git clone https://github.com/ddubs/bugsvim ~/.config/nvim
# Launch NeoVim
nvim
# Plugins will auto-install on first launch (lazy.nvim)Inside NeoVim, check that LSP servers are connected:
:LspInfo
:checkhealthArch:
yay -S hyprls
# or if using paru:
paru -S hyprlsDebian/Ubuntu: Build from source:
git clone https://github.com/hyprwm/hyprland /tmp/hyprland
cd /tmp/hyprland
make hyprls
sudo cp hyprls /usr/local/bin/Fedora: Similar to Debian, build from source.
Arch (AUR):
yay -S nilDebian/Ubuntu/Fedora: Install via Nix:
nix run github:oxalica/nilA: Avoids permission issues and doesn't require sudo for global installs. Each user maintains their own npm packages.
A: No, the npm configuration is persistent. Just add the PATH export to your new shell's config file.
A: Not recommended. The installation scripts configure npm for user installs to prevent permission issues.
A: The installation scripts use --needed flags and check for conflicts. Existing packages won't be reinstalled.
- ✓ Run installation script
- ✓ Configure shell PATH for npm
- ✓ Verify language servers are in PATH
- ✓ Clone bugsvim configuration
- ✓ Launch NeoVim and verify LSP
- Start editing!
For issues with:
- Language servers: Check if executables are in PATH with
which <command> - npm permissions: Verify npm config with
npm config get prefix --location=per-user - NeoVim LSP: Run
:LspInfoand:checkhealthinside NeoVim - Specific packages: Refer to the troubleshooting section above