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 mini.deps key clue
HTTP request pick anything DAP 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.
  • AI powered.

Note

This configuration only guaranteed to be compatible with the latest stable version.
I'm not using mason.nvim now, The LSP package should managed by you own system.
To make olimorris/codecompanion.nvim work, you need to setup your own api key in lua/plugin/extra.lua.
To get all the custom keymap clue you need, just press space.

Install Instructions

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

Clone the repository and install the plugins:

git clone git@github.com: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

NVIM_MINI_DEPS_SNAP mini.deps snap path, if not set, fallback to mini.deps 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

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

JAVA_TEST_PATH path to vscode-java-test jars

JAVA_DEBUG_PATH path to vscode-java-debug jars

LOMBOK_PATH path to lombok java agent jar

JDTLS_XMX jdtls xmx jvm arg value

JDTLS_DAP_VMARGS jdtls dap vm args

Sonarlint

SONARLINT_PATH path to sonarlint language server jars

Vue

VUE_LANGUAGE_SERVER_PATH path to vue language server

AI

NVIM_AI_ADAPTER ai adapter for codecompanion.nvim, default to ollama NVIM_OLLAMA_MODEL ollama model to use for codecompanion.nvim, default to llama3.2

Must have

  1. ripgrep depend by many plugin.
  2. All the LSP package that configured in lua/lsp/init.lua, if you're going to use.

Recommend

  1. tmux for terminal multiplexing, I'm almost using it only in WSL.
  2. lazygit smooth git operation.

Main Plugins

ai

code-runner

comment

completion

debugging

editing-support

formatting

lsp

markdown-and-latex

note-taking

nvim-dev

search

snippet

syntax

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