From f92814516366c83a32d6e87185ca5bff53560711 Mon Sep 17 00:00:00 2001
From: Kimitake <kimitake@gmail.com>
Date: Fri, 27 Nov 2009 14:48:37 +0100
Subject: [PATCH] ^[ should work as well as ESC key in insert mode.

Merge-request: 2157
Reviewed-by: hjk <qtc-committer@nokia.com>
---
 src/plugins/fakevim/fakevimhandler.cpp | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/plugins/fakevim/fakevimhandler.cpp b/src/plugins/fakevim/fakevimhandler.cpp
index 012e95d9e90..870a7e0fbcf 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;
-- 
GitLab