diff --git a/src/plugins/fakevim/fakevimhandler.cpp b/src/plugins/fakevim/fakevimhandler.cpp index 012e95d9e90e934bf938013937eab8aa7b8e1c39..870a7e0fbcf47bdbc3dafd61db4a823c77a60c16 100755 --- a/src/plugins/fakevim/fakevimhandler.cpp +++ b/src/plugins/fakevim/fakevimhandler.cpp @@ -514,7 +514,7 @@ bool FakeVimHandler::Private::wantsOverride(QKeyEvent *ev) const int mods = ev->modifiers(); KEY_DEBUG("SHORTCUT OVERRIDE" << key << " PASSING: " << m_passing); - if (key == Key_Escape) { + if (key == Key_Escape || (mods == Qt::ControlModifier && key == Key_BracketLeft)) { // Not sure this feels good. People often hit Esc several times if (m_visualMode == NoVisualMode && m_mode == CommandMode) return false; @@ -1631,7 +1631,8 @@ EventResult FakeVimHandler::Private::handleCommandMode(int key, int unmodified, EventResult FakeVimHandler::Private::handleInsertMode(int key, int, const QString &text) { - if (key == Key_Escape || key == 27 || key == control('c')) { + if (key == Key_Escape || key == 27 || key == control('c') || + key == 379 /* ^[ */) { // start with '1', as one instance was already physically inserted // while typing QString data = m_lastInsertion;