public void TestInput()
        {
            NavigateToDictionary(_app);

            var parser = new Parser();
            var keys = parser.Parse("iThe is the most common word.<esc>jjiAnd is 3rd.<esc>/that<cr>iThat is 7.<esc><tab>iSpaceMetaphor<cret");
        }
        private void NavigateToDictionary(IApplication app)
        {
            var parser = new Parser();
            var keys = parser.Parse("/dict<cr>l<cr>");
            var cmds = keys.Select(key => app.KeyGen.ProcessKey(key)).Flatten().ToList();
            //todo: It seems there's a problem.  KeyGen must handle state of shift, normal mode, etc.
            //otherwise, I can't just get a list of commands from ProcessKey
            //But then the app needs to be able to set the mode
            //And I need a command that targets KeyGen

            cmds.Do(a => a.Invoke(app));

            //            app.KeyGen.ProcessKeyString("/notes<cr>l<cr>").Do(a => a.Invoke(app));

            var execedCmds = _cmdFactory.RequestedExpressions.Select(expression => expression.ToString()).ToList();
            Assert.AreEqual("a => a.SetMode(Search)", execedCmds[0]);
            Assert.IsInstanceOfType(typeof(ITextEditor), app.CurrentView);
        }