Vim emulation in QTextEdit, QPlainTextEdit and similar Qt widgets