WebVim is a Vim based distribution targeting JavaScript and Web development.
It targets :
- JavaScript development (ES5, ES6, node.js)
- HTML5
- CSS3 and SCSS
And contains the features you expect from a modern code editor :
- syntax highlighting
- syntax and error checking
- autocompletion
- multi cursor
- git support
- code format
- support coding conventions (editorconfig)
- hardcore mode (for real Vim users)
- Emmet support
- jsdoc generation (coming soon)
- debugging (coming soon)
- grunt/gulp support (coming soon)
- all the awesomeness from Vim
The WebVim idea is to provide you a vim distribution: something that comes prepackaged, preconfigured, built on a kernel to serve a goal. WebVim is to vim what Debian is to Linux, a vim distribution for the web.
Only tested on Linux
On Ubuntu (from 15.04)
- A modern version of Vim
apt-get install vim vim-runtime vim-gui-commonor compile a recent version with xterm_clipboard and ruby or python support.
- Some tools to compile YouCompleteMe
apt-get install build-essential cmake python-dev exuberant-ctags- Node.js and npm
curl -sL https://deb.nodesource.com/setup_0.12 | bash -
apt-get install -y nodejs- Some npm packages
npm install -g eslint csslint jshint jsonlint handlebarsPlease report me what you did to make it work on your OS
sudo dnf install cmake python-devel npm vim
npm install -g npm eslint csslint jshint jsonlint handlebarsgit clone https://github.com/krampstudio/webvim.git ~/.vim
ln -s ~/.vim/.vimrc ~/.vimrc
ln -s ~/.vim/.tern-project ~/.tern-project
vimThe plugins install can take some times, especially since there's a compilation made by YouCompleteMe. If you've the feeling the install has frozen, you can finish the install after by entering the command :PlugInstall.
The hardcore mode remap some keys to force you use Vim in a productive way:
- no arrow keys for moving instead use the common Vim movement commands.
- in insert mode, use
jkto switch back to normal mode instead of<esc>
Restricting commands is the best way to make your fingers learn. After one or two days, you should be more productive and have learned lots of Vim commands.
You can disable the hardcore mode by setting the value of g:hardcoreMode to 0 in .vimrc. You can also change the mappings.
WebVim is only a Vim distribution with plugins and configuration, so all common Vim commands and basic mapping are available. You must know how to use Vim before using this IDE. If you're not comfortable with Vim enough I suggest you to take the interactive Vim tutorial (run vimtutor in a terminal), and keep a common usage cheat sheet close to you until your fingers get all the mappings in memory.
Modes :
nnormaliinsertvvisual
Commands :
:commanda Vim command:set somethingcan also be replaced by:setlocal somethingto apply it to the current buffer only<c-m>aoraa keyboard command<c-/>meansCTRL and/` (this is the Vim notation)<s-left>meansShiftandleft arrow<c-a>bmeansCTRLanda, thenb<leader>is mapped to,<localleader>is mapped to\
WebVim is only a distribution that contains plugins. The plugin authors have made the hard work.
Plugin authors rocks!
- vim-plug Minimalist Vim Plugin Manager
- Mango A nice color scheme
- VimAirline Lean and mean statusbars
- NERDTree Manage your project files
- VimFugitive Git integration
- VimGitGutter Git diff in the gutter
- EditorconfigVim Shared coding conventions
- NERDCommenter Comments made easy
- VimTrailingWhitespace Highlight trailing spaces
- Syntastic Syntax check and validation
- VimEasyAlign Realign pieces of code
- VimMultipleCursors Write on multiple lines easily
- VimJsBeautify Reformat JavaScript, HTML and JSON files
- VimYankStack Iterate over yanked stack on paste
- VimSurround Quoting and parenthesizing
- YouCompleteMe Autocompletion engine
- VimNode Navigate through node.js code/modules
- VimLint Linter used by syntastic for VimL
- VimLParser VimL parser (required by VimLint)
- Emmet-vim Expanding abbreviations similar to emmet
- VimJson JSON highlighting and quote concealing
- YaJS JavaScript syntax (ES5 and ES6)
- JavaScriptLibrariesSyntax Syntax highlighting for well-known JS libraries
- VimCSS3 CSS3 syntax
- ScssSyntax SCSS syntax
- HTML5 HTML5 syntax
- 1.3.0 Fixed dependencies, tern via YCM, Emmet, new theme, nerdtree grep, use local linters
- 1.2.0 Fix #28, support new esint config files, update installe
- 1.1.0 Add user config, autocmd file, fix easyalign mapping, update Nerdtree config, better mouse support in insert mode
- 1.0.0 Becomes
webvimwith an install process, a better configuration system, better plugins neighborhood - 0.1.0 A basic
dotvimrepository with my own Vim configuration
Every contribution is more than welcomed. You can:
- report issues
- Fix, improve the configuration, add new features. The best is to fork and submit a pull request
- Test and adapt to other OS
- Fix my English mistakes
- Update the documentation
- Create a better logo
- Offer me a coffee
The content of this repository is licensed under the GPLv3

