Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/harrisoncramer/nvim
My personal Neovim configuration.
https://github.com/harrisoncramer/nvim
configuration neovim vim
Last synced: 28 days ago
JSON representation
My personal Neovim configuration.
- Host: GitHub
- URL: https://github.com/harrisoncramer/nvim
- Owner: harrisoncramer
- Created: 2021-08-13T19:33:31.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-05-28T13:45:57.000Z (7 months ago)
- Last Synced: 2024-05-29T05:35:40.842Z (7 months ago)
- Topics: configuration, neovim, vim
- Language: Lua
- Homepage:
- Size: 2.51 MB
- Stars: 117
- Watchers: 3
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Neovim Configuration
![Editor](https://hjc-public.s3.amazonaws.com/nvim1.png?)
![Terminal](https://hjc-public.s3.amazonaws.com/nvim2.png?)
![Debugging](https://harrisoncramer.me/static/6e0f346fac366e6835391c95b69aa43a/d61c2/nvim-dap-ui-go.png?)# About
This repository contains my configurations, including key mappings, plugins, and other settings for Neovim. I'm primarily working day-to-day in VueJS, React, Typescript, Golang, Lua, and Clojure.
# Neovim Version
Important: I'm on the latest Neovim release (0.9) and many of these plugins will break if on an older version.
# Features
- Plugins managed with lazy.nvim
- Syntax highlighting with treesitter
- LSPs installed via Mason and configured via lspconfig
- Debuggers installed and configured with nvim-dap
- fterm for terminal integration
- fzf-lua for search
- neogit for git management
- gitlab.nvim for Gitlab integration
- diffview git branch/commit/diff viewing
- lualine for status bar
- lsp-format for formatting
- kanagawa colorscheme
- spectre for project-wide regexes# Dependencies
There are a few dependencies for this editor configuration that cannot be installed within Neovim. I've detailed them below, installation instructions _assume an Ubuntu OS_, although installation on other operating systems should be straightforward. Most of them are required for LSPs or Debuggers to work.
1. Git version 2.36 or greater
```bash
sudo add-apt-repository ppa:git-core/ppa -y
sudo apt-get update -y
sudo apt install git -y
```2. `npm` and `node`, which are used to install some of the LSPs and Debuggers. I recommend installing node via NVM (node version manager). You may need to resource your `.bashrc`/`.zshrc` after installing NVM for the command to be available in your path.
```bash
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
nvm install 20.5.0
```3. The Treesitter CLI, which is required for syntax highlighting
```bash
npm install -g tree-sitter-cli
```4. Golang (required for Golang Debugger + LSP). On Ubuntu:
```bash
sudo add-apt-repository ppa:longsleep/golang-backports -y
sudo apt update -y
sudo apt install golang-go -y
```5. Zip/Unzip commands (required to unpack Typescript Debugger)
```bash
sudo apt install zip -y
```6. The compiler `gcc`
```bash
sudo apt update -y
sudo apt install build-essential -y
```7. ripgrep for fuzzy finding
```bash
curl -LO https://github.com/BurntSushi/ripgrep/releases/download/13.0.0/ripgrep_13.0.0_amd64.deb
sudo dpkg -i ripgrep_13.0.0_amd64.deb
```8. python3 and pynvim for wilder
```bash
sudo add-apt-repository ppa:deadsnakes/ppa -y
sudo apt update -y
sudo apt install python3.11 -y
sudo apt install python3-pip -y
pip3 install --upgrade pynvim
```9. bun for faster language servers (tailwindcss and ts_ls)
```bash
curl -fsSL https://bun.sh/install | bash
```10. gnu-sed (for the spectre plugin)
# Quickstart
1. Install the required dependencies listed above.
2. Clone this repository to your Neovim configuration path: `git clone https://github.com/harrisoncramer/nvim.git ~/.config/nvim`
3. Open Neovim. The plugin installation should start automatically; so should the LSP and Debugger installations.
4. Run `:UpdateRemotePlugins` to update WilderPlease be patient when you first open up Neovim, it is installing many depndencies the first time it starts! I'd recommend going and getting a cup of coffee, the process can take ~5 minutes to install all of the debuggers, LSPs, and treesitter language parsers.
You can see the status of the plugin installation with the `:Lazy` command. This will open automatically. You can see the status of the LSP and Debugger installations with the `:Mason` command.