* Simplify comment delimiter insertion.
* Remove the code that unnecessarily touches the leading spaces/tabs.
* Fix a bug in which `<Plug>NERDCommenterInsert` inserts the comment
delimiters in a wrong position when `col('.')==1`.
Example: `1|234` (cursor at `|`) → `/* */1234`.
* NOTE: Should avoid `feedkey(.., 'ni')` for inserting comment
delimiters to ensure that `NERDCommenter_after` is called after
inserting the delimiters. `feedkey` only adds the input to the queue,
which will be processed after exiting the script context. On the other
hand, `:normal` and `feedkey(.., 'x')` are eagerly processed.
M4 knows about two types of ignoring text. But the concept which the
GNU M4 manual refers to as "comments" [0] (i.e., lines prefixed with
hash signs) is actually telling the interpreter "ignore this text, but
pass it to the output". Most of the time, people don't want the macro
comments in their output, so instead the `dnl` ("discard to next line")
macro [1] is usually used for comments in the document-my-thoughts
sense.
[0]: https://www.gnu.org/software/m4/manual/m4.html#Comments
[1]: https://www.gnu.org/software/m4/manual/m4.html#Dnl
* Allow commenting empty lines given configuration
If g:NERDCommentEmptyLines=1 then it will comment empty line, which is
useful when commenting blocks.
When uncommenting it will delete any trailing whitespace.
* Add documentation for NERDCommentEmptyLines
getbufvar accepts only two arguments in Vim 7.3 (at least the one
included in OS X 10.11.5), and returns an empty string when the buffer
or variable does not exist: getbufvar({buffer}, {variable}).
Vim 7.4 has extended the built-in function so that it additionally
accepts an optional argument which determines the default return value:
getbufvar({buffer}, {variable}, [, {default}]). When the third argument
is not given and the buffer or variable does not exists, getbufvar
returns an empty string as before.
getbufvar({buffer}, {variable}) works in both Vim 7.3 and 7.4, and is
practically equivalent to getbufvar({buffer}, {variable}, 0) because an
empty string is coerced to 0 if necessary.
Removes the placeholder workaround (forceNested) for languages which
allow truly nested comments and automatically applies them.
Enabled for haskell, racket, scheme, scala, lisp, ocaml, sml.
Fixes issue #131