This is a Neovim configuration built upon NvChad as the base. Some plugins added on top includes the following:
- copilot.lua Github Copilot nvim plugin implemented in lua.
- lazygit.nvim Nvim Plugin to open LazyGit
- conform.vim Autoformatter
- nvim-dap Nvim debugger adapter protocol
- nvim-dap-ui Nvim UI plugin for nvim-dap-ui
- html
- css
- cssls
- tailwindcss-language-server
- golang
- gopls
- ruby
- rubocop
- ruby-lsp
- solargraph
- typescript
- typescript-language-server
- python
- pyright
- json
- jq
- jq-lsp
- golang
- goimports
- gofmt
- ruby
- solargraph
- typescript
- prettier
- python
- black
Please make sure you install NvChad.
IMPORTANT: Ripgrep is marked as
optional but is required for live grep
command to work.
Install NodeJS 18+.. If you are using a virtual
environment (i.e. nvm
), make user global node version is set to 18+.
Install Ruby 3.2.2. If you are using a virtual environmetn (i.e. rvm, rbenv) make sure global version is set to 3.2.2.
Install Go v1.18+.
Install ltex (for grammar checking in Markdowns and Text):
brew install ltex-ls
Run the following command to clone the configuration (IMPORTANT: will overrride all custom settings):
rm -rf $HOME/.config/nvim/lua && git clone https://github.com/etam-pro/et-nvim-conf.git $HOME/.config/nvim/lua
Open neovim:
nvim
To install all the plugins through Lazy, type in the following command:
:Lazy sync
**Might need to restart nvim at this point for the plugins to be effective.
To install all LSP, Linters and Formatters through Mason, type in the following command:
:MasonInstallAll
To login to Copilot:
:Copilot auth
You should be set to go!
NOTE: leader
is current set to space
.
-- Find files only in version control. Very helpful for filtering huge folders like node_modules.
map("n", "<leader>fg", "<cmd> Telescope git_files <cr>", { desc = "Find git files" })
-- Global search by text
map("n","<leader>lg", "<cmd> Telescope live_grep search_dirs=. <cr>", { desc = "Find in files" })
-- Shorthand to open Lazy panel
map("n","<leader>lz", "<cmd> Lazy <cr>", { desc = "Open Lazy Panel" })
-- Shorthand to open Mason panel
map("n","<leader>ls", "<cmd> Mason <cr>", { desc = "Open Mason Panel" })
-- add a breakpoint to current cursor location
map("n","<leader>db", "<cmd> lua require('dap').toggle_breakpoint() <cr>", { desc = "Toggle Debugger Breakpoint" })
-- open the debugger UI
map("n", "<leader>dd" , "<cmd> lua require('dapui').open() <cr>", { desc = "Open Debugger Session" })
-- close the debugger UI
map("n", "<leader>dx", "<cmd> lua require('dapui').close() <cr>", { desc = "Close Debugger Session" })
-- start a debugging session
map("n", "<leader>dc", "<cmd> lua require('dap').continue() <cr>", { desc = "Continue Debugger Session" })
-- clear all breakpoints
map("n", "<leader>df", "<cmd> lua require('dap').clear_breakpoints() <cr>", { desc = "Clear all Breakpoints" })
-- open the LazyGit panel
map("n", "<leader>gg", "<cmd> LazyGit <cr>", { desc = "Open LazyGit" })
map("v", ">", ">gv", { desc = "indent" })
- Vim Cheatsheet
- Vim Tips (Youtube Video)