Bearvim is a bare minimum neovim config to get started on
using neovim for beginners and also for advanced users.
I tried many neovim distributions overtime but i always
came back to my personal configs, mostly because most of the
neovim distributions are complicated and they seem to make
everything way overboard.
This config aims to bridge the gap. This is a little bit
opinianated but it offers a lot of flexibility in terms of
adapting it to your own liking.
NB: This is solely a neovim config. It probably will not work with vanilla vim.
Prerequisites git
, neovim > 0.7
curl -sLf https://raw.githubusercontent.com/anoopar112/bearvim/master/install.sh | bash
├── README.md
├── init.lua
├── install.sh
└── lua
└── bearvim
├── core
│ ├── colorscheme.lua
│ ├── dashboard.lua
│ ├── keymaps.lua
│ └── options.lua
├── plugins
│ ├── autopairs.lua
│ ├── autosave.lua
│ ├── bookmark.lua
│ ├── bufferline.lua
│ ├── comment.lua
│ ├── general.lua
│ ├── gitsigns.lua
│ ├── indentblankline.lua
│ ├── lualine.lua
│ ├── markdown-preview.lua
│ ├── nvim-cmp.lua
│ ├── nvimtree.lua
│ ├── session-manager.lua
│ ├── telescope.lua
│ ├── treesitter.lua
│ └── vimwiki.lua
│ ├── lsp
│ │ ├── lspconfig.lua
│ │ ├── lspsaga.lua
│ │ ├── mason.lua
│ │ └── null-ls.lua
└── plugins-setup.lua
The structure of the directory is divided into core
and plugins
.
The core
contains the main options and keymaps.
The plugins
directory contains all the installed plugins.
Bearvim will install packer and then packer will install all the plugins on first start. In the subsequent runs it will install the lsp plugins.
Bearvim uses packer to install all the plugins.
All the plugins are in the plugins-setup page.
You can add the plugins in the same page using packer.
For more info refer packer documentation here
This is the most opinianated section for this repository.
But fortunately, by design it is very easy to change.
you can change most of these Keybindings from the core/keymaps.lua
file. There are some
plugin specific bindings in their respective files also which will be mentioned seperately.
The leader key is mapped to space
.
space w j
move down the split.space w k
move up the split.space w h
move right the split.space w l
move left the split.
-
jj
will get you out of the insert mode.
autosave.nvim is added so that it will automatically save the file on mode change.
you can toggle that using the command:ASToggle
.
for more info refer Pocco81/auto-save.nvim -
space jj
- save the file. -
space wq
- also save the file and quit. -
space wc
- close the window/split or quit if only one window is open. -
space bd
- delete the current buffer. -
space ff
- open the file tree. -
space nh
- clear the current highlight. -
space vt
- This Keybinding is specifically for adding tasks in vimwiki.
it will create a string in the formatYYYYMMDD_task
for easily creating
tasks for each day.
-
space pp
- search for files in the project. -
space ll
- search for words in the project(live grep). -
space gg
- search for the word selected. -
space bb
- search the open buffers. -
space gc
- list all git commits.space gfc
- list commits for the current file/buffer.space gb
- list all git branches.space gs
- git status.
These are the plugins that are used in bearvim. All the plugins are linked. I also thank every plugin creator, it's their work that makes real difference in the neovim ecosystem. If you are not interested in installing bearvim, you can always derive inspiration from this list.
Name Description Config Packer The package manager plugins-setup.lua Plenary Used for other plugins - Vim-startify Dashboard core/dashboard.lua Deus-colorscheme colorscheme - vim-tmux-navigator Tmux enhancements - vim-surround adding parantheses and brackets automatically - neovim-session-manager Session management plugins/session-manager.lua Comment.nvim commenting with gc
plugins/comment.lua which-key.nvim Which key similar to spacemacs plugins/general.lua todo-comments.nvim Nice styling for todo,info,note etc - nvim-tree.lua File explorer plugins/nvimtree.lua nvim-web-icons For the fancy icons - lualine The statusline plugin plugins/lualine.lua bufferline The nice tabs on top plugins/bufferline.lua telescope The swiss army knife of fuzzy search plugins/telescope.lua telescope-fzf-native Fzf support for telescope - nvim-cmp Autocompletion based on lsp plugins/nvim-cmp.lua cmp-buffer buffer Autocompletion for nvim-cmp - cmp-path Filesystem path Autocompletion for nvim-cmp - LuaSnip Snippet Engine - cmp_luasnip Snippet Autocompletion for nvim-cmp - mason install and manage lsp servers plugins/lsp/mason.lua mason-lspconfig helper package to mason. - nvim-lspconfig Configuring lsp plugins/lsp/lspconfig.lua cmp-nvim-lsp lsp source for nvim-cmp autocompletion - lspsaga Enhancements to lsp ui plugins/lsp/lspsaga.lua typescript.nvim Typescript enhancements. - lspkind.nvim Vscode like pictograms - null-ls.nvim Lsp diagnostics,code actions etc. plugins/lsp/null-ls.lua nvim-treesitter Tree sitter support for syntax highlighting/parsing plugins/treesitter.lua nvim-autopairs autopairing/autoclosing support. plugins/autopairs.lua nvim-ts-autotag autopairing for typescript. - gitsigns.nvim Showing git changes in the sign column. plugins/gitsigns.lua vim-fugitive Managing git inside vim. - indent-blankline indenting plugin. plugins/indentblankline.lua vimwiki Vimwiki - Most powerful wiki plugins/vimwiki.lua vim-bookmarks Bookmark and traverse along the code. - tasks.nvim Simple task management plugin - nvim-colorizer highlight colors plugins/general.lua auto-save.nvim Auto save plugin - asyncrun.vim For running octodown(mac) markdown previewer. - markdown-preview.nvim Plugin for markdown-preview plugins/markdown-preview.lua