mirror of
https://github.com/gryf/pentadactyl-pm.git
synced 2025-12-23 08:08:00 +01:00
got rid of all remaining mappings in mappings.js, most of the moved to editor.js
This commit is contained in:
@@ -335,7 +335,7 @@ vimperator.Buffer = function () //{{{
|
|||||||
function () { vimperator.tabs.reload(getBrowser().mCurrentTab, true); });
|
function () { vimperator.tabs.reload(getBrowser().mCurrentTab, true); });
|
||||||
|
|
||||||
// yanking
|
// yanking
|
||||||
vimperator.options.add(modes, ["Y"],
|
vimperator.mappings.add(modes, ["Y"],
|
||||||
"Copy selected text",
|
"Copy selected text",
|
||||||
function ()
|
function ()
|
||||||
{
|
{
|
||||||
@@ -407,6 +407,8 @@ vimperator.Buffer = function () //{{{
|
|||||||
"Print file information",
|
"Print file information",
|
||||||
function (count) { vimperator.buffer.showPageInfo(true); });
|
function (count) { vimperator.buffer.showPageInfo(true); });
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////}}}
|
/////////////////////////////////////////////////////////////////////////////}}}
|
||||||
////////////////////// COMMANDS ////////////////////////////////////////////////
|
////////////////////// COMMANDS ////////////////////////////////////////////////
|
||||||
/////////////////////////////////////////////////////////////////////////////{{{
|
/////////////////////////////////////////////////////////////////////////////{{{
|
||||||
|
|||||||
@@ -54,17 +54,351 @@ vimperator.Editor = function () //{{{
|
|||||||
return ed.controllers.getControllerForCommand("cmd_beginLine");
|
return ed.controllers.getControllerForCommand("cmd_beginLine");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function selectPreviousLine()
|
||||||
|
{
|
||||||
|
vimperator.editor.executeCommand("cmd_selectLinePrevious");
|
||||||
|
if ((vimperator.modes.extended & vimperator.modes.LINE) && !vimperator.editor.selectedText())
|
||||||
|
vimperator.editor.executeCommand("cmd_selectLinePrevious");
|
||||||
|
}
|
||||||
|
function selectNextLine()
|
||||||
|
{
|
||||||
|
vimperator.editor.executeCommand("cmd_selectLineNext");
|
||||||
|
if ((vimperator.modes.extended & vimperator.modes.LINE) && !vimperator.editor.selectedText())
|
||||||
|
vimperator.editor.executeCommand("cmd_selectLineNext");
|
||||||
|
}
|
||||||
|
|
||||||
|
// add mappings for commands like h,j,k,l,etc. in CARET, VISUAL and TEXTAREA mode
|
||||||
|
function addMovementMap(keys, hasCount, caretModeMethod, caretModeArg, textareaCommand, visualTextareaCommand)
|
||||||
|
{
|
||||||
|
var extraInfo = {};
|
||||||
|
if (hasCount)
|
||||||
|
extraInfo.flags = vimperator.Mappings.flags.COUNT;
|
||||||
|
|
||||||
|
vimperator.mappings.add([vimperator.modes.CARET], keys, "",
|
||||||
|
function (count)
|
||||||
|
{
|
||||||
|
if (typeof count != "number" || count < 1)
|
||||||
|
count = 1;
|
||||||
|
|
||||||
|
var controller = getBrowser().docShell
|
||||||
|
.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
|
||||||
|
.getInterface(Components.interfaces.nsISelectionDisplay)
|
||||||
|
.QueryInterface(Components.interfaces.nsISelectionController);
|
||||||
|
|
||||||
|
while (count--)
|
||||||
|
controller[caretModeMethod](caretModeArg, false);
|
||||||
|
},
|
||||||
|
extraInfo);
|
||||||
|
|
||||||
|
vimperator.mappings.add([vimperator.modes.VISUAL], keys, "",
|
||||||
|
function (count)
|
||||||
|
{
|
||||||
|
if (typeof count != "number" || count < 1 || !hasCount)
|
||||||
|
count = 1;
|
||||||
|
|
||||||
|
var controller = getBrowser().docShell
|
||||||
|
.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
|
||||||
|
.getInterface(Components.interfaces.nsISelectionDisplay)
|
||||||
|
.QueryInterface(Components.interfaces.nsISelectionController);
|
||||||
|
|
||||||
|
while (count--)
|
||||||
|
{
|
||||||
|
if (vimperator.modes.extended & vimperator.modes.TEXTAREA)
|
||||||
|
{
|
||||||
|
if (typeof visualTextareaCommand == "function")
|
||||||
|
visualTextareaCommand();
|
||||||
|
else
|
||||||
|
vimperator.editor.executeCommand(visualTextareaCommand);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
controller[caretModeMethod](caretModeArg, true);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
extraInfo);
|
||||||
|
|
||||||
|
vimperator.mappings.add([vimperator.modes.TEXTAREA], keys, "",
|
||||||
|
function (count)
|
||||||
|
{
|
||||||
|
if (typeof count != "number" || count < 1)
|
||||||
|
count = 1;
|
||||||
|
|
||||||
|
vimperator.editor.executeCommand(textareaCommand, count);
|
||||||
|
},
|
||||||
|
extraInfo);
|
||||||
|
}
|
||||||
|
|
||||||
|
// add mappings for commands like i,a,s,c,etc. in TEXTAREA mode
|
||||||
|
function addBeginInsertModeMap(keys, commands)
|
||||||
|
{
|
||||||
|
vimperator.mappings.add([vimperator.modes.TEXTAREA], keys, "",
|
||||||
|
function (count)
|
||||||
|
{
|
||||||
|
for (let c = 0; c < commands.length; c++)
|
||||||
|
vimperator.editor.executeCommand(commands[c], 1);
|
||||||
|
|
||||||
|
vimperator.modes.set(vimperator.modes.INSERT, vimperator.modes.TEXTAREA);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function addMotionMap(key)
|
||||||
|
{
|
||||||
|
vimperator.mappings.add([vimperator.modes.TEXTAREA], [key],
|
||||||
|
"Motion command",
|
||||||
|
function (motion, count) { vimperator.editor.executeCommandWithMotion(key, motion, count); },
|
||||||
|
{ flags: vimperator.Mappings.flags.MOTION | vimperator.Mappings.flags.COUNT });
|
||||||
|
}
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////}}}
|
/////////////////////////////////////////////////////////////////////////////}}}
|
||||||
////////////////////// OPTIONS /////////////////////////////////////////////////
|
////////////////////// OPTIONS /////////////////////////////////////////////////
|
||||||
/////////////////////////////////////////////////////////////////////////////{{{
|
/////////////////////////////////////////////////////////////////////////////{{{
|
||||||
//
|
|
||||||
vimperator.options.add(["editor"],
|
vimperator.options.add(["editor"],
|
||||||
"Set the external text editor",
|
"Set the external text editor",
|
||||||
"string", "gvim -f");
|
"string", "gvim -f");
|
||||||
|
|
||||||
vimperator.options.add(["insertmode", "im"],
|
vimperator.options.add(["insertmode", "im"],
|
||||||
"Use Insert mode as the default for text areas",
|
"Use Insert mode as the default for text areas",
|
||||||
"boolean", true);
|
"boolean", true);
|
||||||
|
|
||||||
|
/////////////////////////////////////////////////////////////////////////////}}}
|
||||||
|
////////////////////// MAPPINGS ////////////////////////////////////////////////
|
||||||
|
/////////////////////////////////////////////////////////////////////////////{{{
|
||||||
|
var modes = [vimperator.modes.INSERT, vimperator.modes.COMMAND_LINE];
|
||||||
|
|
||||||
|
/* KEYS COUNT CARET TEXTAREA VISUAL_TEXTAREA */
|
||||||
|
addMovementMap(["k", "<Up>"], true, "lineMove", false, "cmd_linePrevious", selectPreviousLine);
|
||||||
|
addMovementMap(["j", "<Down>", "<Return>"], true, "lineMove", true, "cmd_lineNext", selectNextLine);
|
||||||
|
addMovementMap(["h", "<Left>", "<BS>"], true, "characterMove", false, "cmd_charPrevious", "cmd_selectCharPrevious");
|
||||||
|
addMovementMap(["l", "<Right>", "<Space>"], true, "characterMove", true, "cmd_charNext", "cmd_selectCharNext");
|
||||||
|
addMovementMap(["b", "B", "<C-Left>"], true, "wordMove", false, "cmd_wordPrevious", "cmd_selectWordPrevious");
|
||||||
|
addMovementMap(["w", "W", "e", "<C-Right>"], true, "wordMove", true, "cmd_wordNext", "cmd_selectWordNext");
|
||||||
|
addMovementMap(["<C-f>", "<PageDown>"], true, "pageMove", true, "cmd_movePageDown", "cmd_selectNextPage");
|
||||||
|
addMovementMap(["<C-b>", "<PageUp>"], true, "pageMove", false, "cmd_movePageUp", "cmd_selectPreviousPage");
|
||||||
|
addMovementMap(["gg", "<C-Home>"], false, "completeMove", false, "cmd_moveTop", "cmd_selectTop");
|
||||||
|
addMovementMap(["G", "<C-End>"], false, "completeMove", true, "cmd_moveBottom", "cmd_selectBottom");
|
||||||
|
addMovementMap(["0", "^", "<Home>"], false, "intraLineMove", false, "cmd_beginLine", "cmd_selectBeginLine");
|
||||||
|
addMovementMap(["$", "<End>"], false, "intraLineMove", true, "cmd_endLine" , "cmd_selectEndLine" );
|
||||||
|
|
||||||
|
addBeginInsertModeMap(["i", "<Insert"], []);
|
||||||
|
addBeginInsertModeMap(["a"], ["cmd_charNext"]);
|
||||||
|
addBeginInsertModeMap(["I", "gI"], ["cmd_beginLine"]);
|
||||||
|
addBeginInsertModeMap(["A"], ["cmd_endLine"]);
|
||||||
|
addBeginInsertModeMap(["s"], ["cmd_deleteCharForward"]);
|
||||||
|
addBeginInsertModeMap(["S"], ["cmd_deleteToEndOfLine", "cmd_deleteToBeginningOfLine"]);
|
||||||
|
addBeginInsertModeMap(["C"], ["cmd_deleteToEndOfLine"]);
|
||||||
|
|
||||||
|
addMotionMap("d"); // delete
|
||||||
|
addMotionMap("c"); // change
|
||||||
|
addMotionMap("y"); // yank
|
||||||
|
|
||||||
|
// insert mode mappings
|
||||||
|
vimperator.mappings.add(modes,
|
||||||
|
["<C-w>"], "Delete previous word",
|
||||||
|
function () { vimperator.editor.executeCommand("cmd_deleteWordBackward", 1); });
|
||||||
|
|
||||||
|
vimperator.mappings.add(modes,
|
||||||
|
["<C-u>"], "Delete until beginning of current line",
|
||||||
|
function ()
|
||||||
|
{
|
||||||
|
// broken in FF3, deletes the whole line:
|
||||||
|
// vimperator.editor.executeCommand("cmd_deleteToBeginningOfLine", 1);
|
||||||
|
vimperator.editor.executeCommand("cmd_selectBeginLine", 1);
|
||||||
|
vimperator.editor.executeCommand("cmd_delete", 1);
|
||||||
|
});
|
||||||
|
|
||||||
|
vimperator.mappings.add(modes,
|
||||||
|
["<C-k>"], "Delete until end of current line",
|
||||||
|
function () { vimperator.editor.executeCommand("cmd_deleteToEndOfLine", 1); });
|
||||||
|
|
||||||
|
vimperator.mappings.add(modes,
|
||||||
|
["<C-a>", "<Home>"], "Move cursor to beginning of current line",
|
||||||
|
function () { vimperator.editor.executeCommand("cmd_beginLine", 1); });
|
||||||
|
|
||||||
|
vimperator.mappings.add(modes,
|
||||||
|
["<C-e>", "<End>"], "Move cursor to end of current line",
|
||||||
|
function () { vimperator.editor.executeCommand("cmd_endLine", 1); });
|
||||||
|
|
||||||
|
vimperator.mappings.add(modes,
|
||||||
|
["<C-h>"], "Delete character to the left",
|
||||||
|
function () { vimperator.editor.executeCommand("cmd_deleteCharBackward", 1); });
|
||||||
|
|
||||||
|
vimperator.mappings.add(modes,
|
||||||
|
["<C-d>"], "Delete character to the right",
|
||||||
|
function () { vimperator.editor.executeCommand("cmd_deleteCharForward", 1); });
|
||||||
|
|
||||||
|
vimperator.mappings.add(modes,
|
||||||
|
["<S-Insert>"], "Insert clipboard/selection",
|
||||||
|
function () { vimperator.editor.pasteClipboard(); });
|
||||||
|
|
||||||
|
vimperator.mappings.add([vimperator.modes.INSERT, vimperator.modes.TEXTAREA],
|
||||||
|
["<C-i>"], "Edit text field with an external editor",
|
||||||
|
function () { vimperator.editor.editWithExternalEditor(); });
|
||||||
|
|
||||||
|
vimperator.mappings.add([vimperator.modes.INSERT],
|
||||||
|
["<Space>", "<Return>"], "Expand insert mode abbreviation",
|
||||||
|
function () { return vimperator.editor.expandAbbreviation("i"); },
|
||||||
|
{ flags: vimperator.Mappings.flags.ALLOW_EVENT_ROUTING });
|
||||||
|
|
||||||
|
vimperator.mappings.add([vimperator.modes.INSERT],
|
||||||
|
["<Tab>"], "Expand insert mode abbreviation",
|
||||||
|
function () { vimperator.editor.expandAbbreviation("i"); document.commandDispatcher.advanceFocus(); });
|
||||||
|
|
||||||
|
vimperator.mappings.add([vimperator.modes.INSERT],
|
||||||
|
["<C-]>", "<C-5>"], "Expand insert mode abbreviation",
|
||||||
|
function () { vimperator.editor.expandAbbreviation("i"); });
|
||||||
|
|
||||||
|
// textarea mode
|
||||||
|
vimperator.mappings.add([vimperator.modes.TEXTAREA],
|
||||||
|
["u"], "Undo",
|
||||||
|
function (count)
|
||||||
|
{
|
||||||
|
vimperator.editor.executeCommand("cmd_undo", count);
|
||||||
|
vimperator.mode = vimperator.modes.TEXTAREA;
|
||||||
|
},
|
||||||
|
{ flags: vimperator.Mappings.flags.COUNT });
|
||||||
|
|
||||||
|
vimperator.mappings.add([vimperator.modes.TEXTAREA],
|
||||||
|
["<C-r>"], "Redo",
|
||||||
|
function (count)
|
||||||
|
{
|
||||||
|
vimperator.editor.executeCommand("cmd_redo", count);
|
||||||
|
vimperator.mode = vimperator.modes.TEXTAREA;
|
||||||
|
},
|
||||||
|
{ flags: vimperator.Mappings.flags.COUNT });
|
||||||
|
|
||||||
|
vimperator.mappings.add([vimperator.modes.TEXTAREA],
|
||||||
|
["o"], "Open line below current",
|
||||||
|
function (count)
|
||||||
|
{
|
||||||
|
vimperator.editor.executeCommand("cmd_endLine", 1);
|
||||||
|
vimperator.modes.set(vimperator.modes.INSERT, vimperator.modes.TEXTAREA);
|
||||||
|
vimperator.events.feedkeys("<Return>");
|
||||||
|
});
|
||||||
|
|
||||||
|
vimperator.mappings.add([vimperator.modes.TEXTAREA],
|
||||||
|
["O"], "Open line above current",
|
||||||
|
function (count)
|
||||||
|
{
|
||||||
|
vimperator.editor.executeCommand("cmd_beginLine", 1);
|
||||||
|
vimperator.modes.set(vimperator.modes.INSERT, vimperator.modes.TEXTAREA);
|
||||||
|
vimperator.events.feedkeys("<Return>");
|
||||||
|
vimperator.editor.executeCommand("cmd_linePrevious", 1);
|
||||||
|
});
|
||||||
|
|
||||||
|
// visual mode
|
||||||
|
vimperator.mappings.add([vimperator.modes.CARET, vimperator.modes.TEXTAREA, vimperator.modes.VISUAL],
|
||||||
|
["v"], "Start visual mode",
|
||||||
|
function (count) { vimperator.modes.set(vimperator.modes.VISUAL, vimperator.mode); });
|
||||||
|
|
||||||
|
vimperator.mappings.add([vimperator.modes.TEXTAREA],
|
||||||
|
["V"], "Start visual line mode",
|
||||||
|
function (count)
|
||||||
|
{
|
||||||
|
vimperator.modes.set(vimperator.modes.VISUAL, vimperator.modes.TEXTAREA | vimperator.modes.LINE);
|
||||||
|
vimperator.editor.executeCommand("cmd_beginLine", 1);
|
||||||
|
vimperator.editor.executeCommand("cmd_selectLineNext", 1);
|
||||||
|
});
|
||||||
|
|
||||||
|
vimperator.mappings.add([vimperator.modes.VISUAL],
|
||||||
|
["c", "s"], "Change selected text",
|
||||||
|
function (count)
|
||||||
|
{
|
||||||
|
if (vimperator.modes.extended & vimperator.modes.TEXTAREA)
|
||||||
|
{
|
||||||
|
vimperator.editor.executeCommand("cmd_cut");
|
||||||
|
vimperator.modes.set(vimperator.modes.INSERT, vimperator.modes.TEXTAREA);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
vimperator.beep();
|
||||||
|
});
|
||||||
|
|
||||||
|
vimperator.mappings.add([vimperator.modes.VISUAL],
|
||||||
|
["d"], "Delete selected text",
|
||||||
|
function (count)
|
||||||
|
{
|
||||||
|
if (vimperator.modes.extended & vimperator.modes.TEXTAREA)
|
||||||
|
{
|
||||||
|
vimperator.editor.executeCommand("cmd_cut");
|
||||||
|
vimperator.modes.set(vimperator.modes.TEXTAREA);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
vimperator.beep();
|
||||||
|
});
|
||||||
|
|
||||||
|
vimperator.mappings.add([vimperator.modes.VISUAL],
|
||||||
|
["y"], "Yank selected text",
|
||||||
|
function (count)
|
||||||
|
{
|
||||||
|
if (vimperator.modes.extended & vimperator.modes.TEXTAREA)
|
||||||
|
{
|
||||||
|
vimperator.editor.executeCommand("cmd_copy");
|
||||||
|
vimperator.modes.set(vimperator.modes.TEXTAREA);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var sel = window.content.document.getSelection();
|
||||||
|
if (sel)
|
||||||
|
vimperator.copyToClipboard(sel, true);
|
||||||
|
else
|
||||||
|
vimperator.beep();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
vimperator.mappings.add([vimperator.modes.VISUAL, vimperator.modes.TEXTAREA],
|
||||||
|
["p"], "Paste clipboard contents",
|
||||||
|
function (count)
|
||||||
|
{
|
||||||
|
if (!(vimperator.modes.extended & vimperator.modes.CARET))
|
||||||
|
{
|
||||||
|
if (!count) count = 1;
|
||||||
|
while (count--)
|
||||||
|
vimperator.editor.executeCommand("cmd_paste");
|
||||||
|
vimperator.mode = vimperator.modes.TEXTAREA;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
vimperator.beep();
|
||||||
|
});
|
||||||
|
|
||||||
|
// finding characters
|
||||||
|
vimperator.mappings.add([vimperator.modes.TEXTAREA, vimperator.modes.VISUAL],
|
||||||
|
["f"], "Move to a character on the current line after the cursor",
|
||||||
|
function (count, arg)
|
||||||
|
{
|
||||||
|
var pos = vimperator.editor.findCharForward(arg, count);
|
||||||
|
if (pos >= 0)
|
||||||
|
vimperator.editor.moveToPosition(pos, true, vimperator.mode == vimperator.modes.VISUAL);
|
||||||
|
},
|
||||||
|
{ flags: vimperator.Mappings.flags.ARGUMENT | vimperator.Mappings.flags.COUNT});
|
||||||
|
|
||||||
|
vimperator.mappings.add([vimperator.modes.TEXTAREA, vimperator.modes.VISUAL],
|
||||||
|
["F"], "Move to a charater on the current line before the cursor",
|
||||||
|
function (count, arg)
|
||||||
|
{
|
||||||
|
var pos = vimperator.editor.findCharBackward(arg, count);
|
||||||
|
if (pos >= 0)
|
||||||
|
vimperator.editor.moveToPosition(pos, false, vimperator.mode == vimperator.modes.VISUAL);
|
||||||
|
},
|
||||||
|
{ flags: vimperator.Mappings.flags.ARGUMENT | vimperator.Mappings.flags.COUNT});
|
||||||
|
|
||||||
|
vimperator.mappings.add([vimperator.modes.TEXTAREA, vimperator.modes.VISUAL],
|
||||||
|
["t"], "Move before a character on the current line",
|
||||||
|
function (count, arg)
|
||||||
|
{
|
||||||
|
var pos = vimperator.editor.findCharForward(arg, count);
|
||||||
|
if (pos >= 0)
|
||||||
|
vimperator.editor.moveToPosition(pos - 1, true, vimperator.mode == vimperator.modes.VISUAL);
|
||||||
|
},
|
||||||
|
{ flags: vimperator.Mappings.flags.ARGUMENT | vimperator.Mappings.flags.COUNT});
|
||||||
|
|
||||||
|
vimperator.mappings.add([vimperator.modes.TEXTAREA, vimperator.modes.VISUAL],
|
||||||
|
["T"], "Move before a character on the current line, backwards",
|
||||||
|
function (count, arg)
|
||||||
|
{
|
||||||
|
var pos = vimperator.editor.findCharBackward(arg, count);
|
||||||
|
if (pos >= 0)
|
||||||
|
vimperator.editor.moveToPosition(pos + 1, false, vimperator.mode == vimperator.modes.VISUAL);
|
||||||
|
},
|
||||||
|
{ flags: vimperator.Mappings.flags.ARGUMENT | vimperator.Mappings.flags.COUNT});
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////}}}
|
/////////////////////////////////////////////////////////////////////////////}}}
|
||||||
////////////////////// PUBLIC SECTION //////////////////////////////////////////
|
////////////////////// PUBLIC SECTION //////////////////////////////////////////
|
||||||
|
|||||||
@@ -173,7 +173,7 @@ vimperator.Mappings = function () //{{{
|
|||||||
ARGUMENT: 1 << 3
|
ARGUMENT: 1 << 3
|
||||||
};
|
};
|
||||||
|
|
||||||
var mappingManager = {
|
return {
|
||||||
|
|
||||||
// NOTE: just normal mode for now
|
// NOTE: just normal mode for now
|
||||||
__iterator__: function ()
|
__iterator__: function ()
|
||||||
@@ -334,621 +334,6 @@ vimperator.Mappings = function () //{{{
|
|||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////}}}
|
|
||||||
////////////////////// DEFAULT MAPPINGS ////////////////////////////////////////
|
|
||||||
/////////////////////////////////////////////////////////////////////////////{{{
|
|
||||||
|
|
||||||
// CARET mode, most commands should be moved to buffer.js i guess
|
|
||||||
// {{{
|
|
||||||
|
|
||||||
function getSelectionController()
|
|
||||||
{
|
|
||||||
return getBrowser().docShell
|
|
||||||
.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
|
|
||||||
.getInterface(Components.interfaces.nsISelectionDisplay)
|
|
||||||
.QueryInterface(Components.interfaces.nsISelectionController);
|
|
||||||
|
|
||||||
}
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.CARET, vimperator.modes.TEXTAREA], ["v"],
|
|
||||||
function (count) { vimperator.modes.set(vimperator.modes.VISUAL, vimperator.mode); },
|
|
||||||
{ shortHelp: "Start visual mode" }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.CARET], ["j", "<Down>"],
|
|
||||||
function (count)
|
|
||||||
{
|
|
||||||
if (count < 1) count = 1;
|
|
||||||
while (count--)
|
|
||||||
getSelectionController().lineMove(true, false);
|
|
||||||
},
|
|
||||||
{ flags: vimperator.Mappings.flags.COUNT }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.CARET], ["k", "<Up>"],
|
|
||||||
function (count)
|
|
||||||
{
|
|
||||||
if (count < 1) count = 1;
|
|
||||||
while (count--)
|
|
||||||
getSelectionController().lineMove(false, false);
|
|
||||||
|
|
||||||
},
|
|
||||||
{ flags: vimperator.Mappings.flags.COUNT }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.CARET], ["h", "<Left>"],
|
|
||||||
function (count)
|
|
||||||
{
|
|
||||||
if (count < 1) count = 1;
|
|
||||||
while (count--)
|
|
||||||
getSelectionController().characterMove(false, false);
|
|
||||||
},
|
|
||||||
{ flags: vimperator.Mappings.flags.COUNT }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.CARET], ["l", "<Right>"],
|
|
||||||
function (count)
|
|
||||||
{
|
|
||||||
if (count < 1) count = 1;
|
|
||||||
while (count--)
|
|
||||||
getSelectionController().characterMove(true, false);
|
|
||||||
|
|
||||||
},
|
|
||||||
{ flags: vimperator.Mappings.flags.COUNT }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.CARET], ["b", "B", "<C-Left>"],
|
|
||||||
function (count)
|
|
||||||
{
|
|
||||||
if (count < 1) count = 1;
|
|
||||||
while (count--)
|
|
||||||
getSelectionController().wordMove(false, false);
|
|
||||||
},
|
|
||||||
{ flags: vimperator.Mappings.flags.COUNT }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.CARET], ["w", "W", "e", "<C-Right>"],
|
|
||||||
function (count)
|
|
||||||
{
|
|
||||||
if (count < 1) count = 1;
|
|
||||||
while (count--)
|
|
||||||
getSelectionController().wordMove(true, false);
|
|
||||||
|
|
||||||
},
|
|
||||||
{ flags: vimperator.Mappings.flags.COUNT }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.CARET], ["<C-f>", "<PageDown>"],
|
|
||||||
function (count)
|
|
||||||
{
|
|
||||||
if (count < 1) count = 1;
|
|
||||||
while (count--)
|
|
||||||
getSelectionController().pageMove(true, false);
|
|
||||||
},
|
|
||||||
{ flags: vimperator.Mappings.flags.COUNT }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.CARET], ["<C-b>", "<PageUp>"],
|
|
||||||
function (count)
|
|
||||||
{
|
|
||||||
if (count < 1) count = 1;
|
|
||||||
while (count--)
|
|
||||||
getSelectionController().pageMove(false, false);
|
|
||||||
},
|
|
||||||
{ flags: vimperator.Mappings.flags.COUNT }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.CARET], ["gg", "<C-Home>"],
|
|
||||||
function (count) { getSelectionController().completeMove(false, false); },
|
|
||||||
{ }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.CARET], ["G", "<C-End>"],
|
|
||||||
function (count) { getSelectionController().completeMove(true, false); },
|
|
||||||
{ }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.CARET], ["0", "^", "<Home>"],
|
|
||||||
function (count) { getSelectionController().intraLineMove(false, false); },
|
|
||||||
{ }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.CARET], ["$", "<End>"],
|
|
||||||
function (count) { getSelectionController().intraLineMove(true, false); },
|
|
||||||
{ }
|
|
||||||
));
|
|
||||||
|
|
||||||
|
|
||||||
// }}}
|
|
||||||
// VISUAL mode, move to buffer.js
|
|
||||||
// {{{
|
|
||||||
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.VISUAL], ["j", "<Down>"],
|
|
||||||
function (count)
|
|
||||||
{
|
|
||||||
if (count < 1) count = 1;
|
|
||||||
while (count--)
|
|
||||||
{
|
|
||||||
if (vimperator.modes.extended & vimperator.modes.TEXTAREA)
|
|
||||||
{
|
|
||||||
vimperator.editor.executeCommand("cmd_selectLineNext");
|
|
||||||
if ((vimperator.modes.extended & vimperator.modes.LINE) && !vimperator.editor.selectedText())
|
|
||||||
vimperator.editor.executeCommand("cmd_selectLineNext");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
getSelectionController().lineMove(true, true);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{ flags: vimperator.Mappings.flags.COUNT }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.VISUAL], ["k", "<Up>"],
|
|
||||||
function (count)
|
|
||||||
{
|
|
||||||
if (count < 1) count = 1;
|
|
||||||
while (count--)
|
|
||||||
{
|
|
||||||
if (vimperator.modes.extended & vimperator.modes.TEXTAREA)
|
|
||||||
{
|
|
||||||
vimperator.editor.executeCommand("cmd_selectLinePrevious");
|
|
||||||
if ((vimperator.modes.extended & vimperator.modes.LINE) && !vimperator.editor.selectedText())
|
|
||||||
vimperator.editor.executeCommand("cmd_selectLinePrevious");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
getSelectionController().lineMove(false, true);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{ flags: vimperator.Mappings.flags.COUNT }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.VISUAL], ["h", "<Left>"],
|
|
||||||
function (count)
|
|
||||||
{
|
|
||||||
if (count < 1) count = 1;
|
|
||||||
while (count--)
|
|
||||||
{
|
|
||||||
if (vimperator.modes.extended & vimperator.modes.TEXTAREA)
|
|
||||||
vimperator.editor.executeCommand("cmd_selectCharPrevious");
|
|
||||||
else
|
|
||||||
getSelectionController().characterMove(false, true);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{ flags: vimperator.Mappings.flags.COUNT }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.VISUAL], ["l", "<Right>"],
|
|
||||||
function (count)
|
|
||||||
{
|
|
||||||
if (count < 1) count = 1;
|
|
||||||
while (count--)
|
|
||||||
{
|
|
||||||
if (vimperator.modes.extended & vimperator.modes.TEXTAREA)
|
|
||||||
vimperator.editor.executeCommand("cmd_selectCharNext");
|
|
||||||
else
|
|
||||||
getSelectionController().characterMove(true, true);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{ flags: vimperator.Mappings.flags.COUNT }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.VISUAL], ["b", "B"],
|
|
||||||
function (count)
|
|
||||||
{
|
|
||||||
if (count < 1) count = 1;
|
|
||||||
while (count--)
|
|
||||||
{
|
|
||||||
if (vimperator.modes.extended & vimperator.modes.TEXTAREA)
|
|
||||||
vimperator.editor.executeCommand("cmd_selectWordPrevious");
|
|
||||||
else
|
|
||||||
getSelectionController().wordMove(false, true);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{ flags: vimperator.Mappings.flags.COUNT }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.VISUAL], ["w", "W", "e"],
|
|
||||||
function (count)
|
|
||||||
{
|
|
||||||
if (count < 1) count = 1;
|
|
||||||
while (count--)
|
|
||||||
{
|
|
||||||
if (vimperator.modes.extended & vimperator.modes.TEXTAREA)
|
|
||||||
vimperator.editor.executeCommand("cmd_selectWordNext");
|
|
||||||
else
|
|
||||||
getSelectionController().wordMove(true, true);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{ flags: vimperator.Mappings.flags.COUNT }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.VISUAL], ["<C-f>", "<PageDown>"],
|
|
||||||
function (count)
|
|
||||||
{
|
|
||||||
if (count < 1) count = 1;
|
|
||||||
while (count--)
|
|
||||||
{
|
|
||||||
if (vimperator.modes.extended & vimperator.modes.TEXTAREA)
|
|
||||||
;//vimperator.editor.executeCommand("cmd_selectPageNext");
|
|
||||||
else
|
|
||||||
getSelectionController().pageMove(true, true);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{ flags: vimperator.Mappings.flags.COUNT }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.VISUAL], ["<C-b>", "<PageUp>"],
|
|
||||||
function (count)
|
|
||||||
{
|
|
||||||
if (count < 1) count = 1;
|
|
||||||
while (count--)
|
|
||||||
{
|
|
||||||
if (vimperator.modes.extended & vimperator.modes.TEXTAREA)
|
|
||||||
;//vimperator.editor.executeCommand("cmd_selectWordNext");
|
|
||||||
else
|
|
||||||
getSelectionController().pageMove(false, true);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{ flags: vimperator.Mappings.flags.COUNT }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.VISUAL], ["gg", "<C-Home>"],
|
|
||||||
function (count)
|
|
||||||
{
|
|
||||||
if (vimperator.modes.extended & vimperator.modes.TEXTAREA)
|
|
||||||
vimperator.editor.executeCommand("cmd_selectTop");
|
|
||||||
else
|
|
||||||
getSelectionController().completeMove(false, true);
|
|
||||||
},
|
|
||||||
{ }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.VISUAL], ["G", "<C-End>"],
|
|
||||||
function (count)
|
|
||||||
{
|
|
||||||
if (vimperator.modes.extended & vimperator.modes.TEXTAREA)
|
|
||||||
vimperator.editor.executeCommand("cmd_selectBottom");
|
|
||||||
else
|
|
||||||
getSelectionController().completeMove(true, true);
|
|
||||||
},
|
|
||||||
{ }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.VISUAL], ["0", "^", "<Home>"],
|
|
||||||
function (count)
|
|
||||||
{
|
|
||||||
if (vimperator.modes.extended & vimperator.modes.TEXTAREA)
|
|
||||||
vimperator.editor.executeCommand("cmd_selectBeginLine");
|
|
||||||
else
|
|
||||||
getSelectionController().intraLineMove(false, true);
|
|
||||||
},
|
|
||||||
{ }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.VISUAL], ["$", "<End>"],
|
|
||||||
function (count)
|
|
||||||
{
|
|
||||||
if (vimperator.modes.extended & vimperator.modes.TEXTAREA)
|
|
||||||
vimperator.editor.executeCommand("cmd_selectEndLine");
|
|
||||||
else
|
|
||||||
getSelectionController().intraLineMove(true, true);
|
|
||||||
},
|
|
||||||
{ }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.VISUAL], ["c", "s"],
|
|
||||||
function (count)
|
|
||||||
{
|
|
||||||
if (vimperator.modes.extended & vimperator.modes.TEXTAREA)
|
|
||||||
{
|
|
||||||
vimperator.editor.executeCommand("cmd_cut");
|
|
||||||
vimperator.modes.set(vimperator.modes.INSERT, vimperator.modes.TEXTAREA);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
vimperator.beep();
|
|
||||||
},
|
|
||||||
{ }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.VISUAL], ["d"],
|
|
||||||
function (count)
|
|
||||||
{
|
|
||||||
if (vimperator.modes.extended & vimperator.modes.TEXTAREA)
|
|
||||||
{
|
|
||||||
vimperator.editor.executeCommand("cmd_cut");
|
|
||||||
vimperator.modes.set(vimperator.modes.TEXTAREA);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
vimperator.beep();
|
|
||||||
},
|
|
||||||
{ }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.VISUAL], ["y"],
|
|
||||||
function (count)
|
|
||||||
{
|
|
||||||
if (vimperator.modes.extended & vimperator.modes.TEXTAREA)
|
|
||||||
{
|
|
||||||
vimperator.editor.executeCommand("cmd_copy");
|
|
||||||
// vimperator.editor.unselectText();
|
|
||||||
vimperator.modes.set(vimperator.modes.TEXTAREA);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
var sel = window.content.document.getSelection();
|
|
||||||
if (sel)
|
|
||||||
vimperator.copyToClipboard(sel, true);
|
|
||||||
else
|
|
||||||
vimperator.beep();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{ }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.VISUAL, vimperator.modes.TEXTAREA], ["p"],
|
|
||||||
function (count)
|
|
||||||
{
|
|
||||||
if (!(vimperator.modes.extended & vimperator.modes.CARET))
|
|
||||||
{
|
|
||||||
if (!count) count = 1;
|
|
||||||
while (count--)
|
|
||||||
vimperator.editor.executeCommand("cmd_paste");
|
|
||||||
vimperator.mode = vimperator.modes.TEXTAREA;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
vimperator.beep();
|
|
||||||
},
|
|
||||||
{ }
|
|
||||||
));
|
|
||||||
|
|
||||||
// }}}
|
|
||||||
// TEXTAREA mode, move to editor.js
|
|
||||||
// {{{
|
|
||||||
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.TEXTAREA], ["i", "<Insert>"],
|
|
||||||
function (count) { vimperator.modes.set(vimperator.modes.INSERT, vimperator.modes.TEXTAREA); },
|
|
||||||
{ }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.TEXTAREA], ["a"],
|
|
||||||
function (count)
|
|
||||||
{
|
|
||||||
vimperator.editor.executeCommand("cmd_charNext", 1);
|
|
||||||
vimperator.modes.set(vimperator.modes.INSERT, vimperator.modes.TEXTAREA);
|
|
||||||
},
|
|
||||||
{ }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.TEXTAREA], ["I", "gI"],
|
|
||||||
function (count)
|
|
||||||
{
|
|
||||||
vimperator.editor.executeCommand("cmd_beginLine", 1);
|
|
||||||
vimperator.modes.set(vimperator.modes.INSERT, vimperator.modes.TEXTAREA);
|
|
||||||
},
|
|
||||||
{ }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.TEXTAREA], ["A"],
|
|
||||||
function (count)
|
|
||||||
{
|
|
||||||
vimperator.editor.executeCommand("cmd_endLine", 1);
|
|
||||||
vimperator.modes.set(vimperator.modes.INSERT, vimperator.modes.TEXTAREA);
|
|
||||||
},
|
|
||||||
{ }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.TEXTAREA], ["s"],
|
|
||||||
function (count)
|
|
||||||
{
|
|
||||||
vimperator.editor.executeCommand("cmd_deleteCharForward", 1);
|
|
||||||
vimperator.modes.set(vimperator.modes.INSERT, vimperator.modes.TEXTAREA);
|
|
||||||
},
|
|
||||||
{ }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.TEXTAREA], ["S"],
|
|
||||||
function (count)
|
|
||||||
{
|
|
||||||
vimperator.editor.executeCommand("cmd_deleteToEndOfLine", 1);
|
|
||||||
vimperator.editor.executeCommand("cmd_deleteToBeginningOfLine", 1);
|
|
||||||
vimperator.modes.set(vimperator.modes.INSERT, vimperator.modes.TEXTAREA);
|
|
||||||
},
|
|
||||||
{ }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.TEXTAREA], ["C"],
|
|
||||||
function (count)
|
|
||||||
{
|
|
||||||
vimperator.editor.executeCommand("cmd_deleteToEndOfLine", 1);
|
|
||||||
vimperator.modes.set(vimperator.modes.INSERT, vimperator.modes.TEXTAREA);
|
|
||||||
},
|
|
||||||
{ }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.TEXTAREA], ["v"],
|
|
||||||
function (count) { vimperator.modes.set(vimperator.modes.VISUAL, vimperator.modes.TEXTAREA); },
|
|
||||||
{ }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.TEXTAREA], ["V"],
|
|
||||||
function (count)
|
|
||||||
{
|
|
||||||
vimperator.modes.set(vimperator.modes.VISUAL, vimperator.modes.TEXTAREA | vimperator.modes.LINE);
|
|
||||||
vimperator.editor.executeCommand("cmd_beginLine", 1);
|
|
||||||
vimperator.editor.executeCommand("cmd_selectLineNext", 1);
|
|
||||||
},
|
|
||||||
{ }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.TEXTAREA], ["u"],
|
|
||||||
function (count) { vimperator.editor.executeCommand("cmd_undo", count); vimperator.mode = vimperator.modes.TEXTAREA; },
|
|
||||||
{ flags: vimperator.Mappings.flags.COUNT }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.TEXTAREA], ["<C-r>"],
|
|
||||||
function (count) { vimperator.editor.executeCommand("cmd_redo", count); vimperator.mode = vimperator.modes.TEXTAREA; },
|
|
||||||
{ flags: vimperator.Mappings.flags.COUNT }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.TEXTAREA], ["j", "<Down>", "<Return>"],
|
|
||||||
function (count) { vimperator.editor.executeCommand("cmd_lineNext", count); },
|
|
||||||
{ flags: vimperator.Mappings.flags.COUNT }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.TEXTAREA], ["k", "<Up>"],
|
|
||||||
function (count) { vimperator.editor.executeCommand("cmd_linePrevious", count); },
|
|
||||||
{ flags: vimperator.Mappings.flags.COUNT }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.TEXTAREA], ["h", "<Left>", "<BS>"],
|
|
||||||
function (count) { vimperator.editor.executeCommand("cmd_charPrevious", count); },
|
|
||||||
{ flags: vimperator.Mappings.flags.COUNT }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.TEXTAREA], ["l", "<Right>", "<Space>"],
|
|
||||||
function (count) { vimperator.editor.executeCommand("cmd_charNext", count); },
|
|
||||||
{ flags: vimperator.Mappings.flags.COUNT }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.TEXTAREA], ["w", "W", "e", "<C-Right>"],
|
|
||||||
function (count) { vimperator.editor.executeCommand("cmd_wordNext", count); },
|
|
||||||
{ flags: vimperator.Mappings.flags.COUNT }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.TEXTAREA], ["b", "B", "<C-Left>"],
|
|
||||||
function (count) { vimperator.editor.executeCommand("cmd_wordPrevious", 1); },
|
|
||||||
{ flags: vimperator.Mappings.flags.COUNT }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.TEXTAREA], ["gg", "<C-Home>"],
|
|
||||||
function (count) { vimperator.editor.executeCommand("cmd_moveTop", 1); },
|
|
||||||
{ }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.TEXTAREA], ["G", "<C-End>"],
|
|
||||||
function (count) { vimperator.editor.executeCommand("cmd_moveBottom", 1); },
|
|
||||||
{ }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.TEXTAREA], ["0", "^", "<Home>"],
|
|
||||||
function (count) { vimperator.editor.executeCommand("cmd_beginLine", 1); },
|
|
||||||
{ }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.TEXTAREA], ["$", "<End>"],
|
|
||||||
function (count) { vimperator.editor.executeCommand("cmd_endLine", 1); },
|
|
||||||
{ }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.TEXTAREA], ["<C-f>", "<PageDown>"],
|
|
||||||
function (count) { vimperator.editor.executeCommand("cmd_movePageDown", count); },
|
|
||||||
{ flags: vimperator.Mappings.flags.COUNT }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.TEXTAREA], ["<C-b>", "<PageUp>"],
|
|
||||||
function (count) { vimperator.editor.executeCommand("cmd_movePageUp", count); },
|
|
||||||
{ flags: vimperator.Mappings.flags.COUNT }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.TEXTAREA], ["o"],
|
|
||||||
function (count)
|
|
||||||
{
|
|
||||||
vimperator.editor.executeCommand("cmd_endLine", 1);
|
|
||||||
vimperator.modes.set(vimperator.modes.INSERT, vimperator.modes.TEXTAREA);
|
|
||||||
vimperator.events.feedkeys("<Return>");
|
|
||||||
},
|
|
||||||
{ }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.TEXTAREA], ["O"],
|
|
||||||
function (count)
|
|
||||||
{
|
|
||||||
vimperator.editor.executeCommand("cmd_beginLine", 1);
|
|
||||||
vimperator.modes.set(vimperator.modes.INSERT, vimperator.modes.TEXTAREA);
|
|
||||||
vimperator.events.feedkeys("<Return>");
|
|
||||||
vimperator.editor.executeCommand("cmd_linePrevious", 1);
|
|
||||||
},
|
|
||||||
{ }
|
|
||||||
));
|
|
||||||
|
|
||||||
// no need to check if we are really in TEXTAREA mode, as findCharForward/Backward will return -1 otherwise
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.TEXTAREA, vimperator.modes.VISUAL], ["f"],
|
|
||||||
function (count, arg)
|
|
||||||
{
|
|
||||||
var pos = vimperator.editor.findCharForward(arg, count);
|
|
||||||
if (pos >= 0)
|
|
||||||
vimperator.editor.moveToPosition(pos, true, vimperator.mode == vimperator.modes.VISUAL);
|
|
||||||
},
|
|
||||||
{ flags: vimperator.Mappings.flags.ARGUMENT | vimperator.Mappings.flags.COUNT}
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.TEXTAREA, vimperator.modes.VISUAL], ["F"],
|
|
||||||
function (count, arg)
|
|
||||||
{
|
|
||||||
var pos = vimperator.editor.findCharBackward(arg, count);
|
|
||||||
if (pos >= 0)
|
|
||||||
vimperator.editor.moveToPosition(pos, false, vimperator.mode == vimperator.modes.VISUAL);
|
|
||||||
},
|
|
||||||
{ flags: vimperator.Mappings.flags.ARGUMENT | vimperator.Mappings.flags.COUNT}
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.TEXTAREA, vimperator.modes.VISUAL], ["t"],
|
|
||||||
function (count, arg)
|
|
||||||
{
|
|
||||||
var pos = vimperator.editor.findCharForward(arg, count);
|
|
||||||
if (pos >= 0)
|
|
||||||
vimperator.editor.moveToPosition(pos - 1, true, vimperator.mode = vimperator.modes.VISUAL);
|
|
||||||
},
|
|
||||||
{ flags: vimperator.Mappings.flags.ARGUMENT | vimperator.Mappings.flags.COUNT}
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.TEXTAREA, vimperator.modes.VISUAL], ["T"],
|
|
||||||
function (count, arg)
|
|
||||||
{
|
|
||||||
var pos = vimperator.editor.findCharBackward(arg, count);
|
|
||||||
if (pos >= 0)
|
|
||||||
vimperator.editor.moveToPosition(pos + 1, false, vimperator.mode = vimperator.modes.VISUAL);
|
|
||||||
},
|
|
||||||
{ flags: vimperator.Mappings.flags.ARGUMENT | vimperator.Mappings.flags.COUNT}
|
|
||||||
));
|
|
||||||
// addDefaultMap(new vimperator.Map([vimperator.modes.TEXTAREA, vimperator.modes.VISUAL], [";"],
|
|
||||||
// function (count, arg)
|
|
||||||
// {
|
|
||||||
// var pos = vimperator.editor.findCharBackward(null, count);
|
|
||||||
// if (pos >= 0)
|
|
||||||
// vimperator.editor.moveToPosition(pos + 1, false, vimperator.mode = vimperator.modes.VISUAL);
|
|
||||||
// },
|
|
||||||
// { flags: vimperator.Mappings.flags.ARGUMENT | vimperator.Mappings.flags.COUNT}
|
|
||||||
// ));
|
|
||||||
|
|
||||||
// commands which require a motion
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.TEXTAREA], ["d"],
|
|
||||||
function (motion, count) { vimperator.editor.executeCommandWithMotion("d", motion, count); },
|
|
||||||
{ flags: vimperator.Mappings.flags.MOTION | vimperator.Mappings.flags.COUNT }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.TEXTAREA], ["c"],
|
|
||||||
function (motion, count) { vimperator.editor.executeCommandWithMotion("c", motion, count); },
|
|
||||||
{ flags: vimperator.Mappings.flags.MOTION | vimperator.Mappings.flags.COUNT }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.TEXTAREA], ["y"],
|
|
||||||
function (motion, count) { vimperator.editor.executeCommandWithMotion("y", motion, count); },
|
|
||||||
{ flags: vimperator.Mappings.flags.MOTION | vimperator.Mappings.flags.COUNT }
|
|
||||||
));
|
|
||||||
|
|
||||||
// }}}
|
|
||||||
// INSERT mode, move to editor.js
|
|
||||||
// {{{
|
|
||||||
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.INSERT, vimperator.modes.COMMAND_LINE], ["<C-w>"],
|
|
||||||
function () { vimperator.editor.executeCommand("cmd_deleteWordBackward", 1); },
|
|
||||||
{ }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.INSERT, vimperator.modes.COMMAND_LINE], ["<C-u>"],
|
|
||||||
function ()
|
|
||||||
{
|
|
||||||
// broken in FF3, deletes the whole line:
|
|
||||||
// vimperator.editor.executeCommand("cmd_deleteToBeginningOfLine", 1);
|
|
||||||
vimperator.editor.executeCommand("cmd_selectBeginLine", 1);
|
|
||||||
vimperator.editor.executeCommand("cmd_delete", 1);
|
|
||||||
},
|
|
||||||
{ }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.INSERT, vimperator.modes.COMMAND_LINE], ["<C-k>"],
|
|
||||||
function () { vimperator.editor.executeCommand("cmd_deleteToEndOfLine", 1); },
|
|
||||||
{ }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.INSERT, vimperator.modes.COMMAND_LINE], ["<C-a>", "<Home>"],
|
|
||||||
function () { vimperator.editor.executeCommand("cmd_beginLine", 1); },
|
|
||||||
{ }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.INSERT, vimperator.modes.COMMAND_LINE], ["<C-e>", "<End>"],
|
|
||||||
function () { vimperator.editor.executeCommand("cmd_endLine", 1); },
|
|
||||||
{ }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.INSERT, vimperator.modes.COMMAND_LINE], ["<C-h>"], // let firefox handle <BS>
|
|
||||||
function () { vimperator.editor.executeCommand("cmd_deleteCharBackward", 1); },
|
|
||||||
{ }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.INSERT, vimperator.modes.COMMAND_LINE], ["<C-d>"],
|
|
||||||
function () { vimperator.editor.executeCommand("cmd_deleteCharForward", 1); },
|
|
||||||
{ }
|
|
||||||
));
|
|
||||||
// addDefaultMap(new vimperator.Map([vimperator.modes.INSERT, vimperator.modes.COMMAND_LINE], ["<C-b>"],
|
|
||||||
// function () { vimperator.editor.executeCommand("cmd_charPrevious", 1); },
|
|
||||||
// { }
|
|
||||||
// ));
|
|
||||||
// addDefaultMap(new vimperator.Map([vimperator.modes.INSERT, vimperator.modes.COMMAND_LINE], ["<C-f>"],
|
|
||||||
// function () { vimperator.editor.executeCommand("cmd_charNext", 1); },
|
|
||||||
// { }
|
|
||||||
// ));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.INSERT, vimperator.modes.COMMAND_LINE], ["<S-Insert>"],
|
|
||||||
function () { vimperator.editor.pasteClipboard(); },
|
|
||||||
{ }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.INSERT, vimperator.modes.TEXTAREA], ["<C-i>"],
|
|
||||||
function () { vimperator.editor.editWithExternalEditor(); },
|
|
||||||
{ }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.INSERT, vimperator.modes.TEXTAREA], ["<Space>", "<Return>"],
|
|
||||||
function () { return vimperator.editor.expandAbbreviation("i"); },
|
|
||||||
{ flags: vimperator.Mappings.flags.ALLOW_EVENT_ROUTING }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.INSERT, vimperator.modes.TEXTAREA], ["<Tab>"],
|
|
||||||
function () { vimperator.editor.expandAbbreviation("i"); document.commandDispatcher.advanceFocus(); },
|
|
||||||
{ }
|
|
||||||
));
|
|
||||||
addDefaultMap(new vimperator.Map([vimperator.modes.INSERT, vimperator.modes.TEXTAREA],
|
|
||||||
["<C-]>", "<C-5>"], function () { vimperator.editor.expandAbbreviation("i"); }, { }
|
|
||||||
));
|
|
||||||
|
|
||||||
//}}}
|
|
||||||
|
|
||||||
return mappingManager;
|
|
||||||
}; //}}}
|
}; //}}}
|
||||||
|
|
||||||
// vim: set fdm=marker sw=4 ts=4 et:
|
// vim: set fdm=marker sw=4 ts=4 et:
|
||||||
|
|||||||
Reference in New Issue
Block a user