An open API service indexing awesome lists of open source software.

https://github.com/febinjoy/febins-neovim-config


https://github.com/febinjoy/febins-neovim-config

Last synced: 2 months ago
JSON representation

Awesome Lists containing this project

README

          

# Neovim Configuration

This repository contains my customized Neovim configuration, inspired by the "Neovim for Newbs" series by [Typecraft Dev](https://www.youtube.com/@typecraft_dev). While it draws from the series, I have made several modifications and enhancements to suit my needs.

## Features

- **LSP Servers**: Support for Lua, Python, C#, Golang, TypeScript, JavaScript, Bash, CSS, HTML, XML, and GraphQL.
- **Plugin Manager**: Utilizing Lazy and Mason for efficient plugin management and LSP installation.
- **UI Enhancements**:
- `bufferline` for enhanced buffer visibility.
- `lualine` for a customised status line.
- `neo-tree` for advanced file tree navigation.
- **Commenting**: `nvim-comment` for easy commenting.
- **Fuzzy Finder**: `telescope` for powerful file searching and picking.
- **Syntax Highlighting**: `treesitter` for superior syntax highlighting and code comprehension.
- **Code suggestion and auto completion**
- And much more...

## Prerequisites
Ensure the following packages are installed on your system before proceeding:

- Python: [Installation Instructions](https://www.python.org/downloads/)
- pip: Python package installer, included with Python installation.
- unzip: Utility for unzipping files, available through your package manager.
- Node.js: [Installation Instructions](https://nodejs.org/en/download/)
- npm: Node.js package manager, included with Node.js installation.
- ripgrep: [Installation Instructions](https://github.com/BurntSushi/ripgrep#installation)
- grep: Command-line utility, typically pre-installed on most systems.
- Go (Optional): [Installation Instructions](https://golang.org/doc/install)
- .NET SDK (Optional): [Installation Instructions](https://dotnet.microsoft.com/download)
- xclip - Some distros will need to have this installed for copying to clipboard.

Ensure each of these dependencies is properly installed and accessible from your command line.

Ensure NeoVim is the latest version.

```bash
nvim --version
```

Ubuntu often ships older versions.

```bash
sudo add-apt-repository ppa:neovim-ppa/unstable
sudo apt update
sudo apt install neovim
```

Mac:
```bash
brew update
brew upgrade neovim
```

### Dependencies

#### Ubuntu

```bash
sudo npm install -g prettier
sudo npm install -g write-good
sudo npm install -g eslint_d
npm install -g tree-sitter-cli
go install github.com/mgechev/revive@latest
export PATH="$HOME/go/bin:$PATH"
sudo apt install pylint isort codespell
```

#### Mac

```bash
sudo npm install -g prettier
sudo npm install -g write-good
sudo npm install -g eslint_d
npm install -g tree-sitter-cli
go install github.com/mgechev/revive@latest
export PATH="$HOME/go/bin:$PATH"
brew install codespell
brew install stylua
brew install pylint
brew install isort
brew install black
brew install luarocks
brew install wget
brew install fd
```

## Installation

Clone the repository:
```
git clone https://github.com/febinjoy/febins-neovim-config.git ~/.config/nvim
```
## Usage

Explore the various features and plugins to enhance your coding experience. Feel free to further customize the configuration to meet your workflow requirements using Lazy and Mason.

Details about the custom keymaps could be found [here](https://github.com/febinjoy/febins-neovim-config/blob/master/lua/config/keymaps.lua)

## Acknowledgements

A huge thank you to [Typecraft Dev](https://www.youtube.com/@typecraft_dev) for the fantastic "Neovim for Newbs" series. Much appreciation to the maintainers of the respective plugins and themes.

- https://github.com/goolord/alpha-nvim
- https://github.com/akinsho/bufferline.nvim
- https://github.com/catppuccin/nvim
- https://github.com/hrsh7th/cmp-nvim-lsp
- https://github.com/L3MON4D3/LuaSnip
- https://github.com/Exafunction/codeium.vim
- https://github.com/rafamadriz/friendly-snippets
- https://github.com/lewis6991/gitsigns.nvim
- https://github.com/rebelot/kanagawa.nvim
- https://github.com/folke/lazy.nvim
- https://github.com/nvim-lualine/lualine.nvim
- https://github.com/williamboman/mason-lspconfig.nvim
- https://github.com/williamboman/mason.nvim
- https://github.com/nvim-neo-tree/neo-tree.nvim
- https://github.com/EdenEast/nightfox.nvim
- https://github.com/nvimtools/none-ls-extras.nvim
- https://github.com/nvimtools/none-ls.nvim
- https://github.com/fcancelinha/nordern.nvim
- https://github.com/MunifTanjim/nui.nvim
- https://github.com/hrsh7th/nvim-cmp
- https://github.com/terrortylor/nvim-comment
- https://github.com/mfussenegger/nvim-dap
- https://github.com/leoluz/nvim-dap-go
- https://github.com/rcarriga/nvim-dap-ui
- https://github.com/neovim/nvim-lspconfig
- https://github.com/nvim-neotest/nvim-nio
- https://github.com/nvim-treesitter/nvim-treesitter
- https://github.com/nvim-tree/nvim-web-devicons
- https://github.com/nvim-lua/plenary.nvim
- https://github.com/nvim-telescope/telescope-live-grep-args.nvim
- https://github.com/nvim-telescope/telescope-ui-select.nvim
- https://github.com/nvim-telescope/telescope.nvim
- https://github.com/tpope/vim-fugitive