From 41785890d632b2c12fcbdafa4185ce7a26249fd5 Mon Sep 17 00:00:00 2001 From: hluk Date: Tue, 20 Aug 2013 14:37:15 +0200 Subject: [PATCH] FakeVim: Escape '>' character in mappings On some keyboards, '>' character can be produced using Shift key. But recorded macro shouldn't contain '>', which cannot be properly parsed, instead it will be '>' (as '' for '<'). Change-Id: Iac3759029b6ff8c9e690c4728e35048c0b6046f9 Reviewed-by: hjk --- src/plugins/fakevim/fakevim_test.cpp | 4 ++++ src/plugins/fakevim/fakevimhandler.cpp | 3 +++ 2 files changed, 7 insertions(+) diff --git a/src/plugins/fakevim/fakevim_test.cpp b/src/plugins/fakevim/fakevim_test.cpp index 2e3125e9482..4a78decf998 100644 --- a/src/plugins/fakevim/fakevim_test.cpp +++ b/src/plugins/fakevim/fakevim_test.cpp @@ -3174,6 +3174,10 @@ void FakeVimPlugin::test_macros() KEYS("@x", "def" N X "abc"); KEYS("gg@x", "abc" N X "def"); data.doCommand("unmap "); + + data.setText(" abc xyz>." N " def xyz>." N " ghi xyz>." N " jkl xyz>."); + KEYS("qq" "^wdf>j" "q", " abc ." N " def " X "xyz>." N " ghi xyz>." N " jkl xyz>."); + KEYS("2@q", " abc ." N " def ." N " ghi ." N " jkl " X "xyz>."); } void FakeVimPlugin::test_vim_qtcreator() diff --git a/src/plugins/fakevim/fakevimhandler.cpp b/src/plugins/fakevim/fakevimhandler.cpp index 4e9c2d05d1a..5857665d2ee 100644 --- a/src/plugins/fakevim/fakevimhandler.cpp +++ b/src/plugins/fakevim/fakevimhandler.cpp @@ -725,6 +725,7 @@ static const QMap &vimKeyNames() k.insert(_("RIGHT"), Key_Right); k.insert(_("LT"), Key_Less); + k.insert(_("GT"), Key_Greater); k.insert(_("F1"), Key_F1); k.insert(_("F2"), Key_F2); @@ -1007,6 +1008,8 @@ public: if (!namedKey) { if (m_xkey == '<') key = _(""); + else if (m_xkey == '>') + key = _(""); else key = QChar(m_xkey); }