The easy way is using MordechaiHadad/bob: A version manager for neovim.
bob install stable
bob use stable
Make sure to remove or move your current nvim
directory
git clone https://github.com/jellydn/nvim-ide.git ~/.config/nvim
Run nvim
and wait for the plugins to be installed
NOTE Checkout this file for some predefined keymaps: keymaps
Open nvim
and enter the following:
:checkhealth
You'll probably notice you don't have support for copy/paste also that python and node haven't been setup
So let's fix that
First we'll fix copy/paste
-
On mac
pbcopy
should be builtin -
On Ubuntu
sudo apt install xsel # for X11 sudo apt install wl-clipboard # for wayland
Next we need to install python support (node is optional)
-
Neovim python support
pip install pynvim
-
Neovim node support
npm i -g neovim
We will also need ripgrep
for Telescope to work:
-
Ripgrep
sudo apt install ripgrep
NOTE make sure you have node installed, I recommend a node manager like fnm.
I recommend using the following repo to get a "Nerd Font" (Font that supports icons)
To add a new LSP
First Enter:
:Mason
and press i
on the Language Server you wish to install
Next you will need to add the server to this list: servers
Note: Builtin LSP doesn't contain all lsps from nvim-lspconfig.
If you want to install any from there, for example terraform_lsp(which adds more functionality than terraformls, like complete resource listing),
- You can add the lsp name in mason lsp block
-- lua/usr/lsp/mason.lua
local servers = {
"sumneko_lua",
"cssls",
"html",
"tsserver",
"pyright",
"bashls",
"jsonls",
"yamlls",
"terraform_lsp" -- New LSP
}
- Manually install the binary of the lsp and put it in your path by downloading the binary or through your package manager. For terraform_lsp example
Make sure the formatter or linter is installed and add it to this setup function: null-ls
NOTE Some are already setup as examples, remove them if you want
You can install new plugins here: lazy
- folke/lazy.nvim
- nvim-autopairs
- Comment.nvim
- nvim-ts-context-commentstring
- nvim-web-devicons
- nvim-tree.lua
- bufferline.nvim
- vim-bbye
- lualine.nvim
- toggleterm.nvim
- project.nvim
- impatient.nvim
- indent-blankline.nvim
- alpha-nvim
- tokyonight.nvim
- nvim-cmp
- cmp-buffer
- cmp-path
- cmp-nvim-lsp
- tzachar/cmp-tabnine
- friendly-snippets
- LuaSnip
- mason.nvim
- nvim-lspconfig
- mason-lspconfig.nvim
- glepnir/lspsaga.nvim
- lukas-reineke/lsp-format.nvim
- null-ls.nvim
- vim-illuminate
- telescope.nvim
- nvim-treesitter
- gitsigns.nvim
- nvim-dap
- nvim-dap-ui
- DAPInstall.nvim
- kylechui/nvim-surround
- stevearc/aerial.nvim
- github/copilot.vim
- simrat39/rust-tools.nvim
- crispgm/nvim-go
- folke/trouble.nvim
- folke/todo-comments.nvim