My personal neovim config that is inspired by EcoVim and jdhao neovim config.
I use kanagawa theme for better on my eyes :)
Feel free to use it and modify it to your liking. And starred my repo if you like it.
- Make sure you have installed the latest version of Neovim v0.9.0+ (nightly is preferred).
- Have wget, curl, unzip, git, make, pip, python, npm, node, luarocks, fd, ripgrep and cargo installed on your system. You can check if you are missing anything with :checkhealth command.
- Have any nerd font installed. Fira Code has been used in screenshots. You can download it from nerdfonts.com.
Try install script if it works for you.
cd .install
bash run.sh
LAZYGIT_VERSION=$(curl -s "https://api.github.com/repos/jesseduffield/lazygit/releases/latest" | grep -Po '"tag_name": "v\K[^"]*')
curl -Lo lazygit.tar.gz "https://github.com/jesseduffield/lazygit/releases/latest/download/lazygit_${LAZYGIT_VERSION}_Linux_x86_64.tar.gz"
tar xf lazygit.tar.gz lazygit
sudo install lazygit /usr/local/bin
You can search word under cursor with dictionary in MacOS with K in markdown file. Feel free to config other dictionary app if you are using Linux or Windows.
URL highlight and open with gx
in normal mode using url-open
plugin.
With the following plugins has been integrated into to support for full stack development:
[!INFO] I have actively updated this config so it may be changed in the future. You can try telescope instead of fzf-lua at telescope branch. But it will not be updated since I don't use it. There are some plugins that I don't use but I still keep it for reference use.
- AdvancedNewFile.nvim: Create new files and folders
- Comment.nvim: quickly comment code with treesitter power
- LuaSnip
- alpha-nvim customizable dashboard
- autosave.nvim
- better-escape.nvim
- bigfile.nvim: Automatically turn off some features of neovim when working with large files
- cinnamon.nvim: Smooth scrolling for any movement command or string of commands
- cmp-buffer
- cmp-calc
- cmp-cmdline
- cmp-git
- cmp-npm
- cmp-nvim-lsp
- cmp-nvim-lua
- cmp-path
- cmp-tailwind-colors
- cmp_luasnip
- codeium.nvim: AI code completion (fast but not good privacy)
- comment-box.nvim: create code comment in a styled box
- diffview.nvim
- dressing.nvim: UI enhancement
- flash.nvim navigate like the flash
- friendly-snippets: completion Snippets collection for a set of different programming languages.
- fzf-lua: finder, grep text, and more.
- lualine.nvim: Statusline
- git-conflict.nvim
- git-worktree.nvim
- gitsigns.nvim: super fast git decorations implemented purely in Lua
- glance.nvim: pretty window for previewing, navigating and changing lsp location
- hlargs.nvim
- hydra.nvim
- indent-blankline.nvim
- lazy.nvim
- lazygit.nvim
- lspkind-nvim
- markdown-preview.nvim
- markid
- mason-lspconfig.nvim
- mason.nvim
- mini.ai
- mini.align
- neovim-session-manager
- noice.nvim: experimental interface for messages, command-line and the popup menu
- nui.nvim
- numb.nvim: Jump or Peak line when typing a number in command_palette
- nvim-autopairs
- nvim-cmp
- nvim-colorizer.lua
- nvim-dap
- nvim-dap-repl-highlights
- nvim-dap-ui
- nvim-dap-virtual-text
- nvim-dap-vscode-js
- nvim-lsp-file-operations: enhances file operations using lsp
- nvim-lspconfig
- vim-sleuth:
- nvim-notify
- nvim-spectre: refactor, find and replace
- nvim-spider: move by subwords and skip insignificant punctuation
- nvim-surround
- nvim-tree.lua: a file explorer tree
- nvim-treesitter: syntax highlighting and code context
- nvim-treesitter-context: view context of current line in the top
- nvim-treesitter-textobjects
- nvim-treesitter-textsubjects
- nvim-ts-context-commentstring
- nvim-ufo
- nvim-web-devicons
- obsidian.nvim: for take note zetelkasten working with obsidian-vault
- printer.nvim: quickly put a print/log of the word with
gpiW
- promise-async
- rainbow-delimiters.nvim
- refactoring.nvim: refactor code like in the book Refactoring by Martin Fowler
- shade.nvim: dim other pane buffer
- stay-in-place.nvim: maintaining the cursor position during various actions
- tailwind-fold.nvim
- tailwind-sorter.nvim
- template-string.nvim: auto change backtick when use template string
- todo-comments.nvim
- kanagawa.nvim: Themes
- treesj: splitting and joining block code efficiency
- trouble.nvim
- tw-values.nvim
- twilight.nvim
- vtsls
- vim-indent-object
- vim-python-pep8-indent
- vim-pythonsense
- vim-repeat: dot repeat for non native command
- vim-rooter: change project root to current file
- vim-speeddating
- vim-swap
- vim-table-mode
- which-key.nvim
- wrapping.nvim
- zen-mode.nvim