Skip to content

reybits/config-nvim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

Nvim from Scratch

Plugins leaderkey plugin-manager

This repository contains my custom Neovim configuration for Linux, macOS, and potentially Windows. The setup is built from scratch and includes only the plugins I actively use in my workflow. I primarily use Neovim as a C++ IDE for cross-platform game development.

For the best experience, use it alongside my config-tmux repository.

blink-cmp

📦 Install

git clone https://github.com/reybits/config-nvim.git ~/.config/nvim

⚡️ Requirements

  • fzf: a command-line fuzzy finder.
  • viu: a terminal image viewer with native support for iTerm and Kitty.
  • fd: a better version of the find utility.
  • ripgrep(rg): a better version of the grep utility.

✨ Features

Enabled by default

Optional

⚙️ Customization

To customize plugins, enable, or disable integration with other tools, inside the nvim/lua/scratch/custom directory, create a plugin-name.lua file with the plugin name and add custom settings.

Navigation related

fzf-lua

By default, fzf-lua and oil.nvim used as the navigation plugins.

Telescope

You can use Telescope as main plugin by creating a telescope.lua file with the following content:

-- nvim/lua/scratch/custom/telescope.lua

return {
    -- Use telescope instead of fzf-lua
    require("scratch.custom.optional.telescope"),
    { "ibhagwan/fzf-lua", enabled = false },
}

Neo-tree

You can use neo-tree as main plugin by creating a neo-tree.lua file with the following content:

-- nvim/lua/scratch/custom/neo-tree.lua

return {
    -- Use nvim-tree instead of neo-tree
    require("scratch.custom.optional.neo-tree"),
    { "stevearc/oil.nvim", enabled = false },
}

Nvim-tree

You can use nvim-tree as main plugin by creating a nvim-tree.lua file with the following content:

-- nvim/lua/scratch/custom/nvim-tree.lua

return {
    -- Use nvim-tree instead of neo-tree
    require("scratch.custom.optional.nvim-tree"),
    { "stevearc/oil.nvim", enabled = false },
}

Git related

neogit

By default, Neogit and vim-fugitive is used as the Git plugin.

LazyGit as main git plugin

You can use LazyGit as main git plugin by creating a lazygit.lua file with the following content:

-- nvim/lua/scratch/custom/lazygit.lua

return {
    -- Use LazyGit instead of Neogit and vim-fugitive
    require("scratch.custom.optional.lazygit"),
    { "NeogitOrg/neogit", enabled = false },
    { "tpope/vim-fugitive", enabled = false },
}

Fugitive as main git plugin

You can use Fugitive as main git plugin by creating a fugitive.lua file with the following content:

-- nvim/lua/scratch/custom/fugitive.lua

return {
    -- Use vim-fugitive and its companions instead of Neogit
    require("scratch.custom.optional.vim-rhubarb"),
    require("scratch.custom.optional.vim-flog"),
    { "NeogitOrg/neogit", enabled = false },
}

Octo as GitHub companion

You can add support for the Octo plugin to work with GitHub by creating a octo.lua file with the following content:

-- nvim/lua/scratch/custom/octo.lua

return {
    require("scratch.custom.optional.octo"),
}

AI related

Copilot

copilot chat

Both Copilot and CopilotChat plugins are enabled by defautl. Copilot integrated into the completion menu via blink-cmp.

You can disable Copilot by creating a copilot.lua file with the following content:

-- nvim/lua/scratch/custom/copilot.lua

return {
    -- Disable Copilot and Copilot Chat
    { "github/copilot.vim", enabled = false },
    { "CopilotC-Nvim/CopilotChat.nvim", enabled = false },
}

Codeium

Codeium is disabled by default. However, you can enable it by creating a codeium.lua file with the following content:

-- nvim/lua/scratch/custom/codeium.lua

return {
    -- Enable Codeium without the completion menu support,
    -- use mappings instead:
    -- <tab> to accept suggestion
    -- <a-e> to cycle through suggestions
    require("scratch.custom.optional.neocodeium"),
}

Editor related

Folding via UFO

Here’s a detailed guide on enabling and extending folding with nvim-ufo in Neovim.

-- nvim/lua/scratch/custom/editor.lua

return {
    -- Enable nvim-ufo
    require("scratch.custom.optional.nvim-ufo"),
}

🚀 Useful links

About

My Neovim config.

Topics

Resources

License

Stars

Watchers

Forks

Languages