From 96b5193affc9bf1610726cab88f97029de1dbb5d Mon Sep 17 00:00:00 2001 From: Lanny <lan.rogers.book@gmail.com> Date: Wed, 18 Jul 2012 10:16:02 +0400 Subject: [PATCH] Added basic framework for ex mode commands and go-to-line ex mode command. --- keymap/vim.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/keymap/vim.js b/keymap/vim.js index 2aa6e0f7..bbff4d17 100644 --- a/keymap/vim.js +++ b/keymap/vim.js @@ -224,6 +224,11 @@ cm.setOption("keyMap", "vim-insert"); } + function dialog(cm, text, shortText, f) { + if (cm.openDialog) cm.openDialog(text, f); + else f(prompt(shortText, "")); + } + // main keymap var map = CodeMirror.keyMap.vim = { // Pipe (|); TODO: should be *screen* chars, so need a util function to turn tabs into spaces? @@ -294,6 +299,14 @@ popCount(); CodeMirror.commands.goLineStart(cm); }, + "Shift-;": function(cm) { + var exModeDialog = '<input type="text" />'; + dialog(cm, exModeDialog, 'ex mode:', function(command) { + if (command.match(/\d+/)) { + cm.setCursor(command-1, cm.getCursor().ch); + } + }); + }, nofallthrough: true, style: "fat-cursor" }; -- GitLab