From c9fdb64ba1bb57c8616298d47e20c82b8d5b0c99 Mon Sep 17 00:00:00 2001 From: Martin Stubenschrott Date: Tue, 5 Feb 2008 01:43:33 +0000 Subject: [PATCH] fixed :map gt --- content/events.js | 5 ++--- content/mappings.js | 4 ++-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/content/events.js b/content/events.js index 4a8e8eb8..a06cd11c 100644 --- a/content/events.js +++ b/content/events.js @@ -1022,8 +1022,7 @@ vimperator.Events = function () //{{{ else map = vimperator.mappings.get(vimperator.mode, candidateCommand); - var isUniqueMapping = vimperator.mappings.getCandidates(vimperator.mode, candidateCommand).filter( - function(candidate) { return !candidate.noremap; }).length < 2; + // counts must be at the start of a complete mapping (10j -> go 10 lines down) if (/^[1-9][0-9]*$/.test(vimperator.input.buffer + key)) @@ -1052,7 +1051,7 @@ vimperator.Events = function () //{{{ } } // only follow a map if there isn't a longer possible mapping (allows you to do :map yy, when y is a mapping) - else if (map && isUniqueMapping && !skipMap) + else if (map && !skipMap && vimperator.mappings.getCandidates(vimperator.mode, candidateCommand).length == 0) { vimperator.input.count = parseInt(countStr, 10); if (isNaN(vimperator.input.count)) diff --git a/content/mappings.js b/content/mappings.js index 87c147c0..3a434436 100644 --- a/content/mappings.js +++ b/content/mappings.js @@ -240,7 +240,7 @@ vimperator.Mappings = function () //{{{ return getMap(mode, cmd, main); }, - // returns an array of mappings with names which start with "cmd" + // returns an array of mappings with names which START with "cmd" (but are NOT "cmd") getCandidates: function (mode, cmd) { var mappings = user[mode].concat(main[mode]); @@ -251,7 +251,7 @@ vimperator.Mappings = function () //{{{ var map = mappings[i]; for (var j = 0; j < map.names.length; j++) { - if (map.names[j].indexOf(cmd) == 0) + if (map.names[j].indexOf(cmd) == 0 && map.names[j].length > cmd.length) { // for < only return a candidate if it doesn't look like a mapping if (cmd != "<" || !/^<.+>/.test(map.names[j]))