https://github.com/peter-bread/peter.nvim
My Neovim Config
https://github.com/peter-bread/peter.nvim
linux lua macos neovim neovim-conf neovim-config neovim-configuration nvim
Last synced: 3 months ago
JSON representation
My Neovim Config
- Host: GitHub
- URL: https://github.com/peter-bread/peter.nvim
- Owner: peter-bread
- License: mit
- Created: 2024-06-27T11:12:52.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-04-02T00:23:45.000Z (3 months ago)
- Last Synced: 2025-04-02T00:29:43.695Z (3 months ago)
- Topics: linux, lua, macos, neovim, neovim-conf, neovim-config, neovim-configuration, nvim
- Language: Lua
- Homepage:
- Size: 532 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 24
-
Metadata Files:
- Readme: README.md
- License: COPYING.Apache-2.0
Awesome Lists containing this project
README
# peter.nvim
My first proper Neovim config.
> [!NOTE]
> Intended for use on MacOS and Linux.## Requirements
> [!NOTE]
> I don't think this list is exhaustive right now, hopefully one day it will be!- git
- lua
- neovim (+ it's dependencies)
- [fd](https://github.com/sharkdp/fd), [ripgrep](https://github.com/BurntSushi/ripgrep) (for snacks.picker)
- any tools needed to install or run tools from mason:
- node
- cargo
- python
- go
- ruby
- java## Install
Clone the repository.
```sh
git clone https://github.com/peter-bread/peter.nvim.git ~/.config/nvim
```If you carefully manage environment variables:
```sh
git clone https://github.com/peter-bread/peter.nvim.git "$XDG_CONFIG_HOME/$NVIM_APPNAME"
```If you use `gh` CLI for cloning (for some reason):
```sh
gh repo clone peter-bread/peter.nvim /path/to/config/location
```> [!TIP]
> Be sure to back up any existing Neovim files.## Structure
### Languages
Programming languages are configured in two places:
- [`lua/plugins/languages`](https://github.com/peter-bread/peter.nvim/tree/main/lua/peter/plugins/languages): plugin configuration
- [`after/ftplugin`](https://github.com/peter-bread/peter.nvim/tree/main/after/ftplugin): extra configuration (e.g. `vim.bo`, snippets\*)You can use [`require("peter.util.new_lang")`](https://github.com/peter-bread/peter.nvim/blob/main/lua/peter/util/new_lang.lua) to access a wrapper module that simplifies
some plugin setup for progamming languages.It is useful for:
- treesitter (installing parsers)
- mason (package manager for external editor tooling, e.g. lsp, formatters, etc.)
- lspconfig (setting up LSP)
- format (setting up formatting)
- lint (setting up linting)
- test (set up testing)
- dap (set up debugging)On top of that, you can include other plugins, but you need to set them up manually.
## License
Licensed under [MIT](./LICENSE), feel free to use any parts you like.
Code taken from other external projects is detailed [here](./THIRD_PARTY.md).
---
\* Snippets can also be set in `snippets/snippets/.json` (global) and
`.vscode/*.code-snippets` (project-specific.)