make neovim as a perfect ide for development
- nodejs
- neovim 0.9+
- lazygit -- awesome termial ui for git
- ncdu -- list file by size
- htop -- an interactive process viewer
- python3
- gzip
- wget
- rust
- tree-sitter -- for parser generator
- sed -- for formatter to use
- rg -- for telescope to work
- prettier -- js/ts formatter
- black -- python formatter
- stylua -- lua formatter
- clang_format -- c/c++ formatter
- eslint -- additional js/ts diagnostic it can work with tsserver lsp, so its ok
- fortune -- show a random quotation from a collection of quotes in alpha dashboard
- shfmt -- sehll formater
go install mvdan.cc/sh/v3/cmd/shfmt@latest
, then set environment variable for go path bin folder - shellcheck -- shell linter
- beautysh -- zshell formater
- zsh -- a shell with some useful plugins
- xclip -- clipboard tool for linux
- luarocks -- the package manager for Lua modules
- fd -- for telescope compatibility
git clone https://github.com/nfwyst/perfect-neovim-config.git ~/.config/nvim
- run
:checkhealth
in command mode to check nvim enviroment is ok, you can install missing dependencies by check it - run
:Lazy install
in command mode to install all plugins - run
:LspInstallInfo
in command mode to install language server protocol manually, it give us language specific completion and diagnostic - run
:TSInstall
in command mode to install treesitter, it give us a tons of context syntax highlight support, indent, folds, etc...
- file Explorer
- file/symbol/command/help/register search
- completion, diagnostic, format
- git integrates
- debug
- navigation
- toggle terminal in vim
- outline viewer
- window/buffer/tab control
- marks, text objects
- find and replace all
- folds, spelling etc...
- nerd font
- vscode integration
a font that has a collection of icons builtin, you can install the prebuild 0xProto font, or download from 0xProto
The config file can work with vscode, and the VSCode Neovim
plugin is required.
there are some suggested plugins:
- Apc Customize UI++
- VSCode Animations
if you want to use your own code snippets, you can create it under snippets folder, the language tell snippet engine what language to use the snippets specified by path
you can create your code template, for example in javascript.json:
{
"setImmediate": {
"prefix": "sim",
"body": "setImmediate(() => {\n\t${0}\n})"
}
}
you can find and replace all with telescope and quickfix list, here is the steps:
- press ctrl+q add the search result to the quickfix list above telescope view
- enter
:cdo s/what you want to replace/what you want to be/g | update
, update will write the buffer to disk after replace finished.