🏆 World-Class Vim Configuration - 23 Plugins, IDE-Level Features
A meticulously crafted, professional-grade Vim configuration that rivals modern IDEs like VSCode and IntelliJ. This setup provides complete development environment with LSP support, debugging, syntax checking, multi-cursor editing, and much more.
🔧 Development Tools (100% Coverage):
- coc.nvim - Full LSP support, intelligent completion, diagnostics, refactoring
- ALE - Real-time syntax checking and auto-fixing
- vimspector - Integrated debugger with breakpoints and variable inspection
- vim-visual-multi - Advanced multi-cursor editing
- nerdcommenter - Smart commenting for multiple languages
- auto-pairs - Automatic bracket/quote completion
- honza/vim-snippets - Code snippets and templates
📁 File Management:
- LeaderF - Ultra-fast fuzzy file finder and function search
- NERDTree + vim-nerdtree-tabs - Enhanced file tree with tab support
🔄 Version Control:
- vim-fugitive - Complete Git integration
- vim-gitgutter - Git diff visualization in gutter
🎨 User Interface:
- vim-airline + vim-airline-themes - Professional status bar
- gruvbox - Comfortable dark theme optimized for coding
🛠️ Productivity Tools:
- asyncrun.vim - Asynchronous task execution
- floaterm - Floating terminal window
- vim-gutentags - Automatic tag generation for code navigation
- vim-preview - Enhanced quickfix window preview
- tabular - Advanced text alignment
- vim-markdown - Rich Markdown editing
- vim-surround - Surround text manipulation
- vim-easymotion - Lightning-fast cursor movement
- Zero Conflicts: Carefully designed shortcuts (multi-cursor uses #, coc uses Ctrl+n)
- Modular Architecture: 10+ separate config files for maintainability
- Performance Optimized: Lazy loading, efficient settings, fast startup
- Universal Language Support: Python, JavaScript, TypeScript, C/C++, Java, PHP, and more
- Integrated Ecosystem: Terminal, debugging, testing, all within Vim
- Extensible Design: Easy to add new plugins and customize
- Vim 8.0+ or Neovim
- Git
- ctags (for gutentags)
- Node.js (for Coc.nvim extensions)
Ctags is required for the gutentags plugin to generate tags for code navigation. Here are instructions for installing ctags on different operating systems:
brew install universal-ctags
Or using MacPorts:
sudo port install ctags
sudo apt update
sudo apt install universal-ctags
# For CentOS/RHEL
sudo yum install ctags
# Or for Fedora
sudo dnf install ctags
Using Chocolatey:
choco install universal-ctags
Or download the latest release from universal-ctags releases and add the executable to your PATH.
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
md ~\vimfiles\autoload
$uri = 'https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
(New-Object Net.WebClient).DownloadFile(
$uri,
$ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath(
"~\vimfiles\autoload\plug.vim"
)
)
-
Clone this repository:
git clone https://github.com/peterfei/vim-elysium.git ~/.vim-elysium cd ~/.vim-elysium
-
Backup your existing Vim configuration:
mv ~/.vimrc ~/.vimrc.backup mv ~/.vim ~/.vim.backup
-
Install the configuration:
cp .vimrc ~/.vimrc cp -r vimrc ~/.vim/
-
Install plugins: Open Vim and run:
:PlugInstall
-
Install Coc extensions: In Vim, run:
:CocInstall coc-json coc-tsserver coc-html coc-css coc-snippets coc-pyright coc-java coc-phpls coc-vetur
.vimrc
: Main configuration file with basic settings and plugin loadingvimrc/
: Directory containing modular plugin configurations:coc.vim
: Coc.nvim settingsleaderf.vim
: LeaderF settingsnerdtree.vim
: NERDTree settingsgutentags.vim
: Gutentags settings- And more...
The leader key is set to ,
<leader>w
: Save file<leader>q
: Quit<C-p>
: LeaderF file search
<leader><space>
: Clear search highlight<leader>ff
: LeaderF function search<leader>fb
: LeaderF buffer search<leader>fl
: LeaderF line search<leader>r
: Locate current file in NERDTreegd
: Go to definition (Coc)gy
: Go to type definition (Coc)gi
: Go to implementation (Coc)gr
: Go to references (Coc)
<Leader>m
: Start multi-cursor on wordg<Leader>m
: Select all occurrences<C-j>
: Add cursor down<C-k>
: Add cursor up<Leader>[
: Remove cursor<Leader>]
: Skip cursorEsc
: Exit multi-cursor mode
Insert Mode Commands (apply to all cursors):
i
: Insert before each cursora
: Insert after each cursorI
: Insert at start of line for each cursorA
: Insert at end of line for each cursoro
: Open new line below each cursorO
: Open new line above each cursor
<C-h/j/k/l>
: Navigate between windows<leader>vs
: Vertical split<leader>sp
: Horizontal split
<F8>
: Toggle NERDTree<leader>e
: Toggle NERDTree tabs<leader>n
: Toggle NERDTree tabs
<leader>rn
: Rename symbol<leader>qf
: Quick fix current line<leader>a
: Code action<space>a
: Show all diagnostics<space>e
: Manage extensions<space>c
: Show commands<space>o
: Show outline<space>s
: Search workspace symbolsK
: Show documentation
,c<space>
: Toggle comment (NERDCommenter)
<F12>
: Toggle floating terminal<F13>
: New terminal<F14>
: Previous terminal<F15>
: Next terminal
<leader>di
: Inspect variable under cursor
:Git <command>
: Run Git commands<leader>gs
: Toggle GitGutter
:NERDTreeToggle
: Toggle file tree:LeaderfFunction
: Search functions:CocList extensions
: Manage Coc extensions:CocInstall <extension>
: Install Coc extension
Feel free to modify the configurations to suit your needs. The modular structure makes it easy to add or remove plugins.
- If plugins don't load, ensure vim-plug is installed
- For Coc issues, check Node.js version and reinstall extensions
- Make sure ctags is installed for gutentags
MIT License - feel free to use and modify!