cxzhou35 / Awesome-neovim

My personal Neovim configuration.

Repository from Github https://github.comcxzhou35/Awesome-neovimRepository from Github https://github.comcxzhou35/Awesome-neovim

Awesome-neovim

Here is my Neovim configuration. If you find it helpful, please giving me a star ⭐.

Stars

Warning

I used to rely on packer.nvim for this config, but now I prefer using lazy.nvim as my plugin manager because it has a faster startup speed and is more efficient. This branch will no longer be updated, you can find the latest config in the *lazy branch.

Table of contents

  1. 🏞️ Screenshots
  2. πŸ“‚ File Structure
  3. ⚑️ Requirements
    1. Optional Tools
  4. πŸ› οΈ Installation
  5. ✨ Features
  6. ⌨️ Keymaps
  7. πŸ“– Wiki

🏞️ Screenshots

fig

πŸ“‚ File Structure

The files under config will be automatically loaded at the appropriate time, so you don't need to require those files manually.

~/.config/nvim/
β”œβ”€β”€ init.lua                # import neovim modules
β”œβ”€β”€ after/plugin            # plugin configs
β”‚   β”œβ”€β”€ alpha.rc.lua
β”‚   β”œβ”€β”€ autopairs.rc.lua
β”‚   └── ...
β”œβ”€β”€ lua                     # core neovim configs
β”‚   β”œβ”€β”€ colorscheme.lua
β”‚   β”œβ”€β”€ highlights.lua
β”‚   β”œβ”€β”€ keymaps.lua
β”‚   β”œβ”€β”€ options.lua
β”‚   β”œβ”€β”€ plugins.lua
β”‚   └── utils.lua
β”œβ”€β”€ res                     # user modified files
β”‚   β”œβ”€β”€ battery
β”‚   β”œβ”€β”€ vim-airline
β”‚   └── ...
└── snippets                # code snippets
    └── friendly-snippets

⚑️ Requirements

  • Neovim: Neovim >= 0.8.0 (needs to be built with LuaJIT).

  • Git: Git >= 2.19.0 (for partial clones support).

  • Packer.nvim: A use-package inspired plugin manager for Neovim.

  • Nerd Fonts: Iconic font aggregator, collection, and patcher.

  • Python integration: To use python remote-plugins with Neovim.

    python3 -m pip install --user pynvim
    python3 -m pip install --user neovim
  • Node.js integration: To use javascript remote-plugins with Neovim.

    npm install -g neovim

Note

After you have installed all requirements, you can relaunch Neovim and type :checkhealth to see if your Neovim system is up-to-date.

Optional Tools

  • Btop: A monitor of resources.
  • Lazygit: Simple terminal UI for git commands.
  • Ranger: A VIM-inspired filemanager for the console.
  • Ripgrep: A line-oriented search tool.

πŸ› οΈ Installation

  1. Make a backup of your current Neovim files:

    # required
    mv ~/.config/nvim ~/.config/nvim.bak
    # optional but recommended
    mv ~/.local/share/nvim ~/.local/share/nvim.bak
    mv ~/.local/state/nvim ~/.local/state/nvim.bak
    mv ~/.cache/nvim ~/.cache/nvim.bak
  2. Clone the repo:

    git clone https://github.com/cxzhou35/Awesome-neovim.git ~/.config/nvim
    # remove git folder
    rm -rf ~/.config/nvim/.git
  3. Install Plugins: Relaunch Neovim and type :PackerInstall to install all plugins.

  4. Install LSP Server: Relaunch Neovim and type :LspInstall [server] to install corresponding LSP server.

    To learn more about LSP servers, you can click here.

  5. Install Treesitter: Relaunch Neovim and type :TSInstall [language] to install corresponding Treesitter supported-language.

    To learn more about Treesitter supported-languages, you can click here.

  6. Start Neovim!

✨ Features

  • Transform your Neovim into a full-fledged IDE
  • Easily customize and extend your config by yourself
  • Blazingly fast
  • Sane default settings for options, autocmds, and keymaps
  • Comes with a wealth of plugins pre-configured and ready to use

⌨️ Keymaps

πŸ“ TODO

πŸ“– Wiki

πŸ“ TODO


Suggestions are always welcome! If you meet some problems, please contact Zicx or raise an issue.

Neovim is worth a try! 😺

About

My personal Neovim configuration.


Languages

Language:Lua 89.5%Language:Vim Script 10.5%