Skip to content

🏛 Modernize Neovim config: Vimscript → Lua, replace deprecated plugins #1

@ladislas

Description

@ladislas

Summary

Modernize this Neovim config: migrate from Vimscript to Lua, replace deprecated/abandoned plugins, switch plugin manager, and update the repo structure.

Motivation

This config hasn't been touched in years. It uses vim-plug (vendored submodule), deprecated plugins (YouCompleteMe, Deoplete, Denite, LanguageClient-neovim, neoyank), and is entirely in Vimscript. Neovim v0.12 is installed locally — the config should take advantage of native LSP, treesitter, and the modern Lua plugin ecosystem.

Audit Results

Immediate removals (deprecated / abandoned / replaced by better alternatives)

Plugin Reason
YouCompleteMe Requested removal; deprecated; replaced by nvim-cmp + LSP
Deoplete Deprecated by author
LanguageClient-neovim Deprecated; nvim has built-in LSP client
Denite Deprecated by author
neoyank Only useful with Denite
CompleteParameter LSP handles parameter completion
vim-polyglot Replaced by treesitter
cpp-enhanced-highlight Treesitter handles C/C++
swift.vim Treesitter handles Swift
vim-ansible-yaml Treesitter + LSP handle YAML
vim-livedown Unmaintained
vim-multiple-cursors Unmaintained; native alternatives exist

Replacements

Old New Reason
vim-plug (vendored submodule) lazy.nvim Self-bootstrapping, Lua-native, faster
NERDTree + nerdtree-git-plugin neo-tree.nvim Lua, better UX, git integration built-in
vim-startify alpha-nvim Lua, lighter
vim-gitgutter gitsigns.nvim Lua, faster, more features
Denite (fuzzy finder) fzf-lua Fast, uses fzf binary
UltiSnips LuaSnip Lua-native, better nvim-cmp integration
vim-airline lualine.nvim Lua, lighter
rainbow rainbow-delimiters.nvim Maintained fork
gruvbox (Vimscript) gruvbox.nvim Lua port
nord-vim nordic.nvim or drop Lua port

Keep as-is

vim-surround, vim-commentary, vim-repeat, vim-endwise, vim-easy-align, vim-fugitive, undotree, editorconfig-vim, auto-pairs, vim-bufonly, vim-bufkill, vim-pandoc (+ syntax), vim-snippets (custom)

New additions

Plugin Purpose
lazy.nvim Plugin manager
nvim-cmp Autocompletion engine
LuaSnip Snippet engine
mason.nvim LSP/DAP/linter installer
nvim-lspconfig LSP configuration
nvim-treesitter Syntax highlighting + textobjects
fzf-lua Fuzzy finder
neo-tree.nvim File explorer
gitsigns.nvim Git gutter signs
lualine.nvim Status line
alpha-nvim Start screen
rainbow-delimiters.nvim Rainbow parentheses
gruvbox.nvim Colorscheme
which-key.nvim Keybinding discovery (nice-to-have)

Acceptance Criteria

  • Branch renamed from master to main
  • Dead code removed (big.vim, autoload/ submodule, plug.vim.old)
  • Config migrated to Lua (init.lua + modular lua/ structure)
  • Plugin manager switched to lazy.nvim (self-bootstrapping, no submodule)
  • All deprecated plugins removed and replaced with Lua equivalents
  • YouCompleteMe removed per request
  • Key bindings and behavior preserved from original config
  • README updated
  • Spell files and after/syntax/make.vim preserved

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions