Nvim
NOTE: This ~README~ is outdated, the project structure has been fully changed. The profile requires Neovim nightly now.
My personal Neovim configuration, which keeps the structure simple and straightforward by logically distributing the configuration into various directories. Aims to be highly customizable and have no hacks.
Table of Contents
Introduction
This configuration doesnβt break any of Neovimβs default keymaps,
except for s
, the source-level equivalent of cl
, s
is used as
the easymotion-prefix(In fact the functionality of easymotion is
provided by a plugin called hop.nvim).
This configuration contains more than 100 plugins, but the configuration of each plugin is placed in a separate file, and these files are classified into different modules according to the function of the plugin and placed in different folders.
In addition, all configuration options and keymaps for each plugin are listed in their respective files, making it easy to adjust individual options without having to look up the manual.
The configuration structure is as shown in the figure below.
β ββββββββββββββββββββ
nvim/ nvim/lua β Core Module β
β β ββββββββββββββββ β
β βlspconfig.lua β β
β βββββββββββββ β ββββββββββββββββ β
βkeymaps.luaβ βββββββΊβ β
β βββββββββββββ β β ββββββββββββββββ β
Keymap for lazy β β βtreesitter.luaβ β
β loading plugins β β ββββββββββββββββ β
β² β β β
β β β β ...other files β
β β ββββββββββββββββββββ
ββββββββββββ β βββββββ΄βββββ β
β init.lua βββββββββΊβ init.lua β β ββββββββββββββββββββ
ββββββββββββ β ββββββββββββ β β Interface Module β
Neovim common Neovim extra β β ββββββββββββββββ β
configuration β configuration β β βbufferline.luaβ β
β β β ββββββββββββββββ β
β β β β β
βΌ β β ββββββββββββββββ β
β βββββββββββββ β β β lualine.lua β β
βplugins.luaβββββββΌββββββΊβ ββββββββββββββββ β
β βββββββββββββ β β β
Plugin management, β β ...other files β
β calling each module β ββββββββββββββββββββ
β
β β ββββββββββββββββββββ
βββββββΊβ ...other modules β
β ββββββββββββββββββββ
Directory Structure
βββ lua
β βββ core # Core plugins, often depended on by other plugins
β β βββ lspconfig.lua
β β βββ treesitter.lua
β β βββ ...
β βββ debug # Debug and run
β β βββ dap.lua
β β βββ dap-ui.lua
β β βββ ...
β βββ edit # Text edting
β β βββ cmp.lua
β β βββ copilot.lua
β β βββ ...
β βββ efficiency # Efficiency Improvement
β β βββ session-manager.lua
β β βββ telescope.lua
β β βββ ...
β βββ interface # Interface Extension
β β βββ bufferline.lua
β β βββ lualine.lua
β β βββ ...
β βββ language # Language Specific
β β βββ jdtls.lua
β β βββ tex.lua
β βββ tool # Tool Integration
β β βββ gitsigns.lua
β β βββ tree.lua
β β βββ ...
β βββ plugins.lua # Plugin management
β βββ keymaps.lua # Keymap for lazy loading plugins
β βββ init.lua # Neovim extra configuration
βββ .gitignore
βββ stylua.toml
βββ LICENSE
βββ README.org
βββ init.lua # Neovim common configuration