Skip to content

greggh/nvim

 
 

Repository files navigation

Neovim

GitHub License GitHub Stars GitHub Issues GitHub Last Commit Neovim Version Version MIT License Dotfyle Dotfyle Dotfyle

Neovim Screenshot

A modern, feature-rich Neovim configuration with a focus on productivity and developer experience

FeaturesRequirementsInstallationKey BindingsScreenshotsPluginsContributingLicenseDiscussions

Table of Contents

Features

  • Modern and elegant UI with Catppuccin theme
  • Powerful LSP integration for dozens of languages
  • Treesitter-based syntax highlighting and text objects
  • Fuzzy finding with Telescope and FZF
  • Git integration with Gitsigns and Diffview
  • Extensive debugging support via DAP
  • Testing frameworks for multiple languages
  • AI integration with Claude Code and Copilot
  • Integrated terminal experience
  • Comprehensive plugin ecosystem
  • Advanced autocompletion and snippets
  • Fast startup and responsive editing experience

Requirements

  • Neovim 0.10+ - Required for vim.system(), splitkeep, and modern LSP features
  • Nerd Font - Required for icons
  • External dependencies:

Installation

⚠️ WARNING: Always review the code before installing a configuration.

Clone the repository and install the plugins:

git clone git@github.com:greggh/nvim ~/.config/greggh/nvim

Open Neovim with this config:

NVIM_APPNAME=greggh/nvim/ nvim

Or set it as your default by copying to the standard location:

git clone git@github.com:greggh/nvim ~/.config/nvim

Key Bindings

💡 Press <Space> to see available key bindings via which-key

Category Key Binding Description
General <C-s> or <leader>qs Save file
<C-q> or <leader>qq Quit
<leader>qz Force quit
Navigation <leader>e File explorer
<leader>ff Find files
<leader>fg Live grep
Git <leader>gg LazyGit
<leader>gl View git log
<leader>gb View git blame
LSP <leader>lo Toggle LSP outline
<leader>xw Find in workspace
<leader>ca Code actions
Testing <leader>tr Run nearest test
<leader>tt Run file tests
AI <leader>ac Toggle Claude Code (normal mode)
<C-o> Toggle Claude Code (terminal mode)
Folding <leader>z0 Toggle level 0
<leader>z1 Toggle level 1
<leader>z2 Toggle level 2
Windows <leader>wm Toggle maximize window
Buffers <leader>bw Close buffer safely
<leader>bo Close other buffers
Treesitter af/if Function text object
ac/ic Class text object
aa/ia Parameter text object
[f/]f Navigate between functions
[c/]c Navigate between classes
[a/]a Navigate between parameters

For a complete list of keybindings, press <Space> to see the which-key popup menu.

Screenshots

Editor with Telescope

Main editor with Telescope file finder

Code with LSP

Code editing with LSP diagnostics

Terminal Integration

Integrated terminal experience

Plugins

This configuration uses lazy.nvim as its plugin manager and includes many powerful plugins:

Click to expand plugin list

Contributing

Contributions are welcome! Please see CONTRIBUTING.md for detailed guidelines on how to contribute.

To get started:

  1. Check the open issues or create a new one
  2. Fork the repository
  3. Create a new branch for your feature
  4. Make your changes
  5. Run the tests (make test) and ensure they pass
  6. Submit a pull request

Development

This configuration includes a comprehensive testing framework and development tools:

  • Testing: Run make test to execute all tests
  • Linting: Run make lint to check code quality
  • Formatting: Run make format to format Lua code
  • Git Hooks: Run ./scripts/setup-hooks.sh to set up pre-commit hooks
  • Automation:
    • Automated releases via the GitHub Actions workflow
    • Weekly dependency updates check via GitHub Actions
    • Comprehensive CI pipeline for testing all changes

For a complete development environment setup, see DEVELOPMENT.md.

License

MIT License

Community

Acknowledgements


Made with ❤️ by Gregg Housh

About

nvim configuration

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Lua 94.8%
  • Shell 4.1%
  • Other 1.1%