Skip to content

wenjinnn/wenvim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

wenvim

wenjinnn's neovim configuration

Screenshots

starter auto completion lazy.nvim key clue
HTTP request pick anything DAP with toggleterm.nvim integration file explorer
LSP process and notify code action LSP jump to LSP symbol

Principle and Goal

  • Simple, yet powerful, always on develop.
  • Lazy load all plugins if it could, to optimize startup time to the shortest possible time, right now on my PC, the startup time are less then 30ms.
  • Avoid sidebar, focus on editing. personally, I prefer to use float window, sidebar buffer just distract me a lot.
  • Avoid extra UI plugins. In common scenarios, mini.notify and mini.pick with vim.ui.select() wrapper already done well enough for notify and float window.
  • Provide out-of-box experience for web development

Note

This configuration only guaranteed to be compatible with the latest stable version.

Install Instructions

Install requires Neovim 0.10+. Always review the code before installing a configuration.

Clone the repository and install the plugins:

git clone [email protected]:wenjinnn/wenvim ~/.config/wenjinnn/wenvim

Open Neovim with this config:

NVIM_APPNAME=wenjinnn/wenvim nvim

Directory notes

./plugin vim custom autocmd keymap option and more

./lua/lsp LSP config and settings

  • define a key-value pair table at <lspname>/init.lua, attribute in table will autoload by particular lsp
  • on_attach function in <lspname>/init.lua will auto execute by particular lsp, with a setup warpper

./lua/plugin plugins with particular settings and keymap

./lua/util common utils

./after just some filetype settings

Defined environment variables cheatsheets:

Common

LAZY_NVIM_LOCK_PATH lazy.nvim lockfile path, if not set, fallback to lazy.nvim default setting

TELESCOPE_FILE_IGNORE_PATTERNS telescope.nvim file ignore patterns, if not set, the pattern is { "^.git/", "^node_modules/" }

NVIM_SPELLFILE nvim spell file location

Dap

PROJECT_NAME nvim-dap config for dap configuration projectName

DAP_HOST nvim-dap config for setting host, most used at remote debug situations.

DAP_HOST_PORT like above, but for host port

Java

JAVA_HOME fallback java home

JAVA_8_HOME java 8 home

JAVA_17_HOME java 17 home

JAVA_21_HOME java 21 home

JDTLS_MAVEN_SETTINGS jdtls maven user settings.xml path

JDTLS_JAVA_HOME jdtls java home, if not set, fallback to JAVA_21_HOME

Must have

  1. ripgrep and fd for many plugin.

Recommend

  1. tmux & oh-my-tmux for terminal multiplexing, I'm using only at wsl.
  2. lazygit smooth git operation.

Main Plugins

code-runner

color

colorscheme

comment

completion

debugging

editing-support

file-explorer

formatting

fuzzy-finder

git

indent

keybinding

lsp

lsp-installer

markdown-and-latex

marks

motion

note-taking

nvim-dev

plugin-manager

search

session

snippet

split-and-window

startup

statusline

syntax

terminal-integration

utility

Part of this readme was generated by Dotfyle

About

wenjinnn's neovim configuration.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published