Merges needed were:
* qutebrowser/keyinput/basekeyparser.py for the new count precaution (commit 51aa7ab)
* qutebrowser/keyinput/modeparsers.py for a simple syntax restructure (semantically
identical)
* tests/unit/keyinput/test_basekeyparser.py for new count precaution (commit 51aa7ab)
unit test
* qutebrowser/keyinput/modeman.py for import changes (commit eb8121f)
We're deprecating vim modelines in favor of `.editorconfig`.
Removing vim modelines could be done using two one-liners. Most of the vim modelines
were followed by an empty line, so this one-liner took care of these ones:
```sh
rg '^# vim: .+\n\n' -l | xargs sed -i '/^# vim: /,+1d'
```
Then some of the vim modelines were followed by a pylint configuration line, so running
this one-liner afterwards took care of that:
```sh
rg '^# vim:' -l | xargs sed -i '/^# vim: /d'
```
TODO: Pick to master?
In 42e2438efb, we changed "_handle_key" to return
a QKeySequence.SequenceMatch instead of a bool.
Later in b85fe8f678, that change propagated to
"handle" too.
However, the FakeKeyParser introduced in
c1d3a94936 still returned a bool.
This wasn't a problem because we still just checked "if match:".
However, with 756db287ac4c65350aaf53d6f93b6a0a2b356a77, we now check
"if match != QKeySequence.SequenceMatch.NoMatch:", thus the comparsison
with the FakeKeyParser is now the wrong way around.
Ensure MarkKeyParser implements on_keyconfig_changed, so it doesn't fail when
rebinding a key. It doesn't have keybindings, so the implementation is just
`pass`.
This also fixes a few flake8 style errors.