mirror of
https://github.com/gryf/pentadactyl-pm.git
synced 2025-12-22 20:27:57 +01:00
add new :mkvimperatorrc command
This commit is contained in:
1
NEWS
1
NEWS
@@ -1,6 +1,7 @@
|
|||||||
<pre>
|
<pre>
|
||||||
2007-XX-XX:
|
2007-XX-XX:
|
||||||
* version 0.5.3
|
* version 0.5.3
|
||||||
|
* added new :mkvimperatorc command
|
||||||
* remove :redraw and Ctrl-L commands as they rely on FF3 features
|
* remove :redraw and Ctrl-L commands as they rely on FF3 features
|
||||||
* :ls, :history and :bmarks output is now hyperlinked
|
* :ls, :history and :bmarks output is now hyperlinked
|
||||||
* new gb and gB mappings to repeat the last :buffer[!] command,
|
* new gb and gB mappings to repeat the last :buffer[!] command,
|
||||||
|
|||||||
@@ -883,6 +883,57 @@ function Commands() //{{{
|
|||||||
help: "If <code class=\"argument\">[arg]</code> is specified then limit the list to those marks mentioned."
|
help: "If <code class=\"argument\">[arg]</code> is specified then limit the list to those marks mentioned."
|
||||||
}
|
}
|
||||||
));
|
));
|
||||||
|
addDefaultCommand(new Command(["mkv[imperatorrc]"],
|
||||||
|
function(args, special)
|
||||||
|
{
|
||||||
|
var filename;
|
||||||
|
|
||||||
|
// TODO: "E172: Only one file name allowed"
|
||||||
|
if (args)
|
||||||
|
filename = args;
|
||||||
|
else
|
||||||
|
filename = vimperator.io.expandPath(navigator.platform == "Win32" ? "~/_vimperatorrc" : "~/.vimperatorrc");
|
||||||
|
|
||||||
|
var file = vimperator.io.getFile(filename);
|
||||||
|
if (file.exists() && !special)
|
||||||
|
{
|
||||||
|
vimperator.echoerr("E189: \".vimperatorrc\" exists (add ! to override)");
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
var line = "\" " + vimperator.version + "\n";
|
||||||
|
|
||||||
|
// TODO: write user maps for all modes when we have mode dependant map support
|
||||||
|
for (var map in vimperator.mappings.getUserIterator(vimperator.modes.NORMAL))
|
||||||
|
{
|
||||||
|
for (var i = 0; i < map.names.length; i++)
|
||||||
|
line += "map " + map.names[i] + " " + map.rhs + "\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
for (var option in vimperator.options)
|
||||||
|
{
|
||||||
|
// TODO: options should be queried for this info
|
||||||
|
if (!/fullscreen|usermode/.test(option.name) && option.value != option.default_value)
|
||||||
|
{
|
||||||
|
if (option.type == "boolean")
|
||||||
|
line += "set " + (option.value ? option.name : "no" + option.name) + "\n";
|
||||||
|
else
|
||||||
|
line += "set " + option.name + "=" + option.value + "\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
line += "\" vim: set ft=vimperator:";
|
||||||
|
|
||||||
|
vimperator.io.writeFile(file, line);
|
||||||
|
},
|
||||||
|
{
|
||||||
|
usage: ["mkv[imperatorrc] [file]"],
|
||||||
|
short_help: "Write current keymappings and changed options to [file]",
|
||||||
|
help: "If no <code class=\"argument\">[file]</code> is specified then ~/.vimperatorrc is written unless this file already exists. " +
|
||||||
|
"The special version will overwrite <code class=\"argument\">[file]</code> if it exists.<br/>" +
|
||||||
|
"WARNING: this differs from Vim's behaviour which defaults to writing the file in the current directory."
|
||||||
|
}
|
||||||
|
));
|
||||||
addDefaultCommand(new Command(["noh[lsearch]"],
|
addDefaultCommand(new Command(["noh[lsearch]"],
|
||||||
function(args)
|
function(args)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -156,9 +156,9 @@ function Mappings() //{{{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function mappingsIterator(mode)
|
function mappingsIterator(mode, stack)
|
||||||
{
|
{
|
||||||
var mappings = main[mode];
|
var mappings = stack[mode];
|
||||||
|
|
||||||
//// FIXME: do we want to document user commands by default?
|
//// FIXME: do we want to document user commands by default?
|
||||||
//mappings = user[mode].concat(main[mode]);
|
//mappings = user[mode].concat(main[mode]);
|
||||||
@@ -182,12 +182,19 @@ function Mappings() //{{{
|
|||||||
// NOTE: just normal mode for now
|
// NOTE: just normal mode for now
|
||||||
this.__iterator__ = function()
|
this.__iterator__ = function()
|
||||||
{
|
{
|
||||||
return mappingsIterator(vimperator.modes.NORMAL);
|
return mappingsIterator(vimperator.modes.NORMAL, main);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FIXME
|
||||||
this.getIterator = function(mode)
|
this.getIterator = function(mode)
|
||||||
{
|
{
|
||||||
return mappingsIterator(mode);
|
return mappingsIterator(mode, main);
|
||||||
|
}
|
||||||
|
|
||||||
|
// FIXME
|
||||||
|
this.getUserIterator = function(mode)
|
||||||
|
{
|
||||||
|
return mappingsIterator(mode, user);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.hasMap = function(mode, cmd)
|
this.hasMap = function(mode, cmd)
|
||||||
|
|||||||
Reference in New Issue
Block a user