This config depends on packer for plugin management and installation. I don't use lazyvim cause it has serious drawbacks (despite better UX).
Nvim doesn't provide builtin clipboard support so you have to install clipboard provider. I suggset to use xclip
.
ripgrep - This one is used by Telescope
# Example of a shell script installing nerdfont JetBrainsMono
local FONTNAME="JetBrainsMono"
fc-list -q "${FONTNAME} Nerd Font Mono" || {
local TEMPDIR=$(mktemp -d)
git clone --depth 1 --filter=blob:none \
--sparse git@github.com:ryanoasis/nerd-fonts.git "$TEMPDIR"
pushd "$TEMPDIR"
git sparse-checkout add patched-fonts/${FONTNAME}
fc-list -q %s
./install.sh -s -S ${FONTNAME}
popd
}
You may use williamboman/mason.nvim
to install LSP servers & other tools.
See lsp-config/server_configurations.md for the list of LSP servers.
Every LSP serever listed below requries a separate installation of the binary or script.
Check out setup.sh
executable next to this file.
Languages, | LSP name | Summary |
---|---|---|
c/c++ | clangd | |
lua | luals | |
sh,bash,zsh | bashls | Basic shell LSP server; quirky when works with zsh |
* | mattn/efm-languageserver | General purpose server; see configs at creativenull/efmls-configs-nvim |
javascript, typescript | tsserver | TypeScript server from Micro$$oft; pretty slow |
json | vscode-langservers-extracted | Requires Node.js installation; checkout nvm manager for *nix platforms |
css, scss, less | vscode-langservers-extracted | Requires Node.js; use npm to install |
html | vscode-langservers-extracted | Requires Node.js; use npm to install |
sql | sqlls | Requires Node.js; use npm to install |
yamlls | yamlls | Requires Node.js; use npm to install |
Run :checkhealth
command to see if something wrong with your installation.
" ~/.config/nvim/init.vim
lua require("hinell")
Plugin name | Summary |
---|---|
wbthomason/packer.nvim |
Packaging manager |
williamboman/mason.nvim |
Package manager to install LSP & DAP servers, linters, and formatters |
williamboman/mason-lspconfig.nvim |
Integration with lspconfig |
hrsh7th/nvim-cmp |
Completion engine |
L3MON4D3/LuaSnip |
Snippet Engine for Neovim written in Lua. Supports TextMate (VS Code) snippets. |
lukas-reineke/cmp-under-comparator |
Better nvim-cmp sorting function |
taybart/b64.nvim |
Base64 conversion nvim command |
sindrets/diffview.nvim |
Diffviewer |
mrjones2014/legendary.nvim |
Command pallette |
gaborvecsei/memento.nvim |
Upon startup put the cursor on the last editing place |
simrat39/symbols-outline.nvim |
A tree view of symbols/outline code structure (see also aaeral.nvim |
nvim-lua/plenary.nvim |
Utils library |
stevearc/dressing.nvim |
UI library for salect, input etc . |
nvim-lualine/lualine.nvim |
Statusline |
luukvbaal/statuscol.nvim |
Statuscolumn |
lukas-reineke/indent-blankline.nvim |
Display thin lines of indentation. |
lukas-reineke/virt-column.nvim |
Display dots for indent columns |
akinsho/bufferline.nvim |
Tabline |
karb94/neoscroll.nvim |
Not used; the plugin may slow down nvim |
axieax/urlview.nvim |
Navigate across URLs inside buffer |
numToStr/Comment.nvim |
Toggle comment |
utilyre/barbecue.nvim |
Context status line under tab (VS Code like winbar) |
wintermute-cell/gitignore.nvim |
Scaffold .gitignore |
aca/emmet-ls |
Emmet html-expansion engine |
akinsho/git-conflict.nvim |
Visualise and resolve merge conflicts in neovim |
iamcco/markdown-preview.nvim |
Preview markdown files in browser |
Plugin name | Summary |
---|---|
andymass/vim-matchup |
Navigate and highlight matching words; modern matchit and matchparen (%) |
Plugin name | Summary |
---|---|
neovim/nvim-lspconfig) |
Diagnostics from LSP |
nvim-lua/lsp-status.nvim |
Diagnostics from LSP |
Plugin name | Summary |
---|---|
nvim-telescope/telescope.nvim |
UI palettes for various actions |
nvim-telescope/telescope-fzf-native.nvim |
Telescope extension using fzf search lib |
benfowler/telescope-luasnip.nvim |
Telescope luasnip integration |
olacin/telescope-cc.nvim |
Telescope integration for conventional Commits |
folke/todo-comments.nvim |
Telescope extension for listing Todo comments |
Plugin name | Summary |
---|---|
nvim-treesitter/nvim-treesitter |
tree-sitter configs for different language parsers |
theHamsta/crazy-node-movement |
nvim-treesitter module for navigation across AST (multiple languages) |
nvim-treesitter/nvim-treesitter-textobjects |
nvim-treesitter module for custom textobjects |
windwp/nvim-ts-autotag |
nvim-treesitter module for html auto tag closing |
Theme plugin name | Summary |
---|---|
shaunsingh/nord.nvim |
Theme |
marko-cerovac/material.nvim |
Theme |
Mofiqul/vscode.nvim |
VS Code like theme |
AlexvZyl/nordic.nvim |
🌒 Nord for Neovim, but warmer and darker. Supports a variety of plugins and other platforms |
folke/tokyonight.nvim |
Theme |
catppuccin |
Theme |
catppuccin-frappe |
Default |
Yazeed1s/oh-lucy.nvim |
Inspired by oh-lucy theme in vscodium, with few tweaks! |
rebelot/kanagawa.nvim |
Theme |
These plugins are written & maintained by me.
Plugin name | Summary |
---|---|
hinell/move.nvim |
Move selected chunks of text or lines |
hinell/tabs-history.nvim |
Track history of close tabs and focuse the last one |
hinell/lsp-timeout.nvim |
Halt unused LSP servers & restart them on demand automatically |
- LazyVim, quick-start config; 321 lines only
- @amaanq/nvim-config, mostly based on LazyVim
- @axieax/dotconfig/nvim, well organized configuration; 6321 lines
- @danielnehrig/nvim, monumental config; 9230 lines
- @antgubarev/nvim, minor; 1052 lines
February 1, 2023
September 28, 2023