mirror of
https://github.com/gryf/pentadactyl-pm.git
synced 2025-12-22 20:57:58 +01:00
Merge branch 'master' into xulmus
This commit is contained in:
@@ -81,11 +81,11 @@ $(RDF): $(RDF_IN) Makefile
|
|||||||
< $< > $@
|
< $< > $@
|
||||||
@echo "SUCCESS: $@"
|
@echo "SUCCESS: $@"
|
||||||
|
|
||||||
clean: $(LOCALES:%=%.clean)
|
clean: $(LOCALEDIR)/$(LOCALES:%=%.clean)
|
||||||
@echo "General $(NAME) cleanup..."
|
@echo "General $(NAME) cleanup..."
|
||||||
rm -f $(JAR) $(XPI)
|
rm -f $(JAR) $(XPI)
|
||||||
|
|
||||||
distclean: $(LOCALES:%=%.distclean) clean
|
distclean: $(LOCALEDIR)/$(LOCALES:%=%.distclean) clean
|
||||||
@echo "More $(NAME) cleanup..."
|
@echo "More $(NAME) cleanup..."
|
||||||
rm -rf $(BUILD_DIR)
|
rm -rf $(BUILD_DIR)
|
||||||
|
|
||||||
|
|||||||
@@ -57,5 +57,6 @@ $(ADC_FILES): %.html: %.txt $(BASE)/Makefile.doc $(ADC_DEPS)
|
|||||||
version.html: ../../NEWS $(BASE)/Makefile.doc $(ADC_DEPS)
|
version.html: ../../NEWS $(BASE)/Makefile.doc $(ADC_DEPS)
|
||||||
@echo "DOC locale/$(LOCALE)/$@"
|
@echo "DOC locale/$(LOCALE)/$@"
|
||||||
# NOTE: asciidoc doesn't source the conf file implicitly when processing stdin
|
# NOTE: asciidoc doesn't source the conf file implicitly when processing stdin
|
||||||
sed -e '1i\HEADER' -e '/^[0-9]/d' -e '/^ \+\* version /s/.*version \+\([0-9.]\+\).*/section:Version{nbsp}\1[version-\1]\
|
sed -e '1i\
|
||||||
|
HEADER' -e '/^[0-9]/d' -e '/^ \+\* version /s/.*version \+\([0-9.]\+\).*/section:Version{nbsp}\1[version-\1]\
|
||||||
/' ../../NEWS | ${ASCIIDOC} -f asciidoc.conf -a doctitle=version.html -o version.html -
|
/' ../../NEWS | ${ASCIIDOC} -f asciidoc.conf -a doctitle=version.html -o version.html -
|
||||||
|
|||||||
@@ -658,7 +658,11 @@ CompletionContext.prototype = {
|
|||||||
this.tabPressed = false;
|
this.tabPressed = false;
|
||||||
this.title = ["Completions"];
|
this.title = ["Completions"];
|
||||||
this.updateAsync = false;
|
this.updateAsync = false;
|
||||||
this.waitingForTab = false;
|
try
|
||||||
|
{
|
||||||
|
this.waitingForTab = false;
|
||||||
|
}
|
||||||
|
catch (e) {}
|
||||||
|
|
||||||
this.cancelAll();
|
this.cancelAll();
|
||||||
|
|
||||||
@@ -677,7 +681,11 @@ CompletionContext.prototype = {
|
|||||||
for each (let context in this.contexts)
|
for each (let context in this.contexts)
|
||||||
{
|
{
|
||||||
context.hasItems = false;
|
context.hasItems = false;
|
||||||
context.incomplete = false;
|
try
|
||||||
|
{
|
||||||
|
context.incomplete = false;
|
||||||
|
}
|
||||||
|
catch (e) {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -685,8 +693,9 @@ CompletionContext.prototype = {
|
|||||||
* Wait for all subcontexts to complete.
|
* Wait for all subcontexts to complete.
|
||||||
*
|
*
|
||||||
* @param {boolean} interruptible When true, the call may be interrupted
|
* @param {boolean} interruptible When true, the call may be interrupted
|
||||||
* via <C-c>. In this case, "Interrupted" may be thrown.
|
* via <C-c>, in which case, "Interrupted" may be thrown.
|
||||||
* @param {number} timeout The maximum time, in milliseconds, to wait.
|
* @param {number} timeout The maximum time, in milliseconds, to wait.
|
||||||
|
* If 0 or null, wait indefinately.
|
||||||
*/
|
*/
|
||||||
wait: function wait(interruptable, timeout)
|
wait: function wait(interruptable, timeout)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -607,8 +607,12 @@ function Editor() //{{{
|
|||||||
unselectText: function ()
|
unselectText: function ()
|
||||||
{
|
{
|
||||||
let elem = window.document.commandDispatcher.focusedElement;
|
let elem = window.document.commandDispatcher.focusedElement;
|
||||||
if (elem && elem.selectionEnd)
|
// A error occurs if the element has been removed when "elem.selectionStart" is executed.
|
||||||
elem.selectionEnd = elem.selectionStart;
|
try {
|
||||||
|
if (elem && elem.selectionEnd)
|
||||||
|
elem.selectionEnd = elem.selectionStart;
|
||||||
|
}
|
||||||
|
catch (e) {}
|
||||||
},
|
},
|
||||||
|
|
||||||
selectedText: function ()
|
selectedText: function ()
|
||||||
@@ -619,12 +623,23 @@ function Editor() //{{{
|
|||||||
|
|
||||||
pasteClipboard: function ()
|
pasteClipboard: function ()
|
||||||
{
|
{
|
||||||
|
if (liberator.has("Win32"))
|
||||||
|
{
|
||||||
|
this.executeCommand("cmd_paste");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// FIXME: #93 (<s-insert> in the bottom of a long textarea bounces up)
|
||||||
let elem = window.document.commandDispatcher.focusedElement;
|
let elem = window.document.commandDispatcher.focusedElement;
|
||||||
|
|
||||||
if (elem.setSelectionRange && util.readFromClipboard())
|
if (elem.setSelectionRange && util.readFromClipboard())
|
||||||
// readFromClipboard would return 'undefined' if not checked
|
// readFromClipboard would return 'undefined' if not checked
|
||||||
// dunno about .setSelectionRange
|
// dunno about .setSelectionRange
|
||||||
{
|
{
|
||||||
|
// This is a hacky fix - but it works.
|
||||||
|
let curTop = elem.scrollTop;
|
||||||
|
let curLeft = elem.scrollLeft;
|
||||||
|
|
||||||
let rangeStart = elem.selectionStart; // caret position
|
let rangeStart = elem.selectionStart; // caret position
|
||||||
let rangeEnd = elem.selectionEnd;
|
let rangeEnd = elem.selectionEnd;
|
||||||
let tempStr1 = elem.value.substring(0, rangeStart);
|
let tempStr1 = elem.value.substring(0, rangeStart);
|
||||||
@@ -633,6 +648,9 @@ function Editor() //{{{
|
|||||||
elem.value = tempStr1 + tempStr2 + tempStr3;
|
elem.value = tempStr1 + tempStr2 + tempStr3;
|
||||||
elem.selectionStart = rangeStart + tempStr2.length;
|
elem.selectionStart = rangeStart + tempStr2.length;
|
||||||
elem.selectionEnd = elem.selectionStart;
|
elem.selectionEnd = elem.selectionStart;
|
||||||
|
|
||||||
|
elem.scrollTop = curTop;
|
||||||
|
elem.scrollLeft = curLeft;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@@ -639,7 +639,7 @@ function Events() //{{{
|
|||||||
{
|
{
|
||||||
for (let [,dir] in Iterator(dirs))
|
for (let [,dir] in Iterator(dirs))
|
||||||
{
|
{
|
||||||
liberator.echomsg('Searching for "macros/*" in ' + dir.path.quote(), 2);
|
liberator.echomsg('Searching for "macros/*" in "' + dir.path + '"', 2);
|
||||||
|
|
||||||
liberator.log("Sourcing macros directory: " + dir.path + "...", 3);
|
liberator.log("Sourcing macros directory: " + dir.path + "...", 3);
|
||||||
|
|
||||||
@@ -932,6 +932,8 @@ function Events() //{{{
|
|||||||
{
|
{
|
||||||
if (!ctrl && !alt && !shift && !meta)
|
if (!ctrl && !alt && !shift && !meta)
|
||||||
return false; // an invalid key like <a>
|
return false; // an invalid key like <a>
|
||||||
|
else if (shift)
|
||||||
|
keyname = keyname.toUpperCase();
|
||||||
charCode = keyname.charCodeAt(0);
|
charCode = keyname.charCodeAt(0);
|
||||||
}
|
}
|
||||||
else if (keyname.toLowerCase() == "space")
|
else if (keyname.toLowerCase() == "space")
|
||||||
@@ -1388,8 +1390,11 @@ function Events() //{{{
|
|||||||
if (key == "<C-c>" && !event.isMacro)
|
if (key == "<C-c>" && !event.isMacro)
|
||||||
{
|
{
|
||||||
events.feedingKeys = false;
|
events.feedingKeys = false;
|
||||||
if (lastMacro)
|
if (modes.isReplaying)
|
||||||
|
{
|
||||||
|
modes.isReplaying = false;
|
||||||
setTimeout(function () { liberator.echomsg("Canceled playback of macro '" + lastMacro + "'"); }, 100);
|
setTimeout(function () { liberator.echomsg("Canceled playback of macro '" + lastMacro + "'"); }, 100);
|
||||||
|
}
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
event.stopPropagation();
|
event.stopPropagation();
|
||||||
return true;
|
return true;
|
||||||
@@ -1709,7 +1714,7 @@ function Events() //{{{
|
|||||||
{
|
{
|
||||||
setTimeout(statusline.updateUrl, 100);
|
setTimeout(statusline.updateUrl, 100);
|
||||||
},
|
},
|
||||||
setOverLink : function (link, b)
|
setOverLink: function (link, b)
|
||||||
{
|
{
|
||||||
let ssli = options["showstatuslinks"];
|
let ssli = options["showstatuslinks"];
|
||||||
if (link && ssli)
|
if (link && ssli)
|
||||||
@@ -1773,11 +1778,12 @@ function Events() //{{{
|
|||||||
|
|
||||||
window.XULBrowserWindow = self.progressListener;
|
window.XULBrowserWindow = self.progressListener;
|
||||||
window.QueryInterface(Ci.nsIInterfaceRequestor)
|
window.QueryInterface(Ci.nsIInterfaceRequestor)
|
||||||
.getInterface(Ci.nsIWebNavigation)
|
.getInterface(Ci.nsIWebNavigation)
|
||||||
.QueryInterface(Ci.nsIDocShellTreeItem).treeOwner
|
.QueryInterface(Ci.nsIDocShellTreeItem)
|
||||||
.QueryInterface(Ci.nsIInterfaceRequestor)
|
.treeOwner
|
||||||
.getInterface(Ci.nsIXULWindow)
|
.QueryInterface(Ci.nsIInterfaceRequestor)
|
||||||
.XULBrowserWindow = window.XULBrowserWindow;
|
.getInterface(Ci.nsIXULWindow)
|
||||||
|
.XULBrowserWindow = self.progressListener;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
getBrowser().addProgressListener(self.progressListener, Ci.nsIWebProgress.NOTIFY_ALL);
|
getBrowser().addProgressListener(self.progressListener, Ci.nsIWebProgress.NOTIFY_ALL);
|
||||||
|
|||||||
@@ -165,8 +165,76 @@ function Hints() //{{{
|
|||||||
text = elem.textContent.toLowerCase();
|
text = elem.textContent.toLowerCase();
|
||||||
|
|
||||||
span = baseNodeAbsolute.cloneNode(true);
|
span = baseNodeAbsolute.cloneNode(true);
|
||||||
span.style.left = Math.max((rect.left + scrollX), scrollX) + "px";
|
|
||||||
span.style.top = Math.max((rect.top + scrollY), scrollY) + "px";
|
let leftpos = Math.max((rect.left + scrollX), scrollX);
|
||||||
|
let toppos = Math.max((rect.top + scrollY), scrollY);
|
||||||
|
|
||||||
|
if (tagname == "area")
|
||||||
|
{
|
||||||
|
// TODO: Maybe put the following into a seperate function
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// Need to add the offset to the area element.
|
||||||
|
// Always try to find the top-left point, as per vimperator default.
|
||||||
|
let shape = elem.getAttribute("shape").toLowerCase();
|
||||||
|
let coordstr = elem.getAttribute("coords");
|
||||||
|
// Technically it should be only commas, but hey
|
||||||
|
coordstr = coordstr.replace(/\s+[;,]\s+/g, ",").replace(/\s+/g, ",");
|
||||||
|
let coords = coordstr.split(",").map(Number);
|
||||||
|
|
||||||
|
if ((shape == "rect" || shape == "rectangle") && coords.length == 4)
|
||||||
|
{
|
||||||
|
leftpos += coords[0];
|
||||||
|
toppos += coords[1];
|
||||||
|
}
|
||||||
|
else if (shape == "circle" && coords.length == 3)
|
||||||
|
{
|
||||||
|
leftpos += coords[0] - coords[2] / Math.sqrt(2);
|
||||||
|
toppos += coords[1] - coords[2] / Math.sqrt(2);
|
||||||
|
}
|
||||||
|
else if ((shape == "poly" || shape == "polygon") && coords.length % 2 == 0)
|
||||||
|
{
|
||||||
|
let leftbound = Infinity;
|
||||||
|
let topbound = Infinity;
|
||||||
|
|
||||||
|
// First find the top-left corner of the bounding rectangle (offset from image topleft can be noticably suboptimal)
|
||||||
|
for (let i = 0; i < coords.length; i += 2)
|
||||||
|
{
|
||||||
|
leftbound = Math.min(coords[i], leftbound);
|
||||||
|
topbound = Math.min(coords[i+1], topbound);
|
||||||
|
}
|
||||||
|
|
||||||
|
let curtop = null;
|
||||||
|
let curleft = null;
|
||||||
|
let curdist = Infinity;
|
||||||
|
|
||||||
|
// Then find the closest vertex. (we could generalise to nearest point on an edge, but I doubt there is a need)
|
||||||
|
for (let i = 0; i < coords.length; i += 2)
|
||||||
|
{
|
||||||
|
let leftoffset = coords[i] - leftbound;
|
||||||
|
let topoffset = coords[i+1] - topbound;
|
||||||
|
let dist = Math.sqrt(leftoffset * leftoffset + topoffset * topoffset);
|
||||||
|
if (dist < curdist)
|
||||||
|
{
|
||||||
|
curdist = dist;
|
||||||
|
curleft = coords[i];
|
||||||
|
curtop = coords[i+1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// If we found a satisfactory offset, let's use it.
|
||||||
|
if (curdist < Infinity)
|
||||||
|
{
|
||||||
|
leftpos += curleft;
|
||||||
|
toppos += curtop;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (e) {} //badly formed document, or shape == "default" in which case we don't move the hint
|
||||||
|
}
|
||||||
|
|
||||||
|
span.style.left = leftpos + "px";
|
||||||
|
span.style.top = toppos + "px";
|
||||||
fragment.appendChild(span);
|
fragment.appendChild(span);
|
||||||
|
|
||||||
pageHints.push([elem, text, span, null, elem.style.backgroundColor, elem.style.color]);
|
pageHints.push([elem, text, span, null, elem.style.backgroundColor, elem.style.color]);
|
||||||
|
|||||||
@@ -250,7 +250,7 @@ function IO() //{{{
|
|||||||
|
|
||||||
if (!found)
|
if (!found)
|
||||||
{
|
{
|
||||||
liberator.echoerr("E344: Can't find directory " + arg.quote() + " in cdpath\n"
|
liberator.echoerr("E344: Can't find directory \"" + arg + "\" in cdpath\n"
|
||||||
+ "E472: Command failed");
|
+ "E472: Command failed");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -283,7 +283,7 @@ function IO() //{{{
|
|||||||
|
|
||||||
if (file.exists() && !args.bang)
|
if (file.exists() && !args.bang)
|
||||||
{
|
{
|
||||||
liberator.echoerr("E189: " + filename.quote() + " exists (add ! to override)");
|
liberator.echoerr("E189: \"" + filename + "\" exists (add ! to override)");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -302,7 +302,7 @@ function IO() //{{{
|
|||||||
}
|
}
|
||||||
catch (e)
|
catch (e)
|
||||||
{
|
{
|
||||||
liberator.echoerr("E190: Cannot open " + filename.quote() + " for writing");
|
liberator.echoerr("E190: Cannot open \"" + filename + "\" for writing");
|
||||||
liberator.log("Could not write to " + file.path + ": " + e.message); // XXX
|
liberator.log("Could not write to " + file.path + ": " + e.message); // XXX
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -524,7 +524,7 @@ function IO() //{{{
|
|||||||
|
|
||||||
if (!dir.exists() || !dir.isDirectory())
|
if (!dir.exists() || !dir.isDirectory())
|
||||||
{
|
{
|
||||||
liberator.echoerr("E344: Can't find directory " + dir.path.quote() + " in path");
|
liberator.echoerr("E344: Can't find directory \"" + dir.path + "\" in path");
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -555,6 +555,7 @@ function IO() //{{{
|
|||||||
*
|
*
|
||||||
* @param {string} dir The directory to search.
|
* @param {string} dir The directory to search.
|
||||||
* @default $HOME.
|
* @default $HOME.
|
||||||
|
* @returns {nsIFile} The RC file or null if none is found.
|
||||||
*/
|
*/
|
||||||
getRCFile: function (dir)
|
getRCFile: function (dir)
|
||||||
{
|
{
|
||||||
@@ -842,7 +843,7 @@ lookup:
|
|||||||
let found = false;
|
let found = false;
|
||||||
|
|
||||||
// FIXME: should use original arg string
|
// FIXME: should use original arg string
|
||||||
liberator.echomsg("Searching for " + paths.join(" ").quote() + " in " + options["runtimepath"].quote(), 2);
|
liberator.echomsg("Searching for \"" + paths.join(" ") + "\" in \"" + options["runtimepath"] + "\"", 2);
|
||||||
|
|
||||||
outer:
|
outer:
|
||||||
for (let [,dir] in Iterator(dirs))
|
for (let [,dir] in Iterator(dirs))
|
||||||
@@ -851,7 +852,7 @@ lookup:
|
|||||||
{
|
{
|
||||||
let file = joinPaths(dir, path);
|
let file = joinPaths(dir, path);
|
||||||
|
|
||||||
liberator.echomsg("Searching for " + file.path.quote(), 3);
|
liberator.echomsg("Searching for \"" + file.path + "\"", 3);
|
||||||
|
|
||||||
if (file.exists() && file.isFile() && file.isReadable())
|
if (file.exists() && file.isFile() && file.isReadable())
|
||||||
{
|
{
|
||||||
@@ -865,7 +866,7 @@ lookup:
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!found)
|
if (!found)
|
||||||
liberator.echomsg("not found in 'runtimepath': " + paths.join(" ").quote(), 1); // FIXME: should use original arg string
|
liberator.echomsg("not found in 'runtimepath': \"" + paths.join(" ") + "\"", 1); // FIXME: should use original arg string
|
||||||
|
|
||||||
return found;
|
return found;
|
||||||
},
|
},
|
||||||
@@ -892,9 +893,9 @@ lookup:
|
|||||||
if (!silent)
|
if (!silent)
|
||||||
{
|
{
|
||||||
if (file.exists() && file.isDirectory())
|
if (file.exists() && file.isDirectory())
|
||||||
liberator.echomsg("Cannot source a directory: " + filename.quote(), 0);
|
liberator.echomsg("Cannot source a directory: \"" + filename + "\"", 0);
|
||||||
else
|
else
|
||||||
liberator.echomsg("could not source: " + filename.quote(), 1);
|
liberator.echomsg("could not source: \"" + filename + "\"", 1);
|
||||||
|
|
||||||
liberator.echoerr("E484: Can't open file " + filename);
|
liberator.echoerr("E484: Can't open file " + filename);
|
||||||
}
|
}
|
||||||
@@ -902,7 +903,7 @@ lookup:
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
liberator.echomsg("sourcing " + filename.quote(), 2);
|
liberator.echomsg("sourcing \"" + filename + "\"", 2);
|
||||||
|
|
||||||
let str = self.readFile(file);
|
let str = self.readFile(file);
|
||||||
let uri = services.get("io").newFileURI(file);
|
let uri = services.get("io").newFileURI(file);
|
||||||
@@ -1012,7 +1013,7 @@ lookup:
|
|||||||
if (scriptNames.indexOf(file.path) == -1)
|
if (scriptNames.indexOf(file.path) == -1)
|
||||||
scriptNames.push(file.path);
|
scriptNames.push(file.path);
|
||||||
|
|
||||||
liberator.echomsg("finished sourcing " + filename.quote(), 2);
|
liberator.echomsg("finished sourcing \"" + filename + "\"", 2);
|
||||||
|
|
||||||
liberator.log("Sourced: " + filename, 3);
|
liberator.log("Sourced: " + filename, 3);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -268,7 +268,7 @@ const liberator = (function () //{{{
|
|||||||
|
|
||||||
for (let [,dialog] in Iterator(dialogs))
|
for (let [,dialog] in Iterator(dialogs))
|
||||||
{
|
{
|
||||||
if (arg == dialog[0])
|
if (util.compareIgnoreCase(arg, dialog[0]) == 0)
|
||||||
{
|
{
|
||||||
dialog[2]();
|
dialog[2]();
|
||||||
return;
|
return;
|
||||||
@@ -285,7 +285,11 @@ const liberator = (function () //{{{
|
|||||||
{
|
{
|
||||||
argCount: "1",
|
argCount: "1",
|
||||||
bang: true,
|
bang: true,
|
||||||
completer: function (context, args) completion.dialog(context)
|
completer: function (context)
|
||||||
|
{
|
||||||
|
context.ignoreCase = true;
|
||||||
|
return completion.dialog(context);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
commands.add(["em[enu]"],
|
commands.add(["em[enu]"],
|
||||||
@@ -1029,11 +1033,11 @@ const liberator = (function () //{{{
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
liberator.echomsg('Searching for "plugin/**/*.{js,vimp}" in '
|
liberator.echomsg('Searching for "plugin/**/*.{js,vimp}" in "'
|
||||||
+ [dir.path.replace(/.plugin$/, "") for each (dir in dirs)].join(",").quote(), 2);
|
+ [dir.path.replace(/.plugin$/, "") for each (dir in dirs)].join(",") + '"', 2);
|
||||||
|
|
||||||
dirs.forEach(function (dir) {
|
dirs.forEach(function (dir) {
|
||||||
liberator.echomsg("Searching for " + (dir.path + "/**/*.{js,vimp}").quote(), 3);
|
liberator.echomsg("Searching for \"" + (dir.path + "/**/*.{js,vimp}") + "\"", 3);
|
||||||
sourceDirectory(dir);
|
sourceDirectory(dir);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
@@ -1291,12 +1295,12 @@ const liberator = (function () //{{{
|
|||||||
setTimeout(function () {
|
setTimeout(function () {
|
||||||
|
|
||||||
let init = services.get("environment").get(config.name.toUpperCase() + "_INIT");
|
let init = services.get("environment").get(config.name.toUpperCase() + "_INIT");
|
||||||
|
let rcFile = io.getRCFile("~");
|
||||||
|
|
||||||
if (init)
|
if (init)
|
||||||
liberator.execute(init);
|
liberator.execute(init);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
let rcFile = io.getRCFile("~");
|
|
||||||
|
|
||||||
if (rcFile)
|
if (rcFile)
|
||||||
io.source(rcFile.path, true);
|
io.source(rcFile.path, true);
|
||||||
else
|
else
|
||||||
@@ -1306,7 +1310,7 @@ const liberator = (function () //{{{
|
|||||||
if (options["exrc"])
|
if (options["exrc"])
|
||||||
{
|
{
|
||||||
let localRCFile = io.getRCFile(io.getCurrentDirectory().path);
|
let localRCFile = io.getRCFile(io.getCurrentDirectory().path);
|
||||||
if (localRCFile)
|
if (localRCFile && !localRCFile.equals(rcFile))
|
||||||
io.source(localRCFile.path, true);
|
io.source(localRCFile.path, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1421,16 +1425,24 @@ window.liberator = liberator;
|
|||||||
// FIXME: Ugly, etc.
|
// FIXME: Ugly, etc.
|
||||||
window.addEventListener("liberatorHelpLink", function (event) {
|
window.addEventListener("liberatorHelpLink", function (event) {
|
||||||
let elem = event.target;
|
let elem = event.target;
|
||||||
|
|
||||||
if (/^(option|mapping|command)$/.test(elem.className))
|
if (/^(option|mapping|command)$/.test(elem.className))
|
||||||
var tag = elem.textContent.replace(/\s.*/, "");
|
var tag = elem.textContent.replace(/\s.*/, "");
|
||||||
|
if (/^(mapping|command)$/.test(elem.className))
|
||||||
|
tag = tag.replace(/^\d+/, "");
|
||||||
if (elem.className == "command")
|
if (elem.className == "command")
|
||||||
tag = tag.replace(/\[.*?\]/g, "");
|
tag = tag.replace(/\[.*?\]/g, "").replace(/!$/, "");
|
||||||
|
|
||||||
if (tag)
|
if (tag)
|
||||||
var page = liberator.findHelp(tag);
|
var page = liberator.findHelp(tag);
|
||||||
|
|
||||||
if (page)
|
if (page)
|
||||||
|
{
|
||||||
elem.href = "chrome://liberator/locale/" + page;
|
elem.href = "chrome://liberator/locale/" + page;
|
||||||
},
|
if (buffer.URL.replace(/#.*/, "") == elem.href.replace(/#.*/, "")) // XXX
|
||||||
true, true);
|
setTimeout(function () { content.postMessage("fragmentChange", "*"); }, 0);
|
||||||
|
}
|
||||||
|
}, true, true);
|
||||||
|
|
||||||
// called when the chrome is fully loaded and before the main window is shown
|
// called when the chrome is fully loaded and before the main window is shown
|
||||||
window.addEventListener("load", liberator.startup, false);
|
window.addEventListener("load", liberator.startup, false);
|
||||||
|
|||||||
@@ -626,6 +626,7 @@ function Tabs() //{{{
|
|||||||
completer: function (context)
|
completer: function (context)
|
||||||
{
|
{
|
||||||
context.anchored = false;
|
context.anchored = false;
|
||||||
|
context.compare = CompletionContext.Sort.unsorted;
|
||||||
context.keys = { text: function (item) item.state.entries[0].url, description: "title" };
|
context.keys = { text: function (item) item.state.entries[0].url, description: "title" };
|
||||||
context.completions = tabs.closedTabs;
|
context.completions = tabs.closedTabs;
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -224,6 +224,7 @@ const template = {
|
|||||||
return s + <>{str.substr(start)}</>;
|
return s + <>{str.substr(start)}</>;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// FIXME: why is href="#"?
|
||||||
highlightURL: function highlightURL(str, force)
|
highlightURL: function highlightURL(str, force)
|
||||||
{
|
{
|
||||||
if (force || /^[a-zA-Z]+:\/\//.test(str))
|
if (force || /^[a-zA-Z]+:\/\//.test(str))
|
||||||
@@ -263,7 +264,7 @@ const template = {
|
|||||||
<td class="indicator">{idx == index ? ">" : ""}</td>
|
<td class="indicator">{idx == index ? ">" : ""}</td>
|
||||||
<td>{Math.abs(idx - index)}</td>
|
<td>{Math.abs(idx - index)}</td>
|
||||||
<td style="width: 250px; max-width: 500px; overflow: hidden;">{val.title}</td>
|
<td style="width: 250px; max-width: 500px; overflow: hidden;">{val.title}</td>
|
||||||
<td><a href="#" highlight="URL jump-list">{val.URI.spec}</a></td>
|
<td><a href={val.URI.spec} highlight="URL jump-list">{val.URI.spec}</a></td>
|
||||||
</tr>)
|
</tr>)
|
||||||
}
|
}
|
||||||
</table>);
|
</table>);
|
||||||
|
|||||||
@@ -1210,7 +1210,7 @@ function CommandLine() //{{{
|
|||||||
submit: callback,
|
submit: callback,
|
||||||
change: extra.onChange,
|
change: extra.onChange,
|
||||||
complete: extra.completer,
|
complete: extra.completer,
|
||||||
cancel: extra.onCancel,
|
cancel: extra.onCancel
|
||||||
};
|
};
|
||||||
|
|
||||||
modes.push(modes.COMMAND_LINE, modes.PROMPT);
|
modes.push(modes.COMMAND_LINE, modes.PROMPT);
|
||||||
@@ -1282,20 +1282,17 @@ function CommandLine() //{{{
|
|||||||
}
|
}
|
||||||
else if (event.type == "input")
|
else if (event.type == "input")
|
||||||
{
|
{
|
||||||
//liberator.dump("input: " + command);
|
|
||||||
this.resetCompletions();
|
this.resetCompletions();
|
||||||
liberator.triggerCallback("change", currentExtendedMode, command);
|
liberator.triggerCallback("change", currentExtendedMode, command);
|
||||||
}
|
}
|
||||||
else if (event.type == "keypress")
|
else if (event.type == "keypress")
|
||||||
{
|
{
|
||||||
|
let key = events.toString(event);
|
||||||
if (completions)
|
if (completions)
|
||||||
completions.previewClear();
|
completions.previewClear();
|
||||||
if (!currentExtendedMode)
|
if (!currentExtendedMode)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
let key = events.toString(event);
|
|
||||||
//liberator.log("command line handling key: " + key + "\n");
|
|
||||||
|
|
||||||
// user pressed ENTER to carry out a command
|
// user pressed ENTER to carry out a command
|
||||||
// user pressing ESCAPE is handled in the global onEscape
|
// user pressing ESCAPE is handled in the global onEscape
|
||||||
// FIXME: <Esc> should trigger "cancel" event
|
// FIXME: <Esc> should trigger "cancel" event
|
||||||
@@ -1412,25 +1409,53 @@ function CommandLine() //{{{
|
|||||||
let closeWindow = false;
|
let closeWindow = false;
|
||||||
let passEvent = false;
|
let passEvent = false;
|
||||||
|
|
||||||
function isScrollable() !win.scrollMaxY == 0;
|
let key = events.toString(event);
|
||||||
function atEnd() win.scrollY / win.scrollMaxY >= 1;
|
|
||||||
|
|
||||||
if (event.type == "click")
|
// TODO: Wouldn't multiple handlers be cleaner? --djk
|
||||||
|
if (event.type == "click" && event.target instanceof HTMLAnchorElement)
|
||||||
{
|
{
|
||||||
if (event.target instanceof HTMLAnchorElement && event.button < 2)
|
function openLink(where)
|
||||||
{
|
{
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
let target = event.button == 0 ? liberator.CURRENT_TAB : liberator.NEW_TAB;
|
// FIXME: Why is this needed? --djk
|
||||||
if (event.target.getAttribute("href") == "#")
|
if (event.target.getAttribute("href") == "#")
|
||||||
liberator.open(event.target.textContent, target);
|
liberator.open(event.target.textContent, where);
|
||||||
else
|
else
|
||||||
liberator.open(event.target.href, target);
|
liberator.open(event.target.href, where);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
switch (key)
|
||||||
|
{
|
||||||
|
case "<LeftMouse>":
|
||||||
|
// FIXME: the :ls output no longer wraps the buffer URL in an anchor element
|
||||||
|
if (event.originalTarget.getAttributeNS(NS.uri, "highlight") == "URL buffer-list")
|
||||||
|
{
|
||||||
|
event.preventDefault();
|
||||||
|
tabs.select(parseInt(event.originalTarget.parentNode.parentNode.firstChild.textContent, 10) - 1);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
openLink(liberator.CURRENT_TAB);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "<MiddleMouse>":
|
||||||
|
case "<C-LeftMouse>":
|
||||||
|
case "<C-M-LeftMouse>":
|
||||||
|
openLink(liberator.NEW_BACKGROUND_TAB);
|
||||||
|
break;
|
||||||
|
case "<S-MiddleMouse>":
|
||||||
|
case "<C-S-LeftMouse>":
|
||||||
|
case "<C-M-S-LeftMouse>":
|
||||||
|
openLink(liberator.NEW_TAB);
|
||||||
|
break;
|
||||||
|
case "<S-LeftMouse>":
|
||||||
|
openLink(liberator.NEW_WINDOW);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
let key = events.toString(event);
|
|
||||||
|
|
||||||
if (startHints)
|
if (startHints)
|
||||||
{
|
{
|
||||||
statusline.updateInputBuffer("");
|
statusline.updateInputBuffer("");
|
||||||
@@ -1439,6 +1464,9 @@ function CommandLine() //{{{
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function isScrollable() !win.scrollMaxY == 0;
|
||||||
|
function atEnd() win.scrollY / win.scrollMaxY >= 1;
|
||||||
|
|
||||||
switch (key)
|
switch (key)
|
||||||
{
|
{
|
||||||
case "<Esc>":
|
case "<Esc>":
|
||||||
@@ -1488,34 +1516,6 @@ function CommandLine() //{{{
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
// TODO: <LeftMouse> on the prompt line should scroll one page
|
// TODO: <LeftMouse> on the prompt line should scroll one page
|
||||||
case "<LeftMouse>":
|
|
||||||
if (event.originalTarget.getAttributeNS(NS.uri, "highlight") == "URL buffer-list")
|
|
||||||
{
|
|
||||||
tabs.select(parseInt(event.originalTarget.parentNode.parentNode.firstChild.textContent, 10) - 1);
|
|
||||||
closeWindow = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
else if (event.originalTarget.localName.toLowerCase() == "a")
|
|
||||||
{
|
|
||||||
liberator.open(event.originalTarget.textContent);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case "<A-LeftMouse>": // for those not owning a 3-button mouse
|
|
||||||
case "<MiddleMouse>":
|
|
||||||
if (event.originalTarget.localName.toLowerCase() == "a")
|
|
||||||
{
|
|
||||||
let where = /\btabopen\b/.test(options["activate"]) ?
|
|
||||||
liberator.NEW_TAB : liberator.NEW_BACKGROUND_TAB;
|
|
||||||
liberator.open(event.originalTarget.textContent, where);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
// let Firefox handle those to select table cells or show a context menu
|
|
||||||
case "<C-LeftMouse>":
|
|
||||||
case "<RightMouse>":
|
|
||||||
case "<C-S-LeftMouse>":
|
|
||||||
break;
|
|
||||||
|
|
||||||
// page down
|
// page down
|
||||||
case "f":
|
case "f":
|
||||||
if (options["more"] && isScrollable())
|
if (options["more"] && isScrollable())
|
||||||
@@ -1606,7 +1606,7 @@ function CommandLine() //{{{
|
|||||||
if (passEvent)
|
if (passEvent)
|
||||||
events.onKeyPress(event);
|
events.onKeyPress(event);
|
||||||
}
|
}
|
||||||
else // set update the prompt string
|
else
|
||||||
{
|
{
|
||||||
commandline.updateMorePrompt(showMorePrompt, showMoreHelpPrompt);
|
commandline.updateMorePrompt(showMorePrompt, showMoreHelpPrompt);
|
||||||
}
|
}
|
||||||
@@ -1710,7 +1710,7 @@ function ItemList(id) //{{{
|
|||||||
if (!iframe)
|
if (!iframe)
|
||||||
{
|
{
|
||||||
liberator.log("No iframe with id: " + id + " found, strange things may happen!"); // "The truth is out there..." -- djk
|
liberator.log("No iframe with id: " + id + " found, strange things may happen!"); // "The truth is out there..." -- djk
|
||||||
return;
|
return; // XXX
|
||||||
}
|
}
|
||||||
|
|
||||||
function dom(xml, map) util.xmlToDom(xml, doc, map);
|
function dom(xml, map) util.xmlToDom(xml, doc, map);
|
||||||
|
|||||||
@@ -577,7 +577,7 @@ const util = { //{{{
|
|||||||
*/
|
*/
|
||||||
readFromClipboard: function readFromClipboard()
|
readFromClipboard: function readFromClipboard()
|
||||||
{
|
{
|
||||||
let url;
|
let str;
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@@ -599,12 +599,12 @@ const util = { //{{{
|
|||||||
if (data)
|
if (data)
|
||||||
{
|
{
|
||||||
data = data.value.QueryInterface(Ci.nsISupportsString);
|
data = data.value.QueryInterface(Ci.nsISupportsString);
|
||||||
url = data.data.substring(0, dataLen.value / 2);
|
str = data.data.substring(0, dataLen.value / 2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (e) {}
|
catch (e) {}
|
||||||
|
|
||||||
return url;
|
return str;
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ Developers:
|
|||||||
* anekos <anekos@snca.net>
|
* anekos <anekos@snca.net>
|
||||||
* teramako <teramako@gmail.com>
|
* teramako <teramako@gmail.com>
|
||||||
* janus_wel <janus.wel.3@gmail.com>
|
* janus_wel <janus.wel.3@gmail.com>
|
||||||
|
* Conrad Irwin
|
||||||
|
|
||||||
Inactive/former developers:
|
Inactive/former developers:
|
||||||
* Viktor Kojouharov (Виктор Кожухаров)
|
* Viktor Kojouharov (Виктор Кожухаров)
|
||||||
|
|||||||
@@ -1,7 +1,13 @@
|
|||||||
Contiuous donations:
|
Continuous donations:
|
||||||
* Daniel Bainton (web hosting)
|
* Daniel Bainton (web hosting)
|
||||||
|
|
||||||
2009:
|
2009:
|
||||||
|
* Gavin Sinclair
|
||||||
|
* Stephen Borchert
|
||||||
|
* Convolution
|
||||||
|
* Brian Hall
|
||||||
|
* Daniel Hahler
|
||||||
|
* Per-Henrik Lundblom
|
||||||
* David C Foor
|
* David C Foor
|
||||||
* Oliver Schaefer
|
* Oliver Schaefer
|
||||||
* Paul Moss
|
* Paul Moss
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#### configuration
|
#### configuration
|
||||||
|
|
||||||
VERSION = 2.0b2pre
|
VERSION = 2.0b4pre
|
||||||
NAME = vimperator
|
NAME = vimperator
|
||||||
|
|
||||||
include ../common/Makefile.common
|
include ../common/Makefile.common
|
||||||
|
|||||||
@@ -81,6 +81,7 @@
|
|||||||
* :qa! and :q! quit forcefully, as in vim
|
* :qa! and :q! quit forcefully, as in vim
|
||||||
* stop macro playback on <C-c>
|
* stop macro playback on <C-c>
|
||||||
* :bmark now updates a bookmark, if possible. :bmark! adds a new one
|
* :bmark now updates a bookmark, if possible. :bmark! adds a new one
|
||||||
|
* :dialog and :sidebar arguments are now case-insensitive
|
||||||
* many bug fixes
|
* many bug fixes
|
||||||
|
|
||||||
2008-08-16:
|
2008-08-16:
|
||||||
|
|||||||
@@ -17,15 +17,12 @@ BUGS:
|
|||||||
- insert abbreviations broken on <space>
|
- insert abbreviations broken on <space>
|
||||||
- :sidebar improvements (:sidebar! Downloads while downloads is open should refocus the sidebar)
|
- :sidebar improvements (:sidebar! Downloads while downloads is open should refocus the sidebar)
|
||||||
- ;s saves the page rather than the image
|
- ;s saves the page rather than the image
|
||||||
- http://cgiirc.blitzed.org?chan=%23debug is unusable after login in
|
|
||||||
- "g<" fails without a trailing escape because both "g<" and "g<C-g>"
|
- "g<" fails without a trailing escape because both "g<" and "g<C-g>"
|
||||||
are mapped. Vimp should recognize "<C-g>" as an atom that should not
|
are mapped. Vimp should recognize "<C-g>" as an atom that should not
|
||||||
be matched literally. In fact, typing "g<C-g>" out literally is
|
be matched literally. In fact, typing "g<C-g>" out literally is
|
||||||
equivalent to typing "g" and then <C-g>.
|
equivalent to typing "g" and then <C-g>.
|
||||||
|
|
||||||
(recent CVS regressions):
|
(recent CVS regressions):
|
||||||
- :set noflashblock seems broken (= :set fb? afterwards says "fb"), let's see if that's a
|
|
||||||
plugin or a vimp issue.
|
|
||||||
- visual caret mode is broken, requires a manual page focus first anyway or
|
- visual caret mode is broken, requires a manual page focus first anyway or
|
||||||
else it chucks, I haven't investigated --djk
|
else it chucks, I haven't investigated --djk
|
||||||
- messages is still broken in several ways - needs testing.
|
- messages is still broken in several ways - needs testing.
|
||||||
@@ -33,16 +30,13 @@ BUGS:
|
|||||||
=> it often overwrites the open command line while editing etc.
|
=> it often overwrites the open command line while editing etc.
|
||||||
- <tags> and <keyword> autocmd 'keywords' are not available when adding a
|
- <tags> and <keyword> autocmd 'keywords' are not available when adding a
|
||||||
bookmark - they're being set after the observer triggers the autocmd event.
|
bookmark - they're being set after the observer triggers the autocmd event.
|
||||||
- MOW rendering is broken for multiple commands when open E.g. :ls | ls
|
- MOW rendering is broken for multiple commands when open (E.g. :ls | ls) This
|
||||||
- completion height is broken, try :a<tab>....<tab>, when it wraps it's totally off.
|
appears to be the result of using the Message class when appending multiline
|
||||||
and even if it is not totally off, i had it jump by one pixel when wrapping around.
|
output to an open MOW.
|
||||||
If that's unfixable, i propose reverting the new completion height stuff.
|
|
||||||
- Windows paths have escaped backslashes in messages - presumably due to
|
|
||||||
String#quote change.
|
|
||||||
- :messages is _very_ slow for message history of several thousand lines ->
|
- :messages is _very_ slow for message history of several thousand lines ->
|
||||||
Unresponsive Script: util.js:79 (sometimes xmlToDom() and elsewhere)
|
Unresponsive Script: util.js:79 (sometimes xmlToDom() and elsewhere)
|
||||||
- :hardcopy! seems to be broken for me
|
- The MOW shouldn't close when executing hints and ;F isn't working.
|
||||||
- MOW hinting is broken, perhaps this should be properly disabled for 2.0
|
- URLs in :ls output are no longer hyperlinks
|
||||||
|
|
||||||
FEATURES:
|
FEATURES:
|
||||||
9 finish :help TODOs
|
9 finish :help TODOs
|
||||||
|
|||||||
@@ -737,6 +737,7 @@ function History() //{{{
|
|||||||
context.anchored = false;
|
context.anchored = false;
|
||||||
context.completions = [sh.getEntryAtIndex(i, false) for (i in util.range(sh.index, 0, -1))];
|
context.completions = [sh.getEntryAtIndex(i, false) for (i in util.range(sh.index, 0, -1))];
|
||||||
context.keys = { text: function (item) item.URI.spec, description: "title" };
|
context.keys = { text: function (item) item.URI.spec, description: "title" };
|
||||||
|
context.compare = CompletionContext.Sort.unsorted;
|
||||||
},
|
},
|
||||||
count: true,
|
count: true,
|
||||||
literal: 0
|
literal: 0
|
||||||
@@ -783,6 +784,7 @@ function History() //{{{
|
|||||||
context.anchored = false;
|
context.anchored = false;
|
||||||
context.completions = [sh.getEntryAtIndex(i, false) for (i in util.range(sh.index + 1, sh.count))];
|
context.completions = [sh.getEntryAtIndex(i, false) for (i in util.range(sh.index + 1, sh.count))];
|
||||||
context.keys = { text: function (item) item.URI.spec, description: "title" };
|
context.keys = { text: function (item) item.URI.spec, description: "title" };
|
||||||
|
context.compare = CompletionContext.Sort.unsorted;
|
||||||
},
|
},
|
||||||
count: true,
|
count: true,
|
||||||
literal: 0
|
literal: 0
|
||||||
|
|||||||
@@ -372,9 +372,10 @@ const config = { //{{{
|
|||||||
function (args)
|
function (args)
|
||||||
{
|
{
|
||||||
let arg = args.literalArg;
|
let arg = args.literalArg;
|
||||||
|
function compare(a, b) util.compareIgnoreCase(a, b) == 0
|
||||||
|
|
||||||
// focus if the requested sidebar is already open
|
// focus if the requested sidebar is already open
|
||||||
if (document.getElementById("sidebar-title").value == arg)
|
if (compare(document.getElementById("sidebar-title").value, arg))
|
||||||
{
|
{
|
||||||
document.getElementById("sidebar-box").focus();
|
document.getElementById("sidebar-box").focus();
|
||||||
return;
|
return;
|
||||||
@@ -384,7 +385,7 @@ const config = { //{{{
|
|||||||
|
|
||||||
for (let [,panel] in Iterator(menu.childNodes))
|
for (let [,panel] in Iterator(menu.childNodes))
|
||||||
{
|
{
|
||||||
if (panel.label == arg)
|
if (compare(panel.label, arg))
|
||||||
{
|
{
|
||||||
panel.doCommand();
|
panel.doCommand();
|
||||||
return;
|
return;
|
||||||
@@ -395,7 +396,11 @@ const config = { //{{{
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
argCount: "1",
|
argCount: "1",
|
||||||
completer: function (context) completion.sidebar(context),
|
completer: function (context)
|
||||||
|
{
|
||||||
|
context.ignoreCase = true;
|
||||||
|
return completion.sidebar(context);
|
||||||
|
},
|
||||||
literal: 0
|
literal: 0
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -233,9 +233,12 @@ zoom range (default: 30%--300%). The zoom levels are used by
|
|||||||
default zoom levels are 30%, 50%, 67%, 80%, 90%, 100%, 110%, 120%, 133%, 150%,
|
default zoom levels are 30%, 50%, 67%, 80%, 90%, 100%, 110%, 120%, 133%, 150%,
|
||||||
170%, 200%, 240%, 300%.
|
170%, 200%, 240%, 300%.
|
||||||
|
|
||||||
The available zoom range can be changed by setting the \'zoom.minPercent' and
|
The available zoom range can be changed by setting the
|
||||||
\'zoom.maxPercent' Firefox preferences. The zoom levels can be changed using
|
\'http://kb.mozillazine.org/Zoom.minPercent[zoom.minPercent]' and
|
||||||
the \'toolkit.ZoomManager.zoomLevels' preference.
|
\'http://kb.mozillazine.org/Zoom.minPercent[zoom.maxPercent]' Firefox
|
||||||
|
preferences. The zoom levels can be changed using the
|
||||||
|
\'http://kb.mozillazine.org/Toolkit.zoomManager.zoomValues[toolkit.ZoomManager.zoomLevels]'
|
||||||
|
preference.
|
||||||
|
|
||||||
Note: \'toolkit.ZoomManager.zoomLevels' is specified as a list of values
|
Note: \'toolkit.ZoomManager.zoomLevels' is specified as a list of values
|
||||||
between 0 and 1, not as a percentage.
|
between 0 and 1, not as a percentage.
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ HEADER
|
|||||||
|
|
||||||
|Command-line-mode| |Command-line| |mode-cmdline| +
|
|Command-line-mode| |Command-line| |mode-cmdline| +
|
||||||
|
|
||||||
Command-line mode is used to enter Ex commands (":") and text search patterns
|
Command-line mode is used to enter Ex commands ("[m]:[m]") and text search patterns
|
||||||
("/" and "?").
|
("[m]/[m]" and "[m]?[m]").
|
||||||
|
|
||||||
|:| +
|
|:| +
|
||||||
||:||
|
||:||
|
||||||
@@ -25,7 +25,7 @@ ________________________________________________________________________________
|
|||||||
|c_<C-]>| +
|
|c_<C-]>| +
|
||||||
||<C-]>||
|
||<C-]>||
|
||||||
________________________________________________________________________________
|
________________________________________________________________________________
|
||||||
Expand a Command-line abbreviation.
|
Expand a command-line abbreviation.
|
||||||
________________________________________________________________________________
|
________________________________________________________________________________
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ function checkFragment()
|
|||||||
return;
|
return;
|
||||||
let elem = document.evaluate('//*[@class="tag" and text()="' + frag + '"]', document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null).snapshotItem(0);
|
let elem = document.evaluate('//*[@class="tag" and text()="' + frag + '"]', document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null).snapshotItem(0);
|
||||||
if (elem)
|
if (elem)
|
||||||
window.content.scrollTo(0, elem.getBoundingClientRect().top - 10); // 10px context
|
window.content.scrollTo(0, window.content.scrollY + elem.getBoundingClientRect().top - 10); // 10px context
|
||||||
}
|
}
|
||||||
|
|
||||||
document.addEventListener("load", checkFragment, true);
|
document.addEventListener("load", checkFragment, true);
|
||||||
|
|||||||
@@ -20,13 +20,17 @@ are hidden. +
|
|||||||
If you really need them, type: [c]:set guioptions+=mT[c] to get them back. +
|
If you really need them, type: [c]:set guioptions+=mT[c] to get them back. +
|
||||||
If you don't like Vimperator at all, you can uninstall it by typing
|
If you don't like Vimperator at all, you can uninstall it by typing
|
||||||
[c]:addons[c] and remove/disable it. +
|
[c]:addons[c] and remove/disable it. +
|
||||||
If you like it but can't remember the shortcuts, then press [m]F1[m] or
|
If you like it but can't remember the shortcuts, then press [m]<F1>[m] or
|
||||||
[c]:help[c] to get this help window back.
|
[c]:help[c] to get this help window back.
|
||||||
|
|
||||||
|author| |donation| +
|
|author| |donation| +
|
||||||
Vimperator was written by mailto:stubenschrott@gmx.net[Martin Stubenschrott].
|
Vimperator was initially written by mailto:stubenschrott@gmx.net[Martin
|
||||||
If you appreciate my work on Vimperator and want to encourage me working on it
|
Stubenschrott] but has found many other
|
||||||
more, you can either send me greetings, patches or make a donation:
|
http://vimperator.org/trac/wiki/Vimperator/Authors[contributors] in the
|
||||||
|
meanwhile. If you appreciate the work on Vimperator and want to encourage us
|
||||||
|
working on it more, you can send us greetings, patches, or donations (thanks a
|
||||||
|
lot to http://vimperator.org/trac/wiki/Vimperator/Donors[these people] who
|
||||||
|
already did):
|
||||||
|
|
||||||
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
<!-- the PAYPAL code -->
|
<!-- the PAYPAL code -->
|
||||||
@@ -37,9 +41,11 @@ more, you can either send me greetings, patches or make a donation:
|
|||||||
</fieldset></form>
|
</fieldset></form>
|
||||||
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
|
||||||
Of course as a believer in free open source software, only make a donation
|
If you prefer getting some nice products for your money, you can also support
|
||||||
if you really like Vimperator and the money doesn't hurt -- otherwise just use
|
us by buying some cool http://www.zazzle.com/maxauthority*[merchandise] like
|
||||||
it, recommend it and like it :)
|
t-shirts or mugs. Of course, as we believe in free, open source software, only
|
||||||
|
support us financially if you really like Vimperator and the money doesn't hurt
|
||||||
|
- otherwise just use it, recommend it, and like it :)
|
||||||
|
|
||||||
section:Help{nbsp}topics[overview]
|
section:Help{nbsp}topics[overview]
|
||||||
|
|
||||||
@@ -94,7 +100,7 @@ section:Features[features]
|
|||||||
with support for Firefox keyword bookmarks and search engines
|
with support for Firefox keyword bookmarks and search engines
|
||||||
* Count supported for many commands ([m]3<C-o>[m] will go back 3 pages)
|
* Count supported for many commands ([m]3<C-o>[m] will go back 3 pages)
|
||||||
* Beep on errors
|
* Beep on errors
|
||||||
* Marks support ([m]ma[m] to set mark a on a web page, [m]'a[m] to go there)
|
* Marks support ([m]m[m][a]a[a] to set mark a on a web page, [m]'[m][a]a[a] to go there)
|
||||||
* QuickMarks support (quickly go to previously marked web pages with [m]go[m][a]\\{a-zA-Z0-9\\}[a])
|
* QuickMarks support (quickly go to previously marked web pages with [m]go[m][a]\\{a-zA-Z0-9\\}[a])
|
||||||
* [c]:map[c] and [c]:command[c] support (and feedkeys() for script writers)
|
* [c]:map[c] and [c]:command[c] support (and feedkeys() for script writers)
|
||||||
* [c]:time[c] support for profiling
|
* [c]:time[c] support for profiling
|
||||||
@@ -106,10 +112,13 @@ section:Features[features]
|
|||||||
|
|
||||||
section:Contact[contact]
|
section:Contact[contact]
|
||||||
|
|
||||||
Please send comments/bug reports/patches to the mailing list, where I will
|
Please send comments/bug reports/patches to the mailing list, where we will
|
||||||
properly answer any questions. You can also join the #vimperator IRC channel
|
properly answer any questions. You can also join the
|
||||||
on irc.freenode.net or check the Wiki for frequently asked questions. Make
|
+++<a href="irc://irc.freenode.net/vimperator">#vimperator</a>+++ IRC channel
|
||||||
sure, you have read the TODO file first, as I am aware of many things which
|
on http://www.freenode.net/[Freenode] or check the
|
||||||
can be improved when I find time for it or get patches.
|
http://vimperator.org/trac/wiki/Vimperator/Wiki[Wiki] for
|
||||||
|
http://vimperator.org/trac/wiki/Vimperator/FAQ[frequently asked questions
|
||||||
|
(FAQ)]. Make sure, you have read the TODO file first, as we are aware of many
|
||||||
|
things which can be improved when we find time for it or receive patches.
|
||||||
|
|
||||||
// vim: set filetype=asciidoc:
|
// vim: set filetype=asciidoc:
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ The key mapping commands can be used to either redefine the standard key
|
|||||||
bindings or define new ones. A mapping consists of a key, or sequence of keys,
|
bindings or define new ones. A mapping consists of a key, or sequence of keys,
|
||||||
which are translated to a string of characters. Example:
|
which are translated to a string of characters. Example:
|
||||||
|
|
||||||
:map <F2> :echo new Date().toDateString()<CR>
|
\{nbsp}[c]:map <F2> :echo new Date().toDateString()<CR>[c]
|
||||||
|
|
||||||
will echo the current date to the command line when [m]<F2>[m] is pressed.
|
will echo the current date to the command line when [m]<F2>[m] is pressed.
|
||||||
|
|
||||||
@@ -209,7 +209,7 @@ ________________________________________________________________________________
|
|||||||
||:ca[bbrev] {lhs}|| +
|
||:ca[bbrev] {lhs}|| +
|
||||||
||:ca[bbrev]||
|
||:ca[bbrev]||
|
||||||
________________________________________________________________________________
|
________________________________________________________________________________
|
||||||
Abbreviate a key sequence for Command-line mode. Same as [c]:ab[reviate][c],
|
Abbreviate a key sequence for Command-line mode. Same as [c]:ab[breviate][c],
|
||||||
but for Command-line mode only.
|
but for Command-line mode only.
|
||||||
________________________________________________________________________________
|
________________________________________________________________________________
|
||||||
|
|
||||||
@@ -406,7 +406,7 @@ section:Examples[command-examples]
|
|||||||
|
|
||||||
Add a :Google command to search via google:
|
Add a :Google command to search via google:
|
||||||
|
|
||||||
:command -nargs=* Google open google <args>
|
\{nbsp}[c]:command -nargs=* Google open google <args>[c]
|
||||||
|
|
||||||
// TODO: add decent examples
|
// TODO: add decent examples
|
||||||
|
|
||||||
|
|||||||
@@ -189,10 +189,10 @@ they can be changed to a different value in your RC file using
|
|||||||
|
|
||||||
The following preferences are set:
|
The following preferences are set:
|
||||||
|
|
||||||
* browser.startup.page
|
* http://kb.mozillazine.org/Browser.startup.page[browser.startup.page]
|
||||||
* dom.popup_allowed_events
|
* http://kb.mozillazine.org/Dom.popup_allowed_events[dom.popup_allowed_events]
|
||||||
* accessibility.typeaheadfind.autostart
|
* http://kb.mozillazine.org/Accessibility.typeaheadfind.autostart[accessibility.typeaheadfind.autostart]
|
||||||
* accessibility.typeaheadfind
|
* http://kb.mozillazine.org/Accessibility.typeaheadfind[accessibility.typeaheadfind]
|
||||||
|
|
||||||
// TODO: others?
|
// TODO: others?
|
||||||
|
|
||||||
@@ -233,11 +233,15 @@ Items which are completed at the [c]:[tab]open[c] prompt. Available items:
|
|||||||
*f* Local files
|
*f* Local files
|
||||||
*l* Firefox location bar entries (bookmarks and history sorted in an intelligent way)
|
*l* Firefox location bar entries (bookmarks and history sorted in an intelligent way)
|
||||||
*b* Bookmarks
|
*b* Bookmarks
|
||||||
|
*h* History
|
||||||
*S* Suggest engines
|
*S* Suggest engines
|
||||||
-------------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------------
|
||||||
|
|
||||||
The order is important, so [c]:set complete=bs[c] would list bookmarks first,
|
The order is important, so [c]:set complete=bs[c] would list bookmarks first,
|
||||||
and then any available quick searches.
|
and then any available quick searches.
|
||||||
|
|
||||||
|
Warning: Using *b* and *h* can make completion very slow if there are many
|
||||||
|
items.
|
||||||
____
|
____
|
||||||
|
|
||||||
|
|
||||||
@@ -262,7 +266,7 @@ ____
|
|||||||
||'editor'|| string (default: "gvim -f")
|
||'editor'|| string (default: "gvim -f")
|
||||||
____
|
____
|
||||||
Set the external text editor.
|
Set the external text editor.
|
||||||
Sets the editor to run when [m]<C-i>[m] is pressed in INSERT and TEXTAREA
|
Sets the editor to run when [m]<C-i>[m] is pressed in Insert and TextArea
|
||||||
modes.
|
modes.
|
||||||
|
|
||||||
Warning: Vimperator will not behave correctly if the editor forks its own
|
Warning: Vimperator will not behave correctly if the editor forks its own
|
||||||
@@ -738,6 +742,9 @@ ____
|
|||||||
____
|
____
|
||||||
Use visual bell instead of beeping on errors. The visual bell style is
|
Use visual bell instead of beeping on errors. The visual bell style is
|
||||||
controlled by [c]:hi Bell[c].
|
controlled by [c]:hi Bell[c].
|
||||||
|
|
||||||
|
To disable both the audible and visual bells use [c]:set visualbell[c] and
|
||||||
|
[c]:hi Bell display: none;[c]
|
||||||
____
|
____
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ Vimperator can repeat a number of commands and record macros.
|
|||||||
section:Macros[macros,complex-repeat]
|
section:Macros[macros,complex-repeat]
|
||||||
|
|
||||||
|q|
|
|q|
|
||||||
||q{0-9a-zA-Z}|| +
|
||q\\{0-9a-zA-Z}|| +
|
||||||
____________________________________________________________________________
|
____________________________________________________________________________
|
||||||
Record a key sequence into a macro.
|
Record a key sequence into a macro.
|
||||||
Available macros are {0-9a-zA-Z} (uppercase to append).
|
Available macros are {0-9a-zA-Z} (uppercase to append).
|
||||||
|
|||||||
@@ -105,7 +105,7 @@ ________________________________________________________________________________
|
|||||||
Add CSS styles to the browser or to web pages. {filter} is a comma
|
Add CSS styles to the browser or to web pages. {filter} is a comma
|
||||||
separated list of URLs to match. URLs ending with *\** are matched as
|
separated list of URLs to match. URLs ending with *\** are matched as
|
||||||
prefixes, URLs not containing any *:* or */* characters are
|
prefixes, URLs not containing any *:* or */* characters are
|
||||||
matched as domains. If {name} (short option: [c]-n[c]) is provided, any
|
matched as domains. If {name} (short option: *-n*) is provided, any
|
||||||
existing style with the same name is overridden, and the style may later
|
existing style with the same name is overridden, and the style may later
|
||||||
be deleted using {name}. If *-append* (short option: *-a*) is provided
|
be deleted using {name}. If *-append* (short option: *-a*) is provided
|
||||||
along with *-name*, {css} and {filter} are appended to its current
|
along with *-name*, {css} and {filter} are appended to its current
|
||||||
@@ -118,13 +118,12 @@ ________________________________________________________________________________
|
|||||||
||:dels[tyle] [-name={name}] [-index={index}] [{filter}] [{css}]|| +
|
||:dels[tyle] [-name={name}] [-index={index}] [{filter}] [{css}]|| +
|
||||||
________________________________________________________________________________
|
________________________________________________________________________________
|
||||||
Delete any matching styles. If {filter} is provided, only matching elements of
|
Delete any matching styles. If {filter} is provided, only matching elements of
|
||||||
the filter are disabled. For instance, a filter [c]mozilla.org[c], given a
|
the filter are disabled. For instance, a filter [a]mozilla.org[a], given a
|
||||||
style for [c]www.google.com,mozilla.org[c], will result in a style for
|
style for [a]www.google.com,mozilla.org[a], will result in a style for
|
||||||
[c]www.google.com[c]. The available options are:
|
[a]www.google.com[a]. The available options are:
|
||||||
|
|
||||||
* [c]-name[c]: The name provided to [c]:style[c] (short option:
|
* *-name*: The name provided to [c]:style[c] (short option: *-n*)
|
||||||
*-n*)
|
* *-index*: For unnamed styles, the index listed by [c]:style[c]
|
||||||
* [c]-index[c]: For unnamed styles, the index listed by [c]:style[c]
|
|
||||||
(short option: *-i*)
|
(short option: *-i*)
|
||||||
________________________________________________________________________________
|
________________________________________________________________________________
|
||||||
|
|
||||||
|
|||||||
@@ -22,8 +22,8 @@ If you're a veteran Vim user, this may look familiar. It should.
|
|||||||
|
|
||||||
However, in this author's opinion, the best way to get familiar with
|
However, in this author's opinion, the best way to get familiar with
|
||||||
Vimperator is to leave these disabled for now. (The above action can be
|
Vimperator is to leave these disabled for now. (The above action can be
|
||||||
reversed with [c]:set go=<CR>[c]) You can look at the entry for
|
reversed with [c]:set go=<CR>[c]) You can look at the entry for 'guioptions' in
|
||||||
[o]guioptions[o] in help:options[options.html] for more information on this.
|
help:options[options.html] for more information on this.
|
||||||
|
|
||||||
section:Vimperator's{nbsp}modal{nbsp}interface[modal]
|
section:Vimperator's{nbsp}modal{nbsp}interface[modal]
|
||||||
|
|
||||||
@@ -36,8 +36,8 @@ When Vimperator starts, it is in Normal mode by default. This is probably where
|
|||||||
you will spend the majority of your time.
|
you will spend the majority of your time.
|
||||||
|
|
||||||
The other core mode of Vimperator, Command-line mode, can be entered from
|
The other core mode of Vimperator, Command-line mode, can be entered from
|
||||||
Normal mode by typing a \':' (colon). You will frequently see Vimperator
|
Normal mode by typing a \'[m]:[m]' (colon). You will frequently see Vimperator
|
||||||
commands start with a \':', indicating that what follows is a command.
|
commands start with a \'[m]:[m]', indicating that what follows is a command.
|
||||||
|
|
||||||
To return to Normal mode from Command-line mode, type [m]<Esc>[m]. Pressing
|
To return to Normal mode from Command-line mode, type [m]<Esc>[m]. Pressing
|
||||||
[m]<Esc>[m] will also return you to Normal mode from most other modes in
|
[m]<Esc>[m] will also return you to Normal mode from most other modes in
|
||||||
@@ -142,7 +142,7 @@ type uniquely identifies any given link, Vimperator will follow that link
|
|||||||
immediately without any further user input.
|
immediately without any further user input.
|
||||||
|
|
||||||
Whichever way you choose to indicate your target link, once Vimperator has
|
Whichever way you choose to indicate your target link, once Vimperator has
|
||||||
highlighted the link you want, simply hit <Enter> to open it.
|
highlighted the link you want, simply hit [m]<Enter>[m] to open it.
|
||||||
|
|
||||||
The most common hint mode is called help:QuickHint{nbsp}mode[various.html,f].
|
The most common hint mode is called help:QuickHint{nbsp}mode[various.html,f].
|
||||||
To activate QuickHint mode, press either [m]f[m] or [m]F[m]. The lower-case
|
To activate QuickHint mode, press either [m]f[m] or [m]F[m]. The lower-case
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
// Script to find regressions
|
// Script to find regressions
|
||||||
//
|
//
|
||||||
// It should use as few liberator methods as possible, but fall back to standard mozilla/DOM methods
|
// It should use as few liberator methods as possible, but fall back to standard mozilla/DOM methods
|
||||||
// The reason it, we don't want to find regressions in the regressions script, and it should survive
|
// The reason is, we don't want to find regressions in the regressions script, and it should survive
|
||||||
// massive changes in the internal liberator API, but just test for functionality of
|
// massive changes in the internal liberator API, but just test for functionality of
|
||||||
// user-visible commands/mappings
|
// user-visible commands/mappings
|
||||||
//
|
//
|
||||||
@@ -249,4 +249,4 @@ commands.addUserCommand(["regr[essions]"],
|
|||||||
count: true
|
count: true
|
||||||
});
|
});
|
||||||
|
|
||||||
// vimperator: set et sts=4 sw=4 :
|
// vim: set et sts=4 sw=4 :
|
||||||
|
|||||||
Reference in New Issue
Block a user