Underline old cursor position for better readability. Reusing
`TermCursor` made me confuse the current window many times.
My favorite solution would be an empty box around the position similar
to how terminals do it when focus is lost. But I fear that this is not
possible with a simple highlighting group.
When the cursor is on the last character of the hash (e.g. after
pasting), the mapping would break and insert the commit subject behind
the next word.
Fix this by using `viw<Esc>` which places the cursor on the end of the
current word independent of the placement of the cursor.
`i_CTRL-Q` is not really useful anyways:
> Same as CTRL-V.
> Note: Some terminal connections may eat CTRL-Q, it doesn't work then.
> It does work in the GUI.
Map `<leader>gca` to fugitives `G commit --amend`, as I use that quite
often.
Also change the normal commit mapping to use double `c`s for unambiguity
between the mappings and as I already got the habit of pressing `c`
twice to skip waiting `timeoutlen` (As the mapping was already
ambiguous with `<leader>gcd` for `:Gcd`).
When converting double to single quotes with `<leader>"`, only pairs of
quotes should be converted. This lowers the false positive rate by
trying to make sure that the double quotes are really used for string
quotation and not for something else (e.g. exactly these mappings).
`&spelllang` can be a list of multiple languages. Support that by
matching the language at the start, the end and/or between commas,
instead of comparing the value, and then appending to `l:ignore_chars`
for every matched language.
When deleting the match, w:old_cword has to be unset as well. Otherwise
it can happen that it is not properly readded (e.g. when moving from a
word to an empty line and then back to the same word).
When highlighting the current word, check if it is the same as the
currently highlighted one, so that matchdelete and matchadd are not
called unnecessarily.
Use `matchadd` instead of `match` as it has no limit on the number of
highlights.
Also call the function every time the cursor moved instead of only when
holding. This makes it snappier while also keeping the highlight when
moving inside the cword.
- CheckBackspace needs to be used instead of <SID>CheckBackspace
- Comment out clashing/obtrusive leader/space mappings
- Change classobj mappings to use `o` as they were clashing with the
comment textobj.
- Simulate the default statusline with the help of 'statusline'.
Otherwise it would be empty/just containing coc elements.
Additionally to start the search with ripgrep, start a vim search as
well. That way navigation between search results in the opened file is
easier.
The register is modified directly and hlsearch is turned on manually
instead of using the builtin `*`, so that the cursor does not move to
the next result in the current file.
Set `nomodified` after reading from standard input. This way the buffer
can be closed without error message.
This will **not** disable modified warnings completely. If the input is
modified after read, vim will reset `modified` (As it should).