Master Vim IDE configuration
| config | ||
| ftplugin | ||
| local | ||
| plugin | ||
| userSnippets | ||
| .gitignore | ||
| .vimrc | ||
| coc-settings.json | ||
| readme.md | ||
Components for a robust, vim-based, IDE for Symfony applications
Warning
Phpactor (A PHP Language Server) is needed on your
$PATH.
Warning
Nerd Fonts are required. Using ChromeOS? Installation is messy but doable.
Warning
Curl, Node and NPM are required.
Setup
- Clone this repo on your home
git clone https://code.confidare.cl/jcataldo/vim .vim
- Create symbolic links for
.vimrcand.vim/
ln -s ~/.vim/.vimrc ~/.vimrc
-
Run
vim --nopluginonce to allow vim-plug to install itself and all the included plugins. -
Close and reopen vim.
-
Install all recommended Coc plugins.
:CocInstall coc-phpactor
:CocInstall coc-json
[...]
Upgrade
-
git pullto download new commits. -
:PlugUpdateto upgrade existing plugins and newly listed ones. -
:PlugClean!to remove unlisted plugins.
Plugin List
🧰 General
-
Plugin Manager
-
File Browsing
- preservim/nerdtree: Traditional file browser with basic file operations.
- ctrlpvim/ctrlp.vim: Fuzzy finder for files, buffers, MRU, tags, etc.
-
Version Control
- tpope/vim-fugitive: Git integration.
- airblade/vim-gitgutter: Shows a git diff in the sign column.
-
Productivity
- easymotion/vim-easymotion: Easy navigation.
- christoomey/vim-tmux-navigator: Switch seamlessly between vim and tmux splits using a consistent set of hotkeys.
- vim-airline/vim-airline: Extended status bar.
- wincent/terminus: Better terminal integration.
- junegunn/vim-peekaboo: Using
"and@in normal mode shows the contents of the registers.
⌨️ Programming
-
- stephpy/vim-php-cs-fixer: Plugin for PHP Coding Standards Fixer.
- ntpeters/vim-better-whitespace: Highlights trailing whitespaces.
-
Language Support
- rayburgemeestre/phpfolding.vim: Better function folding in PHP.
- nelsyeung/twig.vim: Twig syntax highlighting, indentation and snippets.
- pangloss/vim-javascript: JavaScript syntax highlighting and improved indentation.
- mattn/emmet-vim: Expansion of abbreviations similar to emmet.
- adelarsq/vim-matchit: Extended matching for the % operator.
-
Code Analysis & Completion
- neoclide/coc.nvim: Completion with LSP. Some notes on this plugin:
- Has its own extensions
- Extensions are installed by a Vim command
:CocInstall <extension-name> - A list of installed extensions is kept at
~/.config/coc/extensions/package.json - Options for the plugin itself are configured by the command
:CocConfig - Relevant extensions for Symfony application development:
- coc-phpactor. Phpactor Works best with Phpactor as a PHP Language Server (Vim integration).
- coc-phpstan: Tool for finding bugs without writing tests.
- coc-json
- coc-html
- coc-tsserver
- coc-css
coc-phplssuperseded by coc-phpactor- coc-yaml
- coc-snippets
- friendly-snippets
- coc-syntax
andymass/vim-matchup(Disabled, messes with completion): Highlight, navigate, and operate on sets of matching texts.- kkoomen/vim-doge: Documentation generator.
- neoclide/coc.nvim: Completion with LSP. Some notes on this plugin:
-
Snippets
- honza/vim-snippets: Snippet collection.
-
Miscellaneous
- tpope/vim-surround: Manage surrounding text elements, like quotes, parentheses, brackets and XML and HTML tags.
- tpope/vim-repeat: Enables plugins to tap into the repeat (
.) command. - Raimondi/delimitMate: Automatic closing of quotes, parentheses, etc.
🖼️ Aesthetic
- morhetz/gruvbox: A bright theme with pastel 'retro groove' colors and light/dark mode switching in the way of solarized. Can do full black backgrounds for OLED displays.
- vim-airline/vim-airline-themes: Themes for vim-airline.
- ryanoasis/vim-devicons: Adds filetype glyphs to various vim plugins.
- tiagofumo/vim-nerdtree-syntax-highlight: Adds colors to
vim-deviconsglyphs.