Implement policies

Google Vim script Style Guide
========================
[Source](http://google-styleguide.googlecode.com/svn/trunk/vimscriptfull.xml)

- [x] Prohibit commands with unintended side effects
- [x] Prohibit commands that rely on user settings
- [x] Use `abort` attribute for functions in `autoload/`
- [x] Use `:function!` in `autoload/`
- [ ] Use `:function` in `plugin/`
- [ ] Place `:autocmd` within `:augroup`
- [ ] Clear the `:autocmd` at first of `:augroup`
- [ ] Use `:setlocal` and `&l` instead of `:set` and `&`
- [ ] Prohibit `:match`, `:2match`, `:3match`
- [ ] Use `:echohl` instead of `:echoerr`
- [ ] Use `:echomsg` instead of `:echo`
- [ ] Prohibit inline comments
- [ ] Use 2 spaces for indents (but I think this policy is too annoy)
- [ ] Use spacing around operators
- [ ] Prohibit trailing whitespace
- [ ] Restrict lines to 80 columns wide
- [ ] Indent continued by four spaces
- [ ] Prohibit arguments alignment for commands (but I think this policy is too annoy)
- [ ] Use camel case for function names
- [ ] Use camel case for command names
- [ ] Use snake case for variable names
- [ ] Prohibit scope prefix omition
- [ ] Other maktaba policies...

No reference
==========
- [ ] Use either tabs or spaces for indents
- [ ] Put `:save &cpo`
- [ ] Prohibit unused var
- [x] Prohibit undeclared var

No support
========

- Prohibit user-sensitive regular expressions
- Prohibit handling error by matching error texts