Skip to content

Bourbxn/bourbxn-nvim-v2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BourbxnNvim V2

NOTICE : This is the second version of my Neovim configuration. It's been fully restructured and now uses lazy.nvim as the plugin manager for faster and more efficient performance. You can install, customize, and extend this configuration as much as you like. It's intended to serve as a clean and modern reference setup for new Neovim users.Vim is better na kub.

Showcase

image image image image


Languages Support

Language Status
Java
Golang

Plugins List

Plugin Description
bufferline.nvim Buffer/tab line
catppuccin Theme/colorscheme
cmp-buffer Completion source (buffer)
cmp-nvim-lsp LSP source for nvim-cmp
cmp-path Completion source (filesystem paths)
cmp_luasnip LuaSnip source for nvim-cmp
dashboard-nvim Neovim start screen
fidget.nvim LSP progress UI
friendly-snippets Ready-to-use snippets
gitsigns.nvim Git signs in gutter
image.nvim Render images in Neovim
indent-blankline.nvim Indentation guides
lazy.nvim Plugin manager
lazygit.nvim Launch lazygit inside Neovim
leap.nvim Motion/navigation plugin
lualine.nvim Status line
LuaSnip Snippet engine
mason-lspconfig.nvim Mason LSP bridge
mason-null-ls.nvim Mason source manager for null-ls
mason-tool-installer.nvim Auto installer for Mason tools
mason.nvim LSP/DAP server installer
multicursor.nvim Multi-cursor support
neo-tree.nvim File explorer
neoscroll.nvim Smooth scrolling
noice.nvim Modern notification & UI
none-ls-extras.nvim Extra sources for none-ls
none-ls.nvim Linter/formatter engine
nui.nvim UI component lib
nvim-autopairs Auto close brackets/quotes
nvim-cmp Autocompletion engine
nvim-colorizer.lua Color codes preview
nvim-lspconfig LSP setup
nvim-notify Fancy notifications
nvim-surround Add/change/delete surrounding text
nvim-treesitter Syntax highlighting
nvim-web-devicons File icons
nvim-window-picker Easy window switching
plenary.nvim Lua helper library
render-markdown.nvim Markdown rendering
smear-cursor.nvim Cursor trail
telescope-fzf-native.nvim Native FZF sorter for Telescope
telescope-ui-select.nvim UI picker for Telescope
telescope.nvim Fuzzy finder
todo-comments.nvim Highlight and manage TODOs
vim-bbye Buffer closing without closing window
vim-fugitive Git integration
vim-rhubarb GitHub extension for fugitive
vim-sleuth Auto-detect indentation
vim-tmux-navigator Navigate tmux splits from Neovim
which-key.nvim Keybinding helper
hererocks Python environment (required for some LSPs)
trouble.nvim LSP diagnostics panel, bound to <leader>dX, <leader>cl, etc.
nvim-java Painless Java in Neovim
tiny-inline-diagnostic.nvim PDisplay diagnostic messages where the cursor is

Important

  • Mason has already installed some languages, and for some languages, errors may occur during installation if they are not available on your machine, such as Golang and Java. If you don’t use them, it’s recommended to remove them.
  • The nvim-java plugin has a JDK version configured, which may cause errors when opening Neovim. If you don’t need it, you should remove the plugin and also delete its configuration in lsp.lua.

Install

1. Install Neovim

MacOS/Linux

brew install neovim ripgrep

Windows

scoop install neovim

2. Install BourbxnVim

MacOS/Linux

git clone https://github.com/Bourbxn/bourbxn-nvim-v2.git ~/.config/nvim

Windows

git clone https://github.com/Bourbxn/bourbxn-nvim-v2.git $HOME\AppData\Local\nvim

Uninstall

MacOS/Linux

rm -rf ~/.config/nvim
rm -rf ~/.local/share/nvim
rm -rf ~/.cache/nvim

Windows

rd -r ~\AppData\Local\nvim
rd -r ~\AppData\Local\nvim-data

Configure

Add Plugins

Adding Simple Plugins (Minimal or No Config)

For plugins that are easy to use and require little to no configuration (e.g., nvim-colorizer.lua, todo-comments.nvim), add them to the file /nvim/lua/plugins/misc.lua and restart neovim.

Example misc.lua:
return {
  -- ...
  {
    'kylechui/nvim-surround',
    version = '^3.0.0',
    event = 'VeryLazy',
    config = function()
      require('nvim-surround').setup {
        -- Optional configuration here or leave empty for defaults
      }
    end,
  },

  -- ### Add new plugins here ###
}

Adding Complex Plugins (Require Extensive Configuration)

  1. Create a new Lua file named after the plugin inside /nvim/lua/plugins/<plugin-name>.lua
  2. Example plugin config file (.lua):
return {
  'author/plugin-name',
  config = function()
    -- Detailed plugin configuration here
  end,
}
  1. Then, open your main Neovim config file /nvim/init.lua
  2. Add the new plugin module inside the lazy setup call:
require('lazy').setup {
  -- Other plugins...
  require('plugins.smear-cursor'),
  require('plugins.trouble'),
  -- ### Import new plugins here ###
}
  1. Restart neovim

Remove Plugins

  1. Delete or comment out the plugin from:
    • ~/.config/nvim/lua/plugins/misc.lua
    • or plugins/<plugin-name>.lua
  2. Remove its import from init.lua if you used require('plugins.plugin-name').
  3. Restart neovim

Configure Keymaps

Configure keymaps at /nvim/lua/core/keymaps.lua (Built-in keymaps) and /nvim/lua/core/plugins/<plugin> (Plugin keymaps)

Configure Mapleader

Mapleader is a first key to start using keymaps. Keymaps should use mapleader because keymaps shortkey will not cover default vim shortkey. Normally neovim user used spacebar as mapleader.

vim.g.mapleader = "<mapleader>"

Configure Keymaps

[mode] has 3 modes normal moden, insert modei and visual modev
[keys] can add many keys on keyboard ex. "<leader>ee"
[command] can add neovim command ex. "<cmd>NvimTreeToggle<cr>"

vim.g.mapleader = " "

local keymap = vim.keymap
local opts = { buffer = 0 }
...
keymap.set("[mode]", "<leader>[keys]", "<cmd>[command]<cr>")

Default Keymaps

Built-in keymaps

Mode Key Action Description
i jk Exit insert mode
n <C-s> Save file (:w)
n <leader>sn Save file without formatting (:noautocmd w)
n <C-q> Quit file (:q)
n x Delete character without copying
n <C-d> / <C-u> Scroll down/up and center screen
n n / N Find next/prev search result and center screen
n <Up>/<Down> Resize window height
n <Left>/<Right> Resize window width
n <Tab> / <S-Tab> Switch to next/previous buffer
n <leader>x Close buffer (:Bdelete)
n <leader>b New empty buffer (:enew)
n <leader>v Vertical split (<C-w>v)
n <leader>h Horizontal split (<C-w>s)
n <leader>se Equalize split sizes (<C-w>=)
n <leader>xs Close current split window (:close)
n <leader>pk/pj/ph/pl Move between splits (up/down/left/right)
n <leader>to Open new tab (:tabnew)
n <leader>tx Close current tab (:tabclose)
n <leader>tn/tp Go to next/previous tab
n <leader>lw Toggle line wrap
v < / > Stay in indent mode while shifting
v p Paste without overwriting the yank register
n [d / ]d Go to previous/next diagnostic
n <leader>d Show diagnostic in floating window
n <leader>q Open diagnostic location list
v J/K Move lines up/down
n <leader>nh Clear search highlight

Plugins keymaps

Mode Key Action Description Plugin
i, s <Tab> Select next item or expand snippet nvim-cmp + LuaSnip
i, s <S-Tab> Select previous item or jump back nvim-cmp + LuaSnip
i, s <C-l> Jump to next snippet placeholder LuaSnip
i, s <C-h> Jump to previous snippet placeholder LuaSnip
i <C-n> Select next completion item nvim-cmp
i <C-p> Select previous completion item nvim-cmp
i <C-b> Scroll completion docs up nvim-cmp
i <C-f> Scroll completion docs down nvim-cmp
i <C-y> Confirm completion item nvim-cmp
i <C-Space> Trigger completion manually nvim-cmp
n <leader>gg Open LazyGit lazygit.nvim
n gd Goto LSP definition telescope.nvim
n gr Find references telescope.nvim
n gI Goto implementation telescope.nvim
n gD Goto declaration vim.lsp
n <leader>D Type definition telescope.nvim
n <leader>ds Document symbols telescope.nvim
n <leader>ws Workspace symbols telescope.nvim
n <leader>rn Rename symbol vim.lsp
n,x <leader>ca Code action vim.lsp
n <leader>sh Search help telescope.nvim
n <leader>sk Search keymaps telescope.nvim
n <leader>sf Find files telescope.nvim
n <leader>ss Telescope builtins telescope.nvim
n <leader>sw Search current word telescope.nvim
n <leader>sg Live grep telescope.nvim
n <leader>sd Search diagnostics telescope.nvim
n <leader>sr Resume last picker telescope.nvim
n <leader>s. Search recent files telescope.nvim
n <leader><leader> Search buffers telescope.nvim
n <leader>dx Toggle diagnostics view trouble.nvim
n <leader>dX Toggle buffer diagnostics trouble.nvim
n <leader>cs Toggle LSP symbols trouble.nvim
n <leader>cl Toggle LSP definitions/references trouble.nvim
n <leader>dL Toggle location list trouble.nvim
n <leader>dQ Toggle quickfix list trouble.nvim
n,x <Up> Add multicursor above multicursor.nvim
n,x <Down> Add multicursor below multicursor.nvim
n,x <leader><Up> Skip cursor above multicursor.nvim
n,x <leader><Down> Skip cursor below multicursor.nvim
n,x <leader>n/N Add next/previous match multicursor.nvim
n,x <leader>s/S Skip next/previous match multicursor.nvim
n <C-LeftMouse> Add cursor with mouse multicursor.nvim
n <C-LeftDrag> Drag cursor selection multicursor.nvim
n <C-LeftRelease> End cursor drag multicursor.nvim
n,x <C-q> Toggle multicursor mode multicursor.nvim
n \ Reveal current file in file explorer neo-tree.nvim
n <leader>e Toggle file explorer neo-tree.nvim
n <leader>ngs Show git status in float neo-tree.nvim
n <leader>z Dismiss notifications noice.nvim
n ]h Next Hunk (or ]c in diff mode) gitsigns.nvim
n [h Prev Hunk (or [c in diff mode) gitsigns.nvim
n ]H Jump to Last Hunk gitsigns.nvim
n [H Jump to First Hunk gitsigns.nvim
n,v <leader>ghs Stage Hunk gitsigns.nvim
n,v <leader>ghr Reset Hunk gitsigns.nvim
n <leader>ghS Stage Buffer gitsigns.nvim
n <leader>ghu Undo Stage Hunk gitsigns.nvim
n <leader>ghR Reset Buffer gitsigns.nvim
n <leader>ghp Preview Hunk Inline gitsigns.nvim
n <leader>ghb Blame Line (full) gitsigns.nvim
n <leader>ghB Blame Buffer gitsigns.nvim
n <leader>ghd Diff This gitsigns.nvim
n <leader>ghD Diff This ~ gitsigns.nvim
o,x ih Select Hunk gitsigns.nvim


Contributors

About

Rewritten Neovim config using lazy.nvim instead of packer.nvim, with a restructured file layout for better organization and performance.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages