1
0
mirror of https://github.com/gryf/pentadactyl-pm.git synced 2025-12-20 10:17:59 +01:00

Merge branch 'master' into vimperator-2.1

Conflicts:
	vimperator/NEWS
	vimperator/locale/en-US/starting.txt
This commit is contained in:
Doug Kearns
2009-02-26 22:11:12 +11:00
58 changed files with 911 additions and 733 deletions

3
.gitignore vendored
View File

@@ -8,6 +8,7 @@
*.xpi *.xpi
*/locale/*/*.html */locale/*/*.html
*/chrome */chrome
*/contrib/vim/*.vba
## Editor backup and swap files ## Editor backup and swap files
*~ *~
@@ -28,4 +29,4 @@
## Generated by StGit ## Generated by StGit
patches-* patches-*
.stgit-edit.txt .stgit-*.txt

View File

@@ -3,8 +3,12 @@ DIRS = vimperator muttator
TARGETS = clean distclean doc help info jar release xpi TARGETS = clean distclean doc help info jar release xpi
.SILENT: .SILENT:
all: xpi ;
$(TARGETS:%=\%.%): $(TARGETS:%=\%.%):
echo MAKE $@ echo MAKE $@
$(MAKE) -C $* $(@:$*.%=%) $(MAKE) -C $* $(@:$*.%=%)
$(TARGETS): %: $(DIRS:%=%.%) $(TARGETS):
$(MAKE) $(DIRS:%=%.$@)

View File

@@ -3,10 +3,11 @@
TOP = $(shell pwd) TOP = $(shell pwd)
OS = $(shell uname -s) OS = $(shell uname -s)
BUILD_DATE = $(shell date "+%Y/%m/%d %H:%M:%S") BUILD_DATE = $(shell date "+%Y/%m/%d %H:%M:%S")
BASE = $(TOP)/../common BASE = $(TOP)/../common
DOC_SRC_FILES = $(wildcard locale/*/*.txt) $(wildcard locale/*/*.t2t) LOCALEDIR = locale
LOCALES = $(wildcard locale/*) DOC_SRC_FILES = $(wildcard $(LOCALEDIR)/*/*.txt)
LOCALES = $(foreach locale,$(wildcard $(LOCALEDIR)/*),$(word 2,$(subst /, ,$(locale))))
MAKE_JAR = VERSION="$(VERSION)" DATE="$(BUILD_DATE)" sh $(BASE)/make_jar.sh MAKE_JAR = VERSION="$(VERSION)" DATE="$(BUILD_DATE)" sh $(BASE)/make_jar.sh
@@ -16,7 +17,7 @@ JAR_DIRS = content skin locale
JAR_TEXTS = js css dtd xml xul html xhtml JAR_TEXTS = js css dtd xml xul html xhtml
JAR_BINS = png JAR_BINS = png
JAR = chrome/${NAME}.jar JAR = chrome/$(NAME).jar
XPI_BASES = $(JAR_BASES) $(TOP)/.. XPI_BASES = $(JAR_BASES) $(TOP)/..
XPI_FILES = install.rdf TODO AUTHORS Donators NEWS License.txt XPI_FILES = install.rdf TODO AUTHORS Donators NEWS License.txt
@@ -24,32 +25,38 @@ XPI_DIRS = modules components chrome
XPI_TEXTS = js jsm XPI_TEXTS = js jsm
XPI_BINS = jar XPI_BINS = jar
XPI_NAME = ${NAME}_${VERSION} XPI_NAME = $(NAME)_$(VERSION)
XPI_PATH = ../downloads/${XPI_NAME} XPI_PATH = ../downloads/$(XPI_NAME)
XPI = $(XPI_PATH).xpi XPI = $(XPI_PATH).xpi
RDF = ../downloads/update.rdf RDF = ../downloads/update.rdf
RDF_IN = ${RDF}.in RDF_IN = $(RDF).in
BUILD_DIR = build.${VERSION}.${OS} BUILD_DIR = build.$(VERSION).$(OS)
ASCIIDOC = asciidoc ASCIIDOC = asciidoc
AWK = awk
.SILENT: .SILENT:
#### rules #### rules
.PHONY: all help info doc jar xpi install clean distclean $(JAR) TARGETS = all help info doc jar xpi install clean distclean $(JAR)
$(TARGETS:%=\%.%):
echo MAKE $* $(@:$*.%=%)
$(MAKE) -C $* $(@:$*.%=%)
.PHONY: $(TARGETS)
all: help all: help
help: help:
@echo "${NAME} ${VERSION} build" @echo "$(NAME) $(VERSION) build"
@echo @echo
@echo " make help - display this help" @echo " make help - display this help"
@echo " make info - show some info about the system" @echo " make info - show some info about the system"
@echo " make doc - build doc files" @echo " make doc - build doc files"
@echo " make jar - build a JAR (${JAR})" @echo " make jar - build a JAR ($(JAR))"
@echo " make xpi - build an XPI (${XPI_NAME})" @echo " make xpi - build an XPI ($(XPI_NAME))"
@echo " make release - updates update.rdf (this is not for you)" @echo " make release - updates update.rdf (this is not for you)"
@echo " make clean - clean up" @echo " make clean - clean up"
@echo " make distclean - clean up more" @echo " make distclean - clean up more"
@@ -57,39 +64,37 @@ help:
@echo "running some commands with V=1 will show more build details" @echo "running some commands with V=1 will show more build details"
info: info:
@echo "version ${VERSION}" @echo "version $(VERSION)"
@echo "release file ${XPI}" @echo "release file $(XPI)"
@echo "doc files ${DOC_SRC_FILES}" @echo "doc files $(DOC_SRC_FILES)"
@echo -e "jar files $(shell echo ${JAR_FILES} | sed 's/ /\\n /g' )" @echo "xpi files $(XPI_FILES)"
@echo "xpi files ${XPI_FILES}"
xpi: ${XPI} xpi: $(XPI)
jar: ${JAR} jar: $(JAR)
release: ${XPI} ${RDF} release: $(XPI) $(RDF)
${RDF}: ${RDF_IN} Makefile $(RDF): $(RDF_IN) Makefile
@echo "Preparing release..." @echo "Preparing release..."
${Q}${SED} -e "s,###VERSION###,${VERSION},g" \ $(SED) -e "s,###VERSION###,$(VERSION),g" \
-e "s,###DATE###,${BUILD_DATE},g" \ -e "s,###DATE###,$(BUILD_DATE),g" \
< $< > $@ < $< > $@
@echo "SUCCESS: $@" @echo "SUCCESS: $@"
clean: clean: $(LOCALEDIR)/$(LOCALES:%=%.clean)
@echo "Cleanup..." @echo "General $(NAME) cleanup..."
rm -f ${JAR} ${XPI} rm -f $(JAR) $(XPI)
distclean: clean distclean: $(LOCALEDIR)/$(LOCALES:%=%.distclean) clean
@echo "More cleanup..." @echo "More $(NAME) cleanup..."
@set -e; for locale in $(LOCALES); do $(MAKE) -C clean; doc; done rm -rf $(BUILD_DIR)
rm -rf ${BUILD_DIR}
#### xpi #### xpi
$(XPI): $(JAR) $(XPI): $(JAR)
@echo "Building XPI..." @echo "Building XPI..."
mkdir -p $(XPI_PATH) mkdir -p $(XPI_PATH)
awk -v 'name=$(NAME)' -f $(BASE)/process_manifest.awk $(TOP)/chrome.manifest >$(XPI_PATH)/chrome.manifest $(AWK) -v 'name=$(NAME)' -f $(BASE)/process_manifest.awk $(TOP)/chrome.manifest >$(XPI_PATH)/chrome.manifest
$(MAKE_JAR) "$(XPI)" "$(XPI_BASES)" "$(XPI_DIRS)" "$(XPI_TEXTS)" "$(XPI_BINS)" "$(XPI_FILES)" $(MAKE_JAR) "$(XPI)" "$(XPI_BASES)" "$(XPI_DIRS)" "$(XPI_TEXTS)" "$(XPI_BINS)" "$(XPI_FILES)"
@echo "SUCCESS: $@" @echo "SUCCESS: $@"
@@ -102,5 +107,4 @@ $(JAR): doc
#### doc (see Makefile.doc) #### doc (see Makefile.doc)
doc: doc: $(foreach localetgt,$(LOCALES:%=%.doc),$(addprefix $(LOCALEDIR)/,$(localetgt))) ;
@set -e; for locale in $(LOCALES); do $(MAKE) -C $$locale doc; done

View File

@@ -1,28 +1,18 @@
# Symlink me to locale/*/Makefile # Symlink me to (or include me from) locale/*/Makefile
#### configuration #### configuration
BASE = ../../../common ASCIIDOC = asciidoc
AWK = awk
THIS_LOCALE = $(notdir $(shell pwd)) LOCALE = $(shell basename `pwd`)
THIS_LANG = $(firstword $(subst -, ,$(THIS_LOCALE))) LANG = $(shell basename `pwd` | $(AWK) -F- '{ print ($$1 ~ /^[a-z][a-z]$$/) ? $$1 : "en" }')
ifneq ($(strip $(shell echo -n $(THIS_LANG) | wc -c)),2)
THIS_LANG = en
endif
ADC_SRC_FILES = $(wildcard *.txt) ADC_SRC_FILES = $(wildcard *.txt)
ADC_FILES = $(ADC_SRC_FILES:%.txt=%.html) ADC_FILES = $(ADC_SRC_FILES:%.txt=%.html)
ADC_DEPS = $(wildcard asciidoc.conf lang-$(THIS_LANG).conf) ADC_DEPS = $(wildcard asciidoc.conf lang-$(LANG).conf)
T2T_SRC_FILES = $(wildcard *.t2t) DOC_FILES = $(ADC_FILES) version.html
T2T_FILES = $(T2T_SRC_FILES:%.t2t=%.xhtml)
T2T_DEPS = $(wildcard config.t2t)
DOC_FILES = $(ADC_FILES) $(T2T_FILES)
ASCIIDOC = asciidoc
TXT2TAGS = txt2tags
AWK = awk
.SILENT: .SILENT:
@@ -31,49 +21,42 @@ AWK = awk
.PHONY: all help doc asciidoc check-asciidoc clean distclean .PHONY: all help doc asciidoc check-asciidoc clean distclean
all: doc all: doc
doc: asciidoc t2t doc: asciidoc
help: help:
@echo "${NAME} ${VERSION} build" @echo "$(NAME) $(VERSION) build"
@echo @echo
@echo " make help - display this help" @echo " make help - display this help"
@echo " make doc - build doc files" @echo " make doc - build doc files"
@echo " make asciidoc - build asciidoc'd files only"
@echo " make t2t - build txt2tags'd files only"
@echo " make clean - clean up" @echo " make clean - clean up"
@echo " make distclean - clean up more" @echo " make distclean - clean up more"
clean: clean:
@echo "Cleanup..." @echo "Cleanup of $(LOCALE) documentation..."
distclean: clean distclean: clean
@echo "More cleanup..." @echo "More cleanup of $(LOCALE) documentation..."
rm -f $(DOC_FILES) rm -f $(DOC_FILES)
#### Makes single-file makes easier to type #### Makes single-file makes easier to type
%: %.html %.t2t %.xhtml %.t2t ;
%: %.html %.txt ; %: %.html %.txt ;
%: %.xhtml %.t2t ;
#### asciidoc #### asciidoc
asciidoc: check-asciidoc $(ADC_FILES) asciidoc: check-asciidoc $(DOC_FILES)
check-asciidoc: check-asciidoc:
@$(ASCIIDOC) --version | $(AWK) '{ exit $$2 !~ /^8\.2\./ }' || \ @$(ASCIIDOC) --version | $(AWK) '{ exit $$2 !~ /^8\.2\./ }' || \
echo >&2 "Warning: asciidoc versions other than 8.2.x are unsupported" echo >&2 "Warning: asciidoc versions other than 8.2.x are unsupported"
$(ADC_FILES): %.html: %.txt $(BASE)/Makefile.doc $(ADC_DEPS) $(ADC_FILES): %.html: %.txt $(BASE)/Makefile.doc $(ADC_DEPS)
@echo "DOC locale/$(THIS_LOCALE)/$@" @echo "DOC locale/$(LOCALE)/$@"
$(ASCIIDOC) --unsafe -a linkcss -a quirks! -a lang=$(THIS_LANG) -a doctitle="$(shell basename $@)" -o $@ $< $(ASCIIDOC) --unsafe -a linkcss -a quirks! -a lang=$(LANG) -a doctitle="$(shell basename $@)" -o $@ $<
#### txt2tags version.html: ../../NEWS $(BASE)/Makefile.doc $(ADC_DEPS)
@echo "DOC locale/$(LOCALE)/$@"
t2t: $(T2T_FILES) # NOTE: asciidoc doesn't source the conf file implicitly when processing stdin
sed -e '1i\
$(T2T_FILES): %.xhtml: %.t2t $(BASE)/Makefile.doc $(T2T_DEPS) HEADER' -e '/^[0-9]/d' -e '/^ \+\* version /s/.*version \+\([0-9.]\+\).*/section:Version{nbsp}\1[version-\1]\
@echo "T2T locale/$(THIS_LOCALE)/$@" /' ../../NEWS | ${ASCIIDOC} -f asciidoc.conf -a doctitle=version.html -o version.html -
txt2tags --quiet $<

View File

@@ -867,9 +867,16 @@ function Buffer() //{{{
/** /**
* @property {string} The current top-level document's URL. * @property {string} The current top-level document's URL.
*/ */
get URL() get URL() window.content.location.href,
/**
* @property {string} The current top-level document's URL, sans any
* fragment identifier.
*/
get URI()
{ {
return window.content.document.location.href; let loc = window.content.location;
return loc.href.substr(0, loc.href.length - loc.hash.length);
}, },
/** /**
@@ -1044,7 +1051,12 @@ function Buffer() //{{{
function followFrame(frame) function followFrame(frame)
{ {
function iter(elems) (e for ([i, e] in Iterator(elems)) if (e.rel.toLowerCase() == rel || e.rev.toLowerCase() == rel)); function iter(elems)
{
for (let i = 0; i < elems.length; i++)
if (elems[i].rel.toLowerCase() == rel || elems[i].rev.toLowerCase() == rel)
yield elems[i];
}
// <link>s have higher priority than normal <a> hrefs // <link>s have higher priority than normal <a> hrefs
let elems = frame.document.getElementsByTagName("link"); let elems = frame.document.getElementsByTagName("link");
@@ -1065,16 +1077,10 @@ function Buffer() //{{{
let res = buffer.evaluateXPath(options["hinttags"], frame.document); let res = buffer.evaluateXPath(options["hinttags"], frame.document);
for (let [,regex] in Iterator(regexps)) for (let [,regex] in Iterator(regexps))
{ {
for (let i in util.range(res.snapshotLength, 0, true)) for (let i in util.range(res.snapshotLength, 0, -1))
{ {
let elem = res.snapshotItem(i); let elem = res.snapshotItem(i);
if (regex.test(elem.textContent)) if (regex.test(elem.textContent) || Array.some(elem.childNodes, function (child) regex.test(child.alt)))
{
buffer.followLink(elem, liberator.CURRENT_TAB);
return true;
}
// images with alt text being href
if (Array.some(elem.childNodes, function (child) regex.test(child.alt)))
{ {
buffer.followLink(elem, liberator.CURRENT_TAB); buffer.followLink(elem, liberator.CURRENT_TAB);
return true; return true;
@@ -1462,7 +1468,7 @@ function Buffer() //{{{
*/ */
viewSource: function (url, useExternalEditor) viewSource: function (url, useExternalEditor)
{ {
url = url || buffer.URL; url = url || buffer.URI;
if (useExternalEditor) if (useExternalEditor)
editor.editFileExternally(url); editor.editFileExternally(url);
@@ -1625,7 +1631,7 @@ function Marks() //{{{
function (args) function (args)
{ {
let special = args.bang; let special = args.bang;
let args = args.string; args = args.string;
if (!special && !args) if (!special && !args)
{ {

View File

@@ -573,7 +573,7 @@ function Commands() //{{{
count++; // to compensate the "=" character count++; // to compensate the "=" character
} }
else if (!/\s/.test(sep)) // this isn't really an option as it has trailing characters, parse it as an argument else if (!/\s/.test(sep) && sep != undefined) // this isn't really an option as it has trailing characters, parse it as an argument
{ {
invalid = true; invalid = true;
} }

View File

@@ -220,6 +220,12 @@ function CompletionContext(editor, name, offset) //{{{
: item.item[key]; : item.item[key];
} }
CompletionContext.Sort = {
number: function (a, b) parseInt(b) - parseInt(a) || String.localeCompare(a, b),
unsorted: null
};
CompletionContext.prototype = { CompletionContext.prototype = {
// Temporary // Temporary
/** /**
@@ -554,10 +560,10 @@ CompletionContext.prototype = {
{ {
let self = this; let self = this;
let items = this.items; let items = this.items;
let reverse = start > end; let step = start > end ? -1 : 1;
start = Math.max(0, start || 0); start = Math.max(0, start || 0);
end = Math.min(items.length, end ? end : items.length); end = Math.min(items.length, end ? end : items.length);
return util.map(util.range(start, end, reverse), function (i) items[i]); return util.map(util.range(start, end, step), function (i) items[i]);
}, },
getRows: function getRows(start, end, doc) getRows: function getRows(start, end, doc)
@@ -565,10 +571,10 @@ CompletionContext.prototype = {
let self = this; let self = this;
let items = this.items; let items = this.items;
let cache = this.cache.rows; let cache = this.cache.rows;
let reverse = start > end; let step = start > end ? -1 : 1;
start = Math.max(0, start || 0); start = Math.max(0, start || 0);
end = Math.min(items.length, end != null ? end : items.length); end = Math.min(items.length, end != null ? end : items.length);
for (let i in util.range(start, end, reverse)) for (let i in util.range(start, end, step))
yield [i, cache[i] = cache[i] || util.xmlToDom(self.createRow(items[i]), doc)]; yield [i, cache[i] = cache[i] || util.xmlToDom(self.createRow(items[i]), doc)];
}, },
@@ -720,22 +726,22 @@ function Completion() //{{{
this.completers = {}; this.completers = {};
// Some object members are only accessible as function calls
function getKey(obj, key)
{
try
{
return obj[key];
}
catch (e)
{
return undefined;
}
}
this.iter = function iter(obj) this.iter = function iter(obj)
{ {
let iterator = (function objIter() let iterator = ([k, getKey(obj, k)] for (k in obj));
{
for (let k in obj)
{
// Some object members are only accessible as function calls
try
{
yield [k, obj[k]];
continue;
}
catch (e) {}
yield [k, <>inaccessable</>]
}
})();
try try
{ {
// The point of 'for k in obj' is to get keys // The point of 'for k in obj' is to get keys
@@ -775,21 +781,21 @@ function Completion() //{{{
// available in the object itself. // available in the object itself.
let orig = obj; let orig = obj;
// v[0] in orig and orig[v[0]] catch different cases. XPCOM
// objects are problematic, to say the least.
if (modules.isPrototypeOf(obj)) if (modules.isPrototypeOf(obj))
compl = [v for (v in Iterator(obj))]; compl = [v for (v in Iterator(obj))];
else else
{ {
if (obj.wrappedJSObject) if (getKey(obj, 'wrappedJSObject'))
obj = obj.wrappedJSObject; obj = obj.wrappedJSObject;
// v[0] in orig and orig[v[0]] catch different cases. XPCOM
// objects are problematic, to say the least.
compl = [v for (v in this.iter(obj)) compl = [v for (v in this.iter(obj))
if ((typeof orig == "object" && v[0] in orig) || orig[v[0]] !== undefined)]; if ((typeof orig == "object" && v[0] in orig) || getKey(orig, v[0]) !== undefined)];
} }
// And if wrappedJSObject happens to be available, // And if wrappedJSObject happens to be available,
// return that, too. // return that, too.
if (orig.wrappedJSObject) if (getKey(orig, 'wrappedJSObject'))
compl.push(["wrappedJSObject", obj]); compl.push(["wrappedJSObject", obj]);
// Add keys for sorting later. // Add keys for sorting later.
@@ -1381,6 +1387,7 @@ function Completion() //{{{
context.anchored = false; context.anchored = false;
context.title = ["Buffer", "URL"]; context.title = ["Buffer", "URL"];
context.keys = { text: "text", description: "url", icon: "icon" }; context.keys = { text: "text", description: "url", icon: "icon" };
context.compare = CompletionContext.Sort.number;
let process = context.process[0]; let process = context.process[0];
context.process = [function (item, text) context.process = [function (item, text)
<> <>
@@ -1560,7 +1567,7 @@ function Completion() //{{{
{ {
context.format = history.format; context.format = history.format;
context.title = ["History"] context.title = ["History"]
context.compare = null; context.compare = CompletionContext.Sort.unsorted;
//context.background = true; //context.background = true;
if (context.maxItems == null) if (context.maxItems == null)
context.maxItems = 100; context.maxItems = 100;
@@ -1584,7 +1591,7 @@ function Completion() //{{{
context.hasItems = context.completions.length > 0; // XXX context.hasItems = context.completions.length > 0; // XXX
context.filterFunc = null; context.filterFunc = null;
context.cancel = function () services.get("autoCompleteSearch").stopSearch(); context.cancel = function () services.get("autoCompleteSearch").stopSearch();
context.compare = null; context.compare = CompletionContext.Sort.unsorted;
let timer = new Timer(50, 100, function (result) { let timer = new Timer(50, 100, function (result) {
context.incomplete = result.searchResult >= result.RESULT_NOMATCH_ONGOING; context.incomplete = result.searchResult >= result.RESULT_NOMATCH_ONGOING;
context.completions = [ context.completions = [
@@ -1655,7 +1662,8 @@ function Completion() //{{{
completer = function () [["true", ""], ["false", ""]]; completer = function () [["true", ""], ["false", ""]];
break; break;
case "stringlist": case "stringlist":
len = newValues.pop().length; let target = newValues.pop();
len = target ? target.length : 0;
break; break;
case "charlist": case "charlist":
len = 0; len = 0;
@@ -1716,7 +1724,7 @@ function Completion() //{{{
context.format = history.format; context.format = history.format;
context.title = [keyword + " Quick Search"]; context.title = [keyword + " Quick Search"];
// context.background = true; // context.background = true;
context.compare = null; context.compare = CompletionContext.Sort.unsorted;
context.generate = function () { context.generate = function () {
let [begin, end] = item.url.split("%s"); let [begin, end] = item.url.split("%s");
@@ -1751,7 +1759,7 @@ function Completion() //{{{
let ctxt = context.fork(name, 0); let ctxt = context.fork(name, 0);
ctxt.title = [engine.description + " Suggestions"]; ctxt.title = [engine.description + " Suggestions"];
ctxt.compare = null; ctxt.compare = CompletionContext.Sort.unsorted;
ctxt.incomplete = true; ctxt.incomplete = true;
bookmarks.getSuggestions(name, ctxt.filter, function (compl) { bookmarks.getSuggestions(name, ctxt.filter, function (compl) {
ctxt.incomplete = false; ctxt.incomplete = false;

View File

@@ -204,7 +204,7 @@ function Editor() //{{{
function (args) function (args)
{ {
let matches = args.string.match(RegExp("^\\s*($|" + abbrevmatch + ")(?:\\s*$|\\s+(.*))")); let matches = args.string.match(RegExp("^\\s*($|" + abbrevmatch + ")(?:\\s*$|\\s+(.*))"));
if (! matches) if (!matches)
{ {
liberator.echoerr("E474: Invalid argument"); liberator.echoerr("E474: Invalid argument");
return false; return false;
@@ -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 ()

View File

@@ -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")
@@ -1033,6 +1035,37 @@ function Events() //{{{
} }
} }
} }
// [Ctrl-Bug] special handling of mysterious <C-[>, <C-\\>, <C-]>, <C-^>, <C-_> bugs (OS/X)
// (i.e., cntrl codes 27--31)
// ---
// For more information, see:
// [*] Vimp FAQ: http://vimperator.org/trac/wiki/Vimperator/FAQ#WhydoesntC-workforEscMacOSX
// [*] Referenced mailing list msg: http://www.mozdev.org/pipermail/vimperator/2008-May/001548.html
// [*] Mozilla bug 416227: event.charCode in keypress handler has unexpected values on Mac for Ctrl with chars in "[ ] _ \"
// https://bugzilla.mozilla.org/show_bug.cgi?query_format=specific&order=relevance+desc&bug_status=__open__&id=416227
// [*] Mozilla bug 432951: Ctrl+'foo' doesn't seem same charCode as Meta+'foo' on Cocoa
// https://bugzilla.mozilla.org/show_bug.cgi?query_format=specific&order=relevance+desc&bug_status=__open__&id=432951
// ---
//
// The following fixes are only activated if liberator.has("MacUnix").
// Technically, they prevent mappings from <C-Esc> (and
// <C-C-]> if your fancy keyboard permits such things<?>), but
// these <C-control> mappings are probably pathological (<C-Esc>
// certainly is on Windows), and so it is probably
// harmless to remove the has("MacUnix") if desired.
//
else if (liberator.has("MacUnix") && event.ctrlKey && event.charCode >= 27 && event.charCode <= 31)
{
if (event.charCode == 27) // [Ctrl-Bug 1/5] the <C-[> bug
{
key = "Esc";
modifier = modifier.replace("C-", "");
}
else // [Ctrl-Bug 2,3,4,5/5] the <C-\\>, <C-]>, <C-^>, <C-_> bugs
{
key = String.fromCharCode(event.charCode + 64);
}
}
// special handling of the Space key // special handling of the Space key
else if (event.charCode == 32) else if (event.charCode == 32)
{ {
@@ -1089,7 +1122,7 @@ function Events() //{{{
waitForPageLoad: function () waitForPageLoad: function ()
{ {
liberator.dump("start waiting in loaded state: " + buffer.loaded); //liberator.dump("start waiting in loaded state: " + buffer.loaded);
liberator.threadYield(true); // clear queue liberator.threadYield(true); // clear queue
if (buffer.loaded == 1) if (buffer.loaded == 1)
@@ -1102,8 +1135,8 @@ function Events() //{{{
while (now = Date.now(), now < end) while (now = Date.now(), now < end)
{ {
liberator.threadYield(); liberator.threadYield();
if ((now - start) % 1000 < 10) //if ((now - start) % 1000 < 10)
liberator.dump("waited: " + (now - start) + " ms"); // liberator.dump("waited: " + (now - start) + " ms");
if (!events.feedingKeys) if (!events.feedingKeys)
return false; return false;
@@ -1122,7 +1155,7 @@ function Events() //{{{
let ret = (buffer.loaded == 1); let ret = (buffer.loaded == 1);
if (!ret) if (!ret)
liberator.echoerr("Page did not load completely in " + maxWaitTime + " seconds. Macro stopped."); liberator.echoerr("Page did not load completely in " + maxWaitTime + " seconds. Macro stopped.");
liberator.dump("done waiting: " + ret); //liberator.dump("done waiting: " + ret);
// sometimes the input widget had focus when replaying a macro // sometimes the input widget had focus when replaying a macro
// maybe this call should be moved somewhere else? // maybe this call should be moved somewhere else?
@@ -1186,7 +1219,7 @@ function Events() //{{{
{ {
if (config.isComposeWindow) if (config.isComposeWindow)
{ {
liberator.dump("Compose editor got focus"); //liberator.dump("Compose editor got focus");
modes.set(modes.INSERT, modes.TEXTAREA); modes.set(modes.INSERT, modes.TEXTAREA);
} }
else if (liberator.mode != modes.MESSAGE) else if (liberator.mode != modes.MESSAGE)

View File

@@ -399,87 +399,51 @@ function Hints() //{{{
let wordSplitRegex = RegExp(options["wordseparators"]); let wordSplitRegex = RegExp(options["wordseparators"]);
// What the **** does this do? --Kris // What the **** does this do? --Kris
//
// This function matches hintStrings like 'hekho' to links like 'Hey Kris, how are you?' -> [HE]y [K]ris [HO]w are you --Daniel
function charsAtBeginningOfWords(chars, words, allowWordOverleaping) function charsAtBeginningOfWords(chars, words, allowWordOverleaping)
{ {
let charIdx = 0; function charMatches(charIdx, chars, wordIdx, words, inWordIdx, allowWordOverleaping)
let numMatchedWords = 0;
for (let [,word] in Iterator(words))
{ {
if (word.length == 0) let matches = (chars[charIdx] == words[wordIdx][inWordIdx]);
continue; if ((matches == false && allowWordOverleaping) || words[wordIdx].length == 0)
let wcIdx = 0;
// Check if the current word matches same characters as the previous word.
// Each already matched word has matched at least one character.
if (charIdx > numMatchedWords)
{ {
let matchingStarted = false; let nextWordIdx = wordIdx + 1;
for (let i in util.range(numMatchedWords, charIdx)) if (nextWordIdx == words.length)
{ return false;
if (chars[i] == word[wcIdx])
{ return charMatches(charIdx, chars, nextWordIdx, words, 0, allowWordOverleaping);
matchingStarted = true;
wcIdx++;
}
else if (matchingStarted)
{
wcIdx = 0;
break;
}
}
} }
// the current word matches same characters as the previous word if (matches)
let prevCharIdx;
if (wcIdx > 0)
{ {
prevCharIdx = charIdx; let nextCharIdx = charIdx + 1;
// now check if it matches additional characters if (nextCharIdx == chars.length)
for (; wcIdx < word.length && charIdx < chars.length; wcIdx++, charIdx++) return true;
{
if (word[wcIdx] != chars[charIdx])
break;
}
// the word doesn't match additional characters, now check if the let nextWordIdx = wordIdx + 1;
// already matched characters are equal to the next characters for matching, let beyondLastWord = (nextWordIdx == words.length);
// if yes, then consume them let charMatched = false;
if (prevCharIdx == charIdx) if (beyondLastWord == false)
{ charMatched = charMatches(nextCharIdx, chars, nextWordIdx, words, 0, allowWordOverleaping)
for (let i = 0; i < wcIdx && charIdx < chars.length; i++, charIdx++)
{
if (word[i] != chars[charIdx])
break;
}
}
numMatchedWords++; if (charMatched)
} return true;
// the current word doesn't match same characters as the previous word, just
// try to match the next characters
else
{
prevCharIdx = charIdx;
for (let i = 0; i < word.length && charIdx < chars.length; i++, charIdx++)
{
if (word[i] != chars[charIdx])
break;
}
if (prevCharIdx == charIdx) if (charMatched == false || beyondLastWord == true)
{ {
if (!allowWordOverleaping) let nextInWordIdx = inWordIdx + 1;
if (nextInWordIdx == words[wordIdx].length)
return false; return false;
return charMatches(nextCharIdx, chars, wordIdx, words, nextInWordIdx, allowWordOverleaping);
} }
else
numMatchedWords++;
} }
if (charIdx == chars.length) return false;
return true;
} }
return (charIdx == chars.length); return charMatches(0, chars, 0, words, 0, allowWordOverleaping);
} }
function stringsAtBeginningOfWords(strings, words, allowWordOverleaping) function stringsAtBeginningOfWords(strings, words, allowWordOverleaping)
@@ -510,8 +474,6 @@ function Hints() //{{{
return function (linkText) return function (linkText)
{ {
liberator.dump(hintStrings);
if (hintStrings.length == 1 && hintStrings[0].length == 0) if (hintStrings.length == 1 && hintStrings[0].length == 0)
return true; return true;
@@ -613,7 +575,7 @@ function Hints() //{{{
function (count) function (count)
{ {
extendedhintCount = count; extendedhintCount = count;
commandline.input(";", function (arg) { setTimeout(function () hints.show(arg), 0); }, commandline.input(";", null,
{ {
promptHighlight: "Normal", promptHighlight: "Normal",
completer: function (context) completer: function (context)
@@ -621,7 +583,8 @@ function Hints() //{{{
context.compare = function () 0; context.compare = function () 0;
context.completions = [[k, v.prompt] for ([k, v] in Iterator(hintModes))]; context.completions = [[k, v.prompt] for ([k, v] in Iterator(hintModes))];
}, },
onChange: function () { modes.pop() } onChange: function () { modes.pop() },
onCancel: function (arg) { arg && setTimeout(function () hints.show(arg), 0); },
}); });
}, { flags: Mappings.flags.COUNT }); }, { flags: Mappings.flags.COUNT });

View File

@@ -121,7 +121,7 @@ const liberator = (function () //{{{
let class = dir.map(function (dir) "html|html > xul|scrollbar[orient=" + dir + "]"); let class = dir.map(function (dir) "html|html > xul|scrollbar[orient=" + dir + "]");
if (class.length) if (class.length)
styles.addSheet(true, "scrollbar", "*", class.join(", ") + " { visibility: collapse !important; }"); styles.addSheet(true, "scrollbar", "*", class.join(", ") + " { visibility: collapse !important; }", true);
else else
styles.removeSheet(true, "scrollbar"); styles.removeSheet(true, "scrollbar");
options.safeSetPref("layout.scrollbar.side", opts.indexOf("l") >= 0 ? 3 : 2); options.safeSetPref("layout.scrollbar.side", opts.indexOf("l") >= 0 ? 3 : 2);
@@ -264,7 +264,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;
@@ -281,7 +281,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]"],
@@ -601,7 +605,7 @@ const liberator = (function () //{{{
forceNewTab: false, forceNewTab: false,
// ###VERSION### and ###DATE### are replaced by the Makefile // these VERSION and DATE tokens are replaced by the Makefile
version: "###VERSION### (created: ###DATE###)", version: "###VERSION### (created: ###DATE###)",
// NOTE: services.get("profile").selectedProfile.name is not rightness. // NOTE: services.get("profile").selectedProfile.name is not rightness.
@@ -842,7 +846,7 @@ const liberator = (function () //{{{
// Number // Number
else if (matches = string.match(/^(\d+)$/)) else if (matches = string.match(/^(\d+)$/))
{ {
return parseInt(match[1], 10); return parseInt(matches[1], 10);
} }
let reference = this.variableReference(string); let reference = this.variableReference(string);
@@ -1422,7 +1426,6 @@ 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;
liberator.dump(String(elem));
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 (elem.className == "command") if (elem.className == "command")

View File

@@ -80,7 +80,7 @@ Option.prototype = {
parseValues: function (value) parseValues: function (value)
{ {
if (this.type == "stringlist") if (this.type == "stringlist")
return value.split(","); return (value === "") ? [] : value.split(",");
if (this.type == "charlist") if (this.type == "charlist")
return Array.slice(value); return Array.slice(value);
return value; return value;
@@ -203,9 +203,9 @@ Option.prototype = {
break; break;
case "number": case "number":
let value = parseInt(values); // deduce radix let value = Number(values); // deduce radix
if (isNaN(value)) if (isNaN(value) || value != parseInt(value))
return "E521: Number required"; return "E521: Number required";
switch (operator) switch (operator)
@@ -335,7 +335,11 @@ function Options() //{{{
{ {
case "string": case "string":
if (type == Ci.nsIPrefBranch.PREF_INVALID || type == Ci.nsIPrefBranch.PREF_STRING) if (type == Ci.nsIPrefBranch.PREF_INVALID || type == Ci.nsIPrefBranch.PREF_STRING)
services.get("pref").setCharPref(name, value); {
let supportString = Cc["@mozilla.org/supports-string;1"].createInstance(Ci.nsISupportsString);
supportString.data = value;
services.get("pref").setComplexValue(name, Ci.nsISupportsString, supportString);
}
else if (type == Ci.nsIPrefBranch.PREF_INT) else if (type == Ci.nsIPrefBranch.PREF_INT)
liberator.echoerr("E521: Number required after =: " + name + "=" + value); liberator.echoerr("E521: Number required after =: " + name + "=" + value);
else else

View File

@@ -182,7 +182,7 @@ function Highlights(name, store, serial)
{ {
css = style.selector + " { " + css + " }"; css = style.selector + " { " + css + " }";
let error = styles.addSheet(true, style.selector, style.filter, css); let error = styles.addSheet(true, style.selector, style.filter, css, true);
if (error) if (error)
return error; return error;
} }
@@ -235,6 +235,7 @@ function Highlights(name, store, serial)
this.set(class); this.set(class);
} }
}; };
this.reload();
} }
/** /**
@@ -257,7 +258,7 @@ function Styles(name, store, serial)
const namespace = '@namespace html "' + XHTML + '";\n' + const namespace = '@namespace html "' + XHTML + '";\n' +
'@namespace xul "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";\n' + '@namespace xul "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";\n' +
'@namespace liberator "' + NS.uri + '";\n'; '@namespace liberator "' + NS.uri + '";\n';
const Sheet = new Struct("name", "sites", "css", "ref"); const Sheet = new Struct("name", "sites", "css", "ref", "agent");
let cssUri = function (css) "chrome-data:text/css," + window.encodeURI(css); let cssUri = function (css) "chrome-data:text/css," + window.encodeURI(css);
@@ -285,7 +286,7 @@ function Styles(name, store, serial)
* "*" is matched as a prefix. * "*" is matched as a prefix.
* @param {string} css The CSS to be applied. * @param {string} css The CSS to be applied.
*/ */
this.addSheet = function (system, name, filter, css) this.addSheet = function (system, name, filter, css, agent)
{ {
let sheets = system ? systemSheets : userSheets; let sheets = system ? systemSheets : userSheets;
let names = system ? systemNames : userNames; let names = system ? systemNames : userNames;
@@ -294,7 +295,7 @@ function Styles(name, store, serial)
let sheet = sheets.filter(function (s) s.sites.join(",") == filter && s.css == css)[0]; let sheet = sheets.filter(function (s) s.sites.join(",") == filter && s.css == css)[0];
if (!sheet) if (!sheet)
sheet = new Sheet(name, filter.split(",").filter(util.identity), css, null); sheet = new Sheet(name, filter.split(",").filter(util.identity), css, null, agent);
if (sheet.ref == null) // Not registered yet if (sheet.ref == null) // Not registered yet
{ {
@@ -302,7 +303,8 @@ function Styles(name, store, serial)
try try
{ {
this.registerSheet(cssUri(wrapCSS(sheet))); this.registerSheet(cssUri(wrapCSS(sheet)));
this.registerAgentSheet(cssUri(wrapCSS(sheet))) if (sheet.agent)
this.registerAgentSheet(cssUri(wrapCSS(sheet)))
} }
catch (e) catch (e)
{ {
@@ -410,7 +412,7 @@ function Styles(name, store, serial)
{ {
let sites = sheet.sites.filter(function (f) f != filter); let sites = sheet.sites.filter(function (f) f != filter);
if (sites.length) if (sites.length)
this.addSheet(system, name, sites.join(","), css); this.addSheet(system, name, sites.join(","), css, sheet.agent);
} }
} }
return matches.length; return matches.length;
@@ -514,8 +516,11 @@ const styles = storage.newObject("styles", Styles, false);
*/ */
const highlight = storage.newObject("highlight", Highlights, false); const highlight = storage.newObject("highlight", Highlights, false);
highlight.CSS = Highlights.prototype.CSS; if (highlight.CSS != Highlights.prototype.CSS)
highlight.reload(); {
highlight.CSS = Highlights.prototype.CSS;
highlight.reload();
}
liberator.triggerObserver("load_styles", "styles"); liberator.triggerObserver("load_styles", "styles");
liberator.triggerObserver("load_highlight", "highlight"); liberator.triggerObserver("load_highlight", "highlight");

View File

@@ -133,9 +133,9 @@ const template = {
highlight: function highlight(arg, processStrings, clip) highlight: function highlight(arg, processStrings, clip)
{ {
// some objects like window.JSON or getBrowsers()._browsers need the try/catch // some objects like window.JSON or getBrowsers()._browsers need the try/catch
let str = clip ? util.clip(String(arg), clip) : String(arg);
try try
{ {
let str = clip ? util.clip(String(arg), clip) : String(arg);
switch (arg == null ? "undefined" : typeof arg) switch (arg == null ? "undefined" : typeof arg)
{ {
case "number": case "number":

View File

@@ -529,7 +529,7 @@ function CommandLine() //{{{
autocompleteTimer.tell(false); autocompleteTimer.tell(false);
}); });
liberator.registerCallback("cancel", modes.PROMPT, closePrompt); liberator.registerCallback("cancel", modes.PROMPT, cancelPrompt);
liberator.registerCallback("submit", modes.PROMPT, closePrompt); liberator.registerCallback("submit", modes.PROMPT, closePrompt);
liberator.registerCallback("change", modes.PROMPT, function (str) { liberator.registerCallback("change", modes.PROMPT, function (str) {
if (input.complete) if (input.complete)
@@ -542,6 +542,14 @@ function CommandLine() //{{{
context.fork("input", 0, commandline, input.complete); context.fork("input", 0, commandline, input.complete);
}); });
function cancelPrompt(value)
{
let callback = input.cancel;
input = {};
if (callback)
callback.call(commandline, value != null ? value : commandline.command);
}
function closePrompt(value) function closePrompt(value)
{ {
let callback = input.submit; let callback = input.submit;
@@ -1008,10 +1016,9 @@ function CommandLine() //{{{
set silent(val) set silent(val)
{ {
silent = val; silent = val;
if (silent) Array.forEach(document.getElementById("liberator-commandline").childNodes, function (node) {
storage.styles.addSheet(true, "silent-mode", "chrome://*", "#liberator-commandline > * { opacity: 0 }"); node.style.opacity = silent ? "0" : "";
else });
storage.styles.removeSheet(true, "silent-mode");
}, },
runSilently: function (fn, self) runSilently: function (fn, self)
@@ -1214,6 +1221,7 @@ function CommandLine() //{{{
submit: callback, submit: callback,
change: extra.onChange, change: extra.onChange,
complete: extra.completer, complete: extra.completer,
cancel: extra.onCancel,
}; };
modes.push(modes.COMMAND_LINE, modes.PROMPT); modes.push(modes.COMMAND_LINE, modes.PROMPT);
@@ -1285,7 +1293,8 @@ function CommandLine() //{{{
} }
else if (event.type == "input") else if (event.type == "input")
{ {
//this.resetCompletions(); -> already handled by "keypress" below (hopefully), so don't do it twice //liberator.dump("input: " + command);
this.resetCompletions();
liberator.triggerCallback("change", currentExtendedMode, command); liberator.triggerCallback("change", currentExtendedMode, command);
} }
else if (event.type == "keypress") else if (event.type == "keypress")
@@ -1333,7 +1342,7 @@ function CommandLine() //{{{
else if (key == "<BS>") else if (key == "<BS>")
{ {
// reset the tab completion // reset the tab completion
this.resetCompletions(); //this.resetCompletions();
// and blur the command line if there is no text left // and blur the command line if there is no text left
if (command.length == 0) if (command.length == 0)
@@ -1344,7 +1353,7 @@ function CommandLine() //{{{
} }
else // any other key else // any other key
{ {
this.resetCompletions(); //this.resetCompletions();
} }
return true; // allow this event to be handled by Firefox return true; // allow this event to be handled by Firefox
} }
@@ -1769,7 +1778,7 @@ function ItemList(id) //{{{
</div> </div>
</div>, divNodes); </div>, divNodes);
doc.body.replaceChild(div, doc.body.firstChild); doc.body.replaceChild(div, doc.body.firstChild);
div.scrollIntoView(true); //div.scrollIntoView(true);
items.contextList.forEach(function init_eachContext(context) { items.contextList.forEach(function init_eachContext(context) {
delete context.cache.nodes; delete context.cache.nodes;
@@ -1952,7 +1961,7 @@ function ItemList(id) //{{{
if (index >= 0) if (index >= 0)
{ {
getCompletion(index).setAttribute("selected", "true"); getCompletion(index).setAttribute("selected", "true");
getCompletion(index).scrollIntoView(false); //getCompletion(index).scrollIntoView(false);
} }
//if (index == 0) //if (index == 0)

View File

@@ -519,25 +519,28 @@ const util = { //{{{
}, },
/** /**
* A generator that returns the values between <b>start</b> and <b>end</b>. * A generator that returns the values between <b>start</b> and <b>end</b>,
* If <b>reverse</b> is true then the values are returned in reverse order. * in <b>step</b> increments.
* *
* @param {number} start The interval's start value. * @param {number} start The interval's start value.
* @param {number} end The interval's end value. * @param {number} end The interval's end value.
* @param {boolean} reverse Reverse the order in which the values are produced. * @param {boolean} step The value to step the range by. May be
* negative. @default 1
* @returns {Iterator(Object)} * @returns {Iterator(Object)}
*/ */
range: function range(start, end, reverse) range: function range(start, end, step)
{ {
if (!reverse) if (!step)
step = 1;
if (step > 0)
{ {
while (start < end) for (; start < end; start += step)
yield start++; yield start;
} }
else else
{ {
while (start > end) while (start > end)
yield --start; yield start += step;
} }
}, },
@@ -669,6 +672,13 @@ const util = { //{{{
xmlToDom: function xmlToDom(node, doc, nodes) xmlToDom: function xmlToDom(node, doc, nodes)
{ {
XML.prettyPrinting = false; XML.prettyPrinting = false;
if (node.length() != 1)
{
let domnode = doc.createDocumentFragment();
for each (let child in node)
domnode.appendChild(arguments.callee(child, doc, nodes));
return domnode;
}
switch (node.nodeKind()) switch (node.nodeKind())
{ {
case "text": case "text":

View File

@@ -103,7 +103,8 @@ const config = { //{{{
], ],
// they are sorted by relevance, not alphabetically // they are sorted by relevance, not alphabetically
helpFiles: ["intro.html"],/* "tutorial.html", "starting.html", helpFiles: ["intro.html", "version.html"],
/* "tutorial.html", "starting.html",
"browsing.html", "buffer.html", "pattern.html", "options.html", "browsing.html", "buffer.html", "pattern.html", "options.html",
"tabs.html", "hints.html", "map.html", "eval.html", "marks.html", "tabs.html", "hints.html", "map.html", "eval.html", "marks.html",
"repeat.html", "autocommands.html", "print.html", "developer.html", "repeat.html", "autocommands.html", "print.html", "developer.html",

View File

@@ -995,12 +995,13 @@ function Mail() //{{{
// TODO: find out why, and solve the problem // TODO: find out why, and solve the problem
try try
{ {
var msgs = folder.getMessages(msgWindow); var msgs = folder.messages;
} }
catch (e) catch (e)
{ {
liberator.dump("ERROR: " + folder.prettyName + " failed to getMessages\n"); var msgs = folder.getMessages(msgWindow); // for older thunderbirds
continue; liberator.dump("WARNING: " + folder.prettyName + " failed to getMessages, trying old API");
//continue;
} }
while (msgs.hasMoreElements()) while (msgs.hasMoreElements())

View File

@@ -0,0 +1,9 @@
VIMBALL = muttator.vba
vimball: mkvimball.txt syntax/muttator.vim ftdetect/muttator.vim
-echo '%MkVimball! ${VIMBALL} .' | vim -u NORC -N -e -s mkvimball.txt
all: vimball
clean:
rm -f ${VIMBALL}

View File

@@ -0,0 +1,2 @@
" TODO: what's the Muttator filename extension?
au BufNewFile,BufRead *muttatorrc*,*.muttator set filetype=muttator

View File

@@ -0,0 +1,2 @@
syntax/muttator.vim
ftdetect/muttator.vim

View File

@@ -0,0 +1,100 @@
" Vim syntax file
" Language: Muttator configuration file
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Last Change: 2009 Feb 19
if exists("b:current_syntax")
finish
endif
let s:cpo_save = &cpo
set cpo&vim
syn include @javascriptTop syntax/javascript.vim
unlet b:current_syntax
syn include @cssTop syntax/css.vim
unlet b:current_syntax
syn match muttatorCommandStart "\%(^\s*:\=\)\@<=" nextgroup=muttatorCommand,muttatorAutoCmd
syn keyword muttatorCommand ab[breviate] ab[clear] addo[ns] addr[essbook] bN[ext] bd[elete] beep bf[irst] bl[ast] bn[ext]
\ bp[revious] br[ewind] bun[load] bw[ipeout] ca[bbrev] cabc[lear] cd chd[ir] cm[ap] cmapc[lear] cno[remap] colo[rscheme]
\ com[mand] comc[lear] con[tact] contacts copy[to] cu[nmap] cuna[bbrev] delc[ommand] delm[arks] delmac[ros] dels[tyle]
\ dia[log] do[autocmd] doautoa[ll] ec[ho] echoe[rr] echom[sg] em[enu] empty[trash] exe[cute] exu[sage] fini[sh] get[messages]
\ go[to] h[elp] ha[rdcopy] hi[ghlight] ia[bbrev] iabc[lear] im[ap] imapc[lear] ino[remap] iu[nmap] iuna[bbrev] javas[cript] js
\ let loadplugins lpl m[ail] ma[rk] macros map mapc[lear] marks mes[sages] mkm[uttatorrc] mm[ap] mmapc[lear] mu[nmap]
\ mno[remap] move[to] no[remap] norm[al] optionu[sage] pa[geinfo] pagest[yle] pc[lose] pl[ay] pref[erences] prefs pw[d] q[uit]
\ re[load] res[tart] run runt[ime] sav[eas] scrip[tnames] se[t] setg[lobal] setl[ocal] so[urce] st[op] sty[le] tN[ext] t[open]
\ tab tabN[ext] tabc[lose] tabfir[st] tabl[ast] tabn[ext] tabp[revious] tabr[ewind] time tn[ext] tp[revious] una[bbreviate]
\ unl[et] unm[ap] ve[rsion] vie[wsource] viu[sage] w[rite] zo[om]
\ contained
syn match muttatorCommand "!" contained
syn keyword muttatorAutoCmd au[tocmd] contained nextgroup=muttatorAutoEventList skipwhite
syn keyword muttatorAutoEvent BookmarkAdd DOMLoad LocationChange PageLoadPre PageLoad ShellCmdPost muttatorEnter
\ muttatorLeavePre muttatorLeave
\ contained
syn match muttatorAutoEventList "\(\a\+,\)*\a\+" contained contains=muttatorAutoEvent
syn region muttatorSet matchgroup=muttatorCommand start="\%(^\s*:\=\)\@<=\<\%(setl\%[ocal]\|setg\%[lobal]\|set\=\)\=\>"
\ end="$" keepend oneline contains=muttatorOption,muttatorString
syn keyword muttatorOption archivefolder cdpath cd complete cpt editor eventignore ei extendedhinttags eht followhints fh
\ guioptions go helpfile hf hintmatching hm hinttags ht hinttimeout hto history hi laststatus ls layout messages msgs
\ nextpattern pageinfo pa previouspattern runtimepath rtp scroll scr shell sh shellcmdflag shcf showstatuslinks ssli
\ showtabline stal suggestengines urlseparator verbose vbs wildcase wic wildignore wig wildmode wim wildoptions wop
\ wordseparators wsp
\ contained nextgroup=muttatorSetMod
" toggle options
syn match muttatorOption "\<\%(no\|inv\)\=\%(autoexternal\|errorbells\|eb\|exrc\|ex\|focuscontent\|fc\|fullscreen\|fs\)\>!\="
\ contained nextgroup=muttatorSetMod
syn match muttatorOption "\<\%(no\|inv\)\=\%(insertmode\|im\|loadplugins\|lpl\|more\|showmode\|smd\|visualbell\|vb\)\>!\="
\ contained nextgroup=muttatorSetMod
syn match muttatorOption "\<\%(no\|inv\)\=\%(usermode\|um\)\>!\="
\ contained nextgroup=muttatorSetMod
syn match muttatorSetMod "\%(\<[a-z_]\+\)\@<=&" contained
syn region muttatorJavaScript start="\%(^\s*\%(javascript\|js\)\s\+\)\@<=" end="$" contains=@javascriptTop keepend oneline
syn region muttatorJavaScript matchgroup=muttatorJavascriptDelimiter
\ start="\%(^\s*\%(javascript\|js\)\s\+\)\@<=<<\s*\z(\h\w*\)"hs=s+2 end="^\z1$" contains=@javascriptTop fold
let s:cssRegionStart = '\%(^\s*sty\%[le]!\=\s\+\%(-\%(n\|name\)\%(\s\+\|=\)\S\+\s\+\)\=[^-]\S\+\s\+\)\@<='
execute 'syn region muttatorCss start="' . s:cssRegionStart . '" end="$" contains=@cssTop keepend oneline'
execute 'syn region muttatorCss matchgroup=muttatorCssDelimiter'
\ 'start="' . s:cssRegionStart . '<<\s*\z(\h\w*\)"hs=s+2 end="^\z1$" contains=@cssTop fold'
syn match muttatorNotation "<[0-9A-Za-z-]\+>"
syn match muttatorComment +".*$+ contains=muttatorTodo,@Spell
syn keyword muttatorTodo FIXME NOTE TODO XXX contained
syn region muttatorString start="\z(["']\)" end="\z1" skip="\\\\\|\\\z1" oneline
syn match muttatorLineComment +^\s*".*$+ contains=muttatorTodo,@Spell
" NOTE: match vim.vim highlighting group names
hi def link muttatorAutoCmd muttatorCommand
hi def link muttatorAutoEvent Type
hi def link muttatorCommand Statement
hi def link muttatorComment Comment
hi def link muttatorJavascriptDelimiter Delimiter
hi def link muttatorCssDelimiter Delimiter
hi def link muttatorNotation Special
hi def link muttatorLineComment Comment
hi def link muttatorOption PreProc
hi def link muttatorSetMod muttatorOption
hi def link muttatorString String
hi def link muttatorTodo Todo
let b:current_syntax = "muttator"
let &cpo = s:cpo_save
unlet s:cpo_save
" vim: tw=130 et ts=4 sw=4:

View File

@@ -1,28 +1,28 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#"> <RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#">
<Description about="urn:mozilla:install-manifest"> <Description about="urn:mozilla:install-manifest">
<em:id>muttator@mozdev.org</em:id> <em:id>muttator@mozdev.org</em:id>
<em:name>Muttator</em:name> <em:name>Muttator</em:name>
<em:version>###VERSION###</em:version> <em:version>###VERSION###</em:version>
<em:description>Make Thunderbird behave like Vim</em:description> <em:description>Make Thunderbird behave like Vim</em:description>
<em:creator>Martin Stubenschrott</em:creator> <em:creator>Martin Stubenschrott</em:creator>
<em:homepageURL>http://vimperator.org/</em:homepageURL> <em:homepageURL>http://vimperator.org/</em:homepageURL>
<em:iconURL>chrome://muttator/skin/icon.png</em:iconURL> <em:iconURL>chrome://muttator/skin/icon.png</em:iconURL>
<em:file> <em:file>
<Description about="urn:mozilla:extension:file:vimperator.jar"> <Description about="urn:mozilla:extension:file:vimperator.jar">
<em:package>content/muttator/</em:package> <em:package>content/muttator/</em:package>
</Description> </Description>
</em:file> </em:file>
<em:targetApplication> <em:targetApplication>
<Description> <Description>
<em:id>{3550f703-e582-4d05-9a08-453d09bdfdc6}</em:id> <em:id>{3550f703-e582-4d05-9a08-453d09bdfdc6}</em:id>
<em:minVersion>3.0a1pre</em:minVersion> <em:minVersion>3.0b2pre</em:minVersion>
<em:maxVersion>3.0b2pre</em:maxVersion> <em:maxVersion>3.0b2</em:maxVersion>
</Description> </Description>
</em:targetApplication> </em:targetApplication>
</Description> </Description>
</RDF> </RDF>

View File

@@ -1 +0,0 @@
../../../common/Makefile.doc

View File

@@ -0,0 +1,2 @@
BASE = ../../../common
include $(BASE)/Makefile.doc

View File

@@ -7,6 +7,10 @@ Developers:
* Tim Hammerquist (penryu@gmail.com) * Tim Hammerquist (penryu@gmail.com)
* Konstantin Stepanov (milezv@yandex.ru) * Konstantin Stepanov (milezv@yandex.ru)
* Kris Maglione * Kris Maglione
* Ted Pavlic <ted@tedpavlic.com>
* anekos <anekos@snca.net>
* teramako <teramako@gmail.com>
* janus_wel <janus.wel.3@gmail.com>
Inactive/former developers: Inactive/former developers:
* Viktor Kojouharov (Виктор Кожухаров) * Viktor Kojouharov (Виктор Кожухаров)
@@ -33,3 +37,4 @@ Patches (in no special order):
* Raimon Grau Cuscó (document relationship navigation - ]], [[) * Raimon Grau Cuscó (document relationship navigation - ]], [[)
* Ryan Zheng (ctrl-x/a support) * Ryan Zheng (ctrl-x/a support)
* Dan Boger (:set online support) * Dan Boger (:set online support)
* Štěpán Němec (help copy-editing and favicon support)

View File

@@ -1,7 +1,16 @@
Contiuous donations: Continuous donations:
* Daniel Bainton (web hosting) * Daniel Bainton (web hosting)
2009: 2009:
* Convolution
* Brian Hall
* Daniel Hahler
* Per-Henrik Persson
* David C Foor
* Oliver Schaefer
* Paul Moss
* Yongji Zhang
* Brian Peiris
* Peleg Michaeli ("Every hand revealed" from my amazon.de wishlist) * Peleg Michaeli ("Every hand revealed" from my amazon.de wishlist)
* InspireFocus * InspireFocus
* Michael Fremont * Michael Fremont

View File

@@ -1,6 +1,6 @@
#### configuration #### configuration
VERSION = 2.0pre VERSION = 2.0b3pre
NAME = vimperator NAME = vimperator
include ../common/Makefile.common include ../common/Makefile.common

View File

@@ -12,7 +12,7 @@
* IMPORTANT: Due to much improved autocompletion, changed default 'complete' option * IMPORTANT: Due to much improved autocompletion, changed default 'complete' option
value to 'sfl', listing intelligent Firefox location bar results. Removed possibility value to 'sfl', listing intelligent Firefox location bar results. Removed possibility
to use 'h' in 'complete'. to use 'h' in 'complete'.
* IMPORTANT: AlwaysHint mode with ;F mode changed the semantics slightly * IMPORTANT: AlwaysHint mode with ;F mode changed the semantics slightly.
* IMPORTANT: command actions now take an args object, returned from * IMPORTANT: command actions now take an args object, returned from
commands.parseArgs, as their first argument. This will break any commands commands.parseArgs, as their first argument. This will break any commands
not using the args parser explicitly. The old string value is now not using the args parser explicitly. The old string value is now
@@ -20,10 +20,10 @@
* IMPORTANT: 'verbose' is now used for message levels. Logging is * IMPORTANT: 'verbose' is now used for message levels. Logging is
controlled by the extensions.liberator.loglevel preference. controlled by the extensions.liberator.loglevel preference.
* IMPORTANT: :viusage and :exusage now jump to the help index, use the * IMPORTANT: :viusage and :exusage now jump to the help index, use the
special versions for the old behavior special versions for the old behavior.
* IMPORTANT: renamed Startup and Quit autocmd events to VimperatorEnter and * IMPORTANT: renamed Startup and Quit autocmd events to VimperatorEnter and
VimperatorLeave respectively VimperatorLeave respectively.
* IMPORTANT: 'verbose' is now by default at 1, set to 0 to not show any status messages * IMPORTANT: 'verbose' is now by default at 1, set to 0 to not show any status messages.
* IMPORTANT: $VIMPERATOR_HOME is no longer used. * IMPORTANT: $VIMPERATOR_HOME is no longer used.
* [count]<C-n> now goes to the [count]th next tab rather than the [count]th tab. * [count]<C-n> now goes to the [count]th next tab rather than the [count]th tab.
@@ -58,7 +58,7 @@
* much improved completion support, including javascript, option, and search keyword * much improved completion support, including javascript, option, and search keyword
* add <PageUp>/<S-Up> and <PageDown>/<S-Down> command-line mappings for * add <PageUp>/<S-Up> and <PageDown>/<S-Down> command-line mappings for
selecting the previous and next history items selecting the previous and next history items
* remove 'hintstyle', 'hlsearchstyle' and 'visualbellstyle' - use * remove 'hintstyle', 'hlsearchstyle', 't_vb' and 'visualbellstyle' - use
:highlight {Hint,Search,Bell} :highlight {Hint,Search,Bell}
* add :highlight * add :highlight
* add :optionusage * add :optionusage
@@ -86,6 +86,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:
@@ -151,7 +152,7 @@
2008-05-14: 2008-05-14:
* version 1.0 * version 1.0
* THIS VERSION ONLY WORKS WITH FIREFOX 3.0 beta3 or newer * IMPORTANT: THIS VERSION ONLY WORKS WITH FIREFOX 3.0 beta3 or newer
* IMPORTANT: Major hints rewrite * IMPORTANT: Major hints rewrite
read up the new help for the f, F and ; commands for details read up the new help for the f, F and ; commands for details
removed the following hint options: 'hintchars' 'maxhints' removed the following hint options: 'hintchars' 'maxhints'
@@ -210,7 +211,7 @@
2007-12-21: 2007-12-21:
* version 0.5.3 * version 0.5.3
* IMPORTANT! options are no longer automatically stored - use the * IMPORTANT: options are no longer automatically stored - use the
~/.vimperatorrc file instead for persistent options ~/.vimperatorrc file instead for persistent options
* :tabnext and :tabprevious now accept an argument * :tabnext and :tabprevious now accept an argument
* the count to gT now specifies a relative tab motion like Vim * the count to gT now specifies a relative tab motion like Vim
@@ -379,7 +380,7 @@
* added 'n' and 'N' to repeat a search * added 'n' and 'N' to repeat a search
* many small bug fixes * many small bug fixes
17/04/2007: 2007-04-17:
* version 0.3 * version 0.3
* added Ctrl-v support to pass one key to firefox (patch by Muthu Kannan) * added Ctrl-v support to pass one key to firefox (patch by Muthu Kannan)
* also 'I' will go to 'ignorekeys' mode until esc is pressed, presenting a workaround * also 'I' will go to 'ignorekeys' mode until esc is pressed, presenting a workaround
@@ -392,6 +393,6 @@
* ability to use shift and ctrl with special keys like F1 in mappings * ability to use shift and ctrl with special keys like F1 in mappings
* small documentation and other fixes * small documentation and other fixes
11/04/2007: 2007-04-11:
* version 0.2 * version 0.2
* first public release * first public release

View File

@@ -18,6 +18,10 @@ BUGS:
- :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 - http://cgiirc.blitzed.org?chan=%23debug is unusable after login in
- "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
be matched literally. In fact, typing "g<C-g>" out literally is
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 - :set noflashblock seems broken (= :set fb? afterwards says "fb"), let's see if that's a
@@ -29,10 +33,16 @@ 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 is broken for multiple commands when open E.g. :ls | ls - MOW rendering is broken for multiple commands when open E.g. :ls | ls
- completion height is broken, try :a<tab>....<tab>, when it wraps it's totally off. - completion height is broken, try :a<tab>....<tab>, when it wraps it's totally off.
and even if it is not totally off, i had it jump by one pixel when wrapping around. and even if it is not totally off, i had it jump by one pixel when wrapping around.
If that's unfixable, i propose reverting the new completion height stuff. 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 ->
Unresponsive Script: util.js:79 (sometimes xmlToDom() and elsewhere)
- :hardcopy! seems to be broken for me
- MOW hinting is broken, perhaps this should be properly disabled for 2.0
FEATURES: FEATURES:
9 finish :help TODOs 9 finish :help TODOs
@@ -69,7 +79,7 @@ FEATURES:
google to another page and click 10 links there, [d would take me back to the google page google to another page and click 10 links there, [d would take me back to the google page
opera's fast forward does something like this opera's fast forward does something like this
7 make an option to disable session saving by default when you close Firefox 7 make an option to disable session saving by default when you close Firefox
7 The output of the pageinfo-command sould contain the security-information of ssl-encrypted sites 7 The output of the pageinfo-command should contain the security-information of ssl-encrypted sites
7 Add :every command 7 Add :every command
6 support private mode (and :set [no]private): http://ehsanakhgari.org/blog/2008-11-08/prepare-your-add-private-browsing 6 support private mode (and :set [no]private): http://ehsanakhgari.org/blog/2008-11-08/prepare-your-add-private-browsing
6 add [count] support to :b* and :tab* commands where missing 6 add [count] support to :b* and :tab* commands where missing

View File

@@ -711,7 +711,7 @@ function History() //{{{
if (url) if (url)
{ {
let sh = window.getWebNavigation().sessionHistory; let sh = window.getWebNavigation().sessionHistory;
for (let i in util.range(sh.index, 0, true)) for (let i in util.range(sh.index, 0, -1))
{ {
if (sh.getEntryAtIndex(i, false).URI.spec == url) if (sh.getEntryAtIndex(i, false).URI.spec == url)
{ {
@@ -735,7 +735,7 @@ function History() //{{{
let sh = window.getWebNavigation().sessionHistory; let sh = window.getWebNavigation().sessionHistory;
context.anchored = false; context.anchored = false;
context.completions = [sh.getEntryAtIndex(i, false) for (i in util.range(sh.index, 0, true))]; 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" };
}, },
count: true, count: true,
@@ -1043,8 +1043,7 @@ function QuickMarks() //{{{
list: function list(filter) list: function list(filter)
{ {
let marks = [key for ([key, val] in qmarks)]; let marks = [k for ([k, v] in qmarks)];
// This was a lot nicer without the lambda...
let lowercaseMarks = marks.filter(function (x) /[a-z]/.test(x)).sort(); let lowercaseMarks = marks.filter(function (x) /[a-z]/.test(x)).sort();
let uppercaseMarks = marks.filter(function (x) /[A-Z]/.test(x)).sort(); let uppercaseMarks = marks.filter(function (x) /[A-Z]/.test(x)).sort();
let numberMarks = marks.filter(function (x) /[0-9]/.test(x)).sort(); let numberMarks = marks.filter(function (x) /[0-9]/.test(x)).sort();

View File

@@ -117,7 +117,7 @@ const config = { //{{{
"pattern.html", "tabs.html", "hints.html", "map.html", "eval.html", "pattern.html", "tabs.html", "hints.html", "map.html", "eval.html",
"marks.html", "repeat.html", "autocommands.html", "print.html", "marks.html", "repeat.html", "autocommands.html", "print.html",
"gui.html", "styling.html", "message.html", "developer.html", "gui.html", "styling.html", "message.html", "developer.html",
"various.html", "index.html" "various.html", "index.html", "version.html"
], ],
scripts: [ scripts: [
@@ -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
}); });

View File

@@ -0,0 +1,9 @@
VIMBALL = vimperator.vba
vimball: mkvimball.txt syntax/vimperator.vim ftdetect/vimperator.vim
-echo '%MkVimball! ${VIMBALL} .' | vim -u NORC -N -e -s mkvimball.txt
all: vimball
clean:
rm -f ${VIMBALL}

View File

@@ -0,0 +1 @@
au BufNewFile,BufRead *vimperatorrc*,*.vimp set filetype=vimperator

View File

@@ -0,0 +1,2 @@
syntax/vimperator.vim
ftdetect/vimperator.vim

View File

@@ -1,7 +1,7 @@
" Vim syntax file " Vim syntax file
" Language: VIMperator configuration file " Language: VIMperator configuration file
" Maintainer: Doug Kearns <dougkearns@gmail.com> " Maintainer: Doug Kearns <dougkearns@gmail.com>
" Last Change: 2008 Dec 31 " Last Change: 2009 Feb 19
if exists("b:current_syntax") if exists("b:current_syntax")
finish finish
@@ -18,19 +18,19 @@ unlet b:current_syntax
syn match vimperatorCommandStart "\%(^\s*:\=\)\@<=" nextgroup=vimperatorCommand,vimperatorAutoCmd syn match vimperatorCommandStart "\%(^\s*:\=\)\@<=" nextgroup=vimperatorCommand,vimperatorAutoCmd
syn keyword vimperatorCommand ab[breviate] ab[clear] addo[ns] b[uffer] ba[ck] bd[elete] beep bf[irst] bl[ast] bma[rk] bmarks syn keyword vimperatorCommand ab[breviate] ab[clear] addo[ns] bN[ext] b[uffer] ba[ck] bd[elete] beep bf[irst] bl[ast] bma[rk]
\ bn[ext] bN[ext] bp[revious] br[ewind] buffers bun[load] bw[ipeout] ca[bbrev] cabc[lear] cd chd[ir] colo[rscheme] cuna[bbrev] \ bmarks bn[ext] bp[revious] br[ewind] buffers bun[load] bw[ipeout] ca[bbrev] cabc[lear] cd chd[ir] cm[ap] cmapc[lear]
\ cm[ap] cmapc[lear] cno[remap] comc[lear] com[mand] cu[nmap] do[autocmd] doautoa[ll] delbm[arks] delc[ommand] delmac[ros] \ cno[remap] colo[rscheme] com[mand] comc[lear] cu[nmap] cuna[bbrev] delbm[arks] delc[ommand] delm[arks] delmac[ros]
\ delm[arks] delqm[arks] dels[tyle] dia[log] dl downl[oads] e[dit] ec[ho] echoe[rr] echom[sg] em[enu] exe[cute] exu[sage] \ delqm[arks] dels[tyle] dia[log] dl do[autocmd] doautoa[ll] downl[oads] e[dit] ec[ho] echoe[rr] echom[sg] em[enu] exe[cute]
\ fini[sh] files fo[rward] fw h[elp] ha[rdcopy] hi[ghlight] hist[ory] hs ia[bbrev] iabc[lear] im[ap] imapc[lear] ino[remap] \ exu[sage] files fini[sh] fo[rward] fw h[elp] ha[rdcopy] hi[ghlight] hist[ory] hs ia[bbrev] iabc[lear] im[ap] imapc[lear]
\ iuna[bbrev] iu[nmap] javas[cript] ju[mps] js let loadplugins lpl ls macros ma[rk] map mapc[lear] marks mes[sages] \ ino[remap] iu[nmap] iuna[bbrev] javas[cript] js ju[mps] let loadplugins lpl ls ma[rk] macros map mapc[lear] marks mes[sages]
\ mkv[imperatorrc] no[remap] noh[lsearch] norm[al] o[pen] optionu[sage] pa[geinfo] pagest[yle] pc[lose] pl[ay] pref[erences] \ mkv[imperatorrc] no[remap] noh[lsearch] norm[al] o[pen] optionu[sage] pa[geinfo] pagest[yle] pc[lose] pl[ay] pref[erences]
\ prefs pw[d] q[uit] qa[ll] qma[rk] qmarks quita[ll] re[draw] re[load] reloada[ll] res[tart] run runt[ime] sty[le] sav[eas] \ prefs pw[d] q[uit] qa[ll] qma[rk] qmarks quita[ll] re[draw] re[load] reloada[ll] res[tart] run runt[ime] sav[eas] sb[ar]
\ sb[ar] sb[open] sbcl[ose] scrip[tnames] se[t] setg[lobal] setl[ocal] sideb[ar] so[urce] st[op] tN[ext] t[open] tab \ sb[open] sbcl[ose] scrip[tnames] se[t] setg[lobal] setl[ocal] sideb[ar] so[urce] st[op] sty[le] tN[ext] t[open] tab
\ tabde[tach] tabd[uplicate] tabN[ext] tabc[lose] tabe[dit] tabfir[st] tabl[ast] tabm[ove] tabn[ext] tabnew tabo[nly] tabopen \ tabN[ext] tabc[lose] tabd[uplicate] tabde[tach] tabe[dit] tabfir[st] tabl[ast] tabm[ove] tabn[ext] tabnew tabo[nly] tabopen
\ tabp[revious] tabr[ewind] tabs time tn[ext] tp[revious] u[ndo] una[bbreviate] undoa[ll] unl[et] unm[ap] ve[rsion] \ tabp[revious] tabr[ewind] tabs time tn[ext] tp[revious] u[ndo] una[bbreviate] undoa[ll] unl[et] unm[ap] ve[rsion]
\ vie[wsource] viu[sage] w[rite] wc[lose] win[open] winc[lose] wine[dit] wo[pen] wqa[ll] wq xa[ll] zo[om] \ vie[wsource] viu[sage] w[rite] wc[lose] win[open] winc[lose] wine[dit] wo[pen] wq wqa[ll] xa[ll] zo[om]
\ contained \ contained
syn match vimperatorCommand "!" contained syn match vimperatorCommand "!" contained
@@ -45,11 +45,11 @@ syn match vimperatorAutoEventList "\(\a\+,\)*\a\+" contained contains=vimperator
syn region vimperatorSet matchgroup=vimperatorCommand start="\%(^\s*:\=\)\@<=\<\%(setl\%[ocal]\|setg\%[lobal]\|set\=\)\=\>" syn region vimperatorSet matchgroup=vimperatorCommand start="\%(^\s*:\=\)\@<=\<\%(setl\%[ocal]\|setg\%[lobal]\|set\=\)\=\>"
\ end="$" keepend oneline contains=vimperatorOption,vimperatorString \ end="$" keepend oneline contains=vimperatorOption,vimperatorString
syn keyword vimperatorOption activate act alfc albc cdpath cd complete cpt defsearch ds editor extendedhinttags eht eventignore ei syn keyword vimperatorOption activate act cdpath cd complete cpt defsearch ds editor eventignore ei extendedhinttags eht
\ followhints fh guioptions go helpfile hf hintmatching hm hs hinttags ht hinttimeout hto history hi laststatus ls lbc lfc \ followhints fh guioptions go helpfile hf hintmatching hm hinttags ht hinttimeout hto history hi laststatus ls messages msgs
\ messages msgs newtab nextpattern pageinfo pa popups pps previewheight pvh previouspattern runtimepath rtp scroll scr shell \ newtab nextpattern pageinfo pa popups pps previouspattern runtimepath rtp scroll scr shell sh shellcmdflag shcf
\ sh shellcmdflag shcf showstatuslinks ssli showtabline stal suggestengines titlestring urlseparator verbose vbs t_vb wildcase \ showstatuslinks ssli showtabline stal suggestengines titlestring urlseparator verbose vbs wildcase wic wildignore wig
\ wic wildignore wig wildmode wim wildoptions wop wordseparators wsp \ wildmode wim wildoptions wop wordseparators wsp
\ contained nextgroup=vimperatorSetMod \ contained nextgroup=vimperatorSetMod
" toggle options " toggle options
@@ -66,12 +66,12 @@ syn match vimperatorSetMod "\%(\<[a-z_]\+\)\@<=&" contained
syn region vimperatorJavaScript start="\%(^\s*\%(javascript\|js\)\s\+\)\@<=" end="$" contains=@javascriptTop keepend oneline syn region vimperatorJavaScript start="\%(^\s*\%(javascript\|js\)\s\+\)\@<=" end="$" contains=@javascriptTop keepend oneline
syn region vimperatorJavaScript matchgroup=vimperatorJavascriptDelimiter syn region vimperatorJavaScript matchgroup=vimperatorJavascriptDelimiter
\ start="\%(^\s*\%(javascript\|js\)\s\+\)\@<=<<\s*\z(\h\w*\)"hs=s+2 end="^\z1$" contains=@javascriptTop fold \ start="\%(^\s*\%(javascript\|js\)\s\+\)\@<=<<\s*\z(\h\w*\)"hs=s+2 end="^\z1$" contains=@javascriptTop fold
let s:cssRegionStart = '\%(^\s*sty\%[le]!\=\s\+\%(-\%(n\|name\)\%(\s\+\|=\)\S\+\s\+\)\=[^-]\S\+\s\+\)\@<=' let s:cssRegionStart = '\%(^\s*sty\%[le]!\=\s\+\%(-\%(n\|name\)\%(\s\+\|=\)\S\+\s\+\)\=[^-]\S\+\s\+\)\@<='
execute 'syn region vimperatorCss start="' . s:cssRegionStart . '" end="$" contains=@cssTop keepend oneline' execute 'syn region vimperatorCss start="' . s:cssRegionStart . '" end="$" contains=@cssTop keepend oneline'
execute 'syn region vimperatorCss matchgroup=vimperatorCssDelimiter' execute 'syn region vimperatorCss matchgroup=vimperatorCssDelimiter'
\ 'start="' . s:cssRegionStart . '<<\s*\z(\h\w*\)"hs=s+2 end="^\z1$" contains=@cssTop fold' \ 'start="' . s:cssRegionStart . '<<\s*\z(\h\w*\)"hs=s+2 end="^\z1$" contains=@cssTop fold'
syn match vimperatorNotation "<[0-9A-Za-z-]\+>" syn match vimperatorNotation "<[0-9A-Za-z-]\+>"
@@ -85,15 +85,15 @@ syn match vimperatorLineComment +^\s*".*$+ contains=vimperatorTodo,@Spell
" NOTE: match vim.vim highlighting group names " NOTE: match vim.vim highlighting group names
hi def link vimperatorAutoCmd vimperatorCommand hi def link vimperatorAutoCmd vimperatorCommand
hi def link vimperatorAutoEvent Type hi def link vimperatorAutoEvent Type
hi def link vimperatorCommand Statement hi def link vimperatorCommand Statement
hi def link vimperatorComment Comment hi def link vimperatorComment Comment
hi def link vimperatorJavascriptDelimiter Delimiter hi def link vimperatorJavascriptDelimiter Delimiter
hi def link vimperatorCssDelimiter Delimiter hi def link vimperatorCssDelimiter Delimiter
hi def link vimperatorNotation Special hi def link vimperatorNotation Special
hi def link vimperatorLineComment Comment hi def link vimperatorLineComment Comment
hi def link vimperatorOption PreProc hi def link vimperatorOption PreProc
hi def link vimperatorSetMod vimperatorOption hi def link vimperatorSetMod vimperatorOption
hi def link vimperatorString String hi def link vimperatorString String
hi def link vimperatorTodo Todo hi def link vimperatorTodo Todo
let b:current_syntax = "vimperator" let b:current_syntax = "vimperator"

View File

@@ -1 +0,0 @@
../../../common/Makefile.doc

View File

@@ -0,0 +1,2 @@
BASE = ../../../common
include $(BASE)/Makefile.doc

View File

@@ -13,6 +13,7 @@ email=stubenschrott@gmx.net
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset={encoding=UTF-8}" /> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset={encoding=UTF-8}" />
<meta name="generator" content="AsciiDoc {asciidoc-version}" /> <meta name="generator" content="AsciiDoc {asciidoc-version}" />
<link rel="stylesheet" href="xhtml11.css" type="text/css" /> <link rel="stylesheet" href="xhtml11.css" type="text/css" />
<link rel="icon" href="chrome://vimperator/skin/icon.png" type="image/png" />
<script type="application/x-javascript;version=1.8" src="help.js"></script> <script type="application/x-javascript;version=1.8" src="help.js"></script>
<title>{doctitle}</title> <title>{doctitle}</title>
</head> </head>
@@ -27,7 +28,7 @@ HEADER=<div style="float: right; padding-left: 1px;"> <form action="https://www.
\[count\]=<span class="argument">&#91;count&#93;</span> \[count\]=<span class="argument">&#91;count&#93;</span>
\[!\]=<span class="argument">&#91;!&#93;</span> \[!\]=<span class="argument">&#91;!&#93;</span>
# [macros] [macros]
# section:Introduction[tag1,tag2] # section:Introduction[tag1,tag2]
(?su)(?<!\S)[\\]?\|(?P<attrlist>.+?)\|(?!\+)=section (?su)(?<!\S)[\\]?\|(?P<attrlist>.+?)\|(?!\+)=section
# help:helptext[href] # help:helptext[href]
@@ -55,6 +56,7 @@ HEADER=<div style="float: right; padding-left: 1px;"> <form action="https://www.
[m]=#mapping [m]=#mapping
[a]=#argument [a]=#argument
# FIXME: this prevents all asciidoc attribute processing # FIXME: this prevents all asciidoc attribute processing
# ^obviously it doesn't? --stepnem
{|}=argument2 {|}=argument2
# disable monospaced text as all our text is monospaced and it causes problems for some things # disable monospaced text as all our text is monospaced and it causes problems for some things
+= +=
@@ -74,7 +76,7 @@ argument2=<span class="argument">&\#123;|&#125;</span>
argument3=<span class="argument">[|]</span> argument3=<span class="argument">[|]</span>
[specialwords] [specialwords]
warningwords=WARNING: Warning: warningwords=WARNING: Warning: IMPORTANT: Important:
infowords=NOTE: Note: infowords=NOTE: Note:
[warningwords] [warningwords]

View File

@@ -6,8 +6,10 @@ Autocommands are a way to automatically execute code when certain events
happen. happen.
|:au| |:autocmd| + |:au| |:autocmd| +
||:au[tocmd]|| Execute commands automatically on events. ||:au[tocmd]||
________________________________________________________________________________ ________________________________________________________________________________
Execute commands automatically on events.
[c]:au[tocmd][c] {event} {pat} {cmd} [c]:au[tocmd][c] {event} {pat} {cmd}
Add {cmd} to the list of commands Vimperator will execute on {event} for a URL matching {pat}: Add {cmd} to the list of commands Vimperator will execute on {event} for a URL matching {pat}:
@@ -26,9 +28,9 @@ Available {events}:
*DownloadPost* Triggered when a download has completed *DownloadPost* Triggered when a download has completed
*Fullscreen* Triggered when the browser's fullscreen state changes *Fullscreen* Triggered when the browser's fullscreen state changes
*LocationChange* Triggered when changing tabs or when navigating to a new location *LocationChange* Triggered when changing tabs or when navigating to a new location
*PageLoadPre* Triggered after a page load is initiated. *PageLoadPre* Triggered after a page load is initiated
*PageLoad* Triggered when a page gets (re)loaded/opened *PageLoad* Triggered when a page gets (re)loaded/opened
*ShellCmdPost* Triggered after executing a shell command with :!cmd *ShellCmdPost* Triggered after executing a shell command with [c]:![c]#{cmd}
*VimperatorEnter* Triggered after Firefox starts *VimperatorEnter* Triggered after Firefox starts
*VimperatorLeavePre* Triggered before exiting Firefox, just before destroying each module *VimperatorLeavePre* Triggered before exiting Firefox, just before destroying each module
*VimperatorLeave* Triggered before exiting Firefox *VimperatorLeave* Triggered before exiting Firefox
@@ -43,7 +45,7 @@ The following keywords are available where relevant:
`--------------`---------------------------------------------- `--------------`----------------------------------------------
*<url>* The URL against which the event was selected. *<url>* The URL against which the event was selected.
*<title>* The page, bookmark or download title. *<title>* The page, bookmark or download title.
*<tab>* The index tab in which the event occurred. *<tab>* The tab in which the event occurred.
*<tags>* The tags applied to <url>. Only for *BookmarkAdd*. *<tags>* The tags applied to <url>. Only for *BookmarkAdd*.
*<keyword>* The keywords applied to the bookmark. Only for *BookmarkAdd*. *<keyword>* The keywords applied to the bookmark. Only for *BookmarkAdd*.
*<icon>* The icon associated with <url>. Only for *BookmarkAdd*. *<icon>* The icon associated with <url>. Only for *BookmarkAdd*.
@@ -75,15 +77,15 @@ section:Examples[autocmd-examples]
Enable _passthrough_ mode on all Google sites: Enable _passthrough_ mode on all Google sites:
:autocmd LocationChange .* js modes.passAllKeys = /google\.com/.test(buffer.URL) \{nbsp}[c]:autocmd LocationChange .* js modes.passAllKeys = /google\.com/.test(buffer.URL)[c]
Enable _passthrough_ mode on *some* Google sites: Enable _passthrough_ mode on *some* Google sites:
:autocmd LocationChange .* js modes.passAllKeys = /(www|mail)\.google\.com/.test(buffer.URL) \{nbsp}[c]:autocmd LocationChange .* js modes.passAllKeys = /(www|mail)\.google\.com/.test(buffer.URL)[c]
Set the filetype to mail when editing email at Gmail: Set the filetype to mail when editing email at Gmail:
:autocmd LocationChange .* :set editor=gvim\ -f \{nbsp}[c]:autocmd LocationChange .* :set editor=gvim\ -f[c] +
:autocmd LocationChange mail\.google\.com :set editor="gvim -f -c 'set ft=mail'" \{nbsp}[c]:autocmd LocationChange mail\.google\.com :set editor="gvim -f -c 'set ft=mail'"[c]
// vim: set filetype=asciidoc: // vim: set filetype=asciidoc:

View File

@@ -35,7 +35,7 @@ section:Opening{nbsp}web{nbsp}pages[opening]
________________________________________________________________________________ ________________________________________________________________________________
Open one or more URLs in the current tab. Open one or more URLs in the current tab.
Multiple URLs can be separated with 'urlseparator' (default: ", " Note that the Multiple URLs can be separated with 'urlseparator' (default: ", " Note that the
space after the comma is required.") space after the comma is required.)
The first URL is opened in the current tab, and all other URLs are The first URL is opened in the current tab, and all other URLs are
opened in new tabs. opened in new tabs.
Each token is analyzed and in this order: Each token is analyzed and in this order:
@@ -71,7 +71,7 @@ ________________________________________________________________________________
||t|| ||t||
________________________________________________________________________________ ________________________________________________________________________________
Just like [c]:open[c] but also uses a new tab for the first URL. When Just like [c]:open[c] but also uses a new tab for the first URL. When
used with [!], the 'tabopen' value of the 'activate' option is negated. used with [!], the *tabopen* value of the 'activate' option is negated.
________________________________________________________________________________ ________________________________________________________________________________
@@ -86,9 +86,9 @@ ________________________________________________________________________________
|:tabd| |:tabduplicate| |:tabd| |:tabduplicate|
||:[count]tabd[uplicate][!]|| + ||:[count]tabd[uplicate][!]|| +
________________________________________________________________________________ ________________________________________________________________________________
Duplicates current tab [count] times. Uses 'tabopen' value of the 'activate' to Duplicates current tab [count] times. Uses *tabopen* value of the 'activate'
determine if last cloned tab should be activated. When used with [!], 'tabopen' option to determine if the last cloned tab should be activated. When used with
value is negated. [!], *tabopen* value is negated.
________________________________________________________________________________ ________________________________________________________________________________
@@ -138,7 +138,7 @@ ________________________________________________________________________________
||[count]<C-x>|| ||[count]<C-x>||
________________________________________________________________________________ ________________________________________________________________________________
Decrements the last number in URL by 1, or by [count] if given. Negative Decrements the last number in URL by 1, or by [count] if given. Negative
numbers are not supported, as this not generally useful, so the number cannot numbers are not supported, as this is not generally useful, so the number cannot
be decremented past 0. be decremented past 0.
________________________________________________________________________________ ________________________________________________________________________________
@@ -160,22 +160,22 @@ ________________________________________________________________________________
section:Navigating[navigating] section:Navigating[navigating]
|H| |<C-o>| |CTRL-O| |:ba| |:back| |H| |<C-o>| |CTRL-O| |:ba| |:back|
||:[count]ba[ck] {url}|| + ||:[count]ba[ck] [url]|| +
||:ba[ck]!|| + ||:ba[ck]!|| +
||CTRL-o|| ||CTRL-o||
________________________________________________________________________________ ________________________________________________________________________________
Go [count] pages back in the browser history. If {url} is specified go back to Go [count] pages back in the browser history. If [url] is specified go back to
the first matching URL. The special version [c]:back![c] goes to the beginning the first matching URL. The special version [c]:back![c] goes to the beginning
of the browser history. of the browser history.
________________________________________________________________________________ ________________________________________________________________________________
|L| |<C-i>| |CTRL-i| |:fo| |:fw| |:forward| |L| |<C-i>| |CTRL-i| |:fo| |:fw| |:forward|
||:[count]fo[rward] {url}|| + ||:[count]fo[rward] [url]|| +
||:fo[rward]!|| + ||:fo[rward]!|| +
||CTRL-i|| ||CTRL-i||
________________________________________________________________________________ ________________________________________________________________________________
Go [count] pages forward in the browser history. If {url} is specified go Go [count] pages forward in the browser history. If [url] is specified go
forward to the first matching URL. The special version [c]:forward![c] goes to forward to the first matching URL. The special version [c]:forward![c] goes to
the end of the browser history. the end of the browser history.
________________________________________________________________________________ ________________________________________________________________________________
@@ -311,7 +311,7 @@ ________________________________________________________________________________
||:xa[ll]|| ||:xa[ll]||
________________________________________________________________________________ ________________________________________________________________________________
Save the session and quit. Quit Vimperator, no matter how many tabs/windows Save the session and quit. Quit Vimperator, no matter how many tabs/windows
are open. The session is stored. [c]:wq[c] is different as in Vim, as it are open. The session is stored. [c]:wq[c] is different from Vim, as it
closes the window instead of just one tab by popular demand. Complain on the closes the window instead of just one tab by popular demand. Complain on the
mailing list, if you want to change that. mailing list, if you want to change that.
________________________________________________________________________________ ________________________________________________________________________________

View File

@@ -243,28 +243,28 @@ between 0 and 1, not as a percentage.
|+| |zi| + |+| |zi| +
||[count]zi|| ||[count]zi||
________________________________________________________________________________ ________________________________________________________________________________
Enlarge text zoom of current web page. Mnemonic: zoom in Enlarge text zoom of current web page. Mnemonic: zoom in.
________________________________________________________________________________ ________________________________________________________________________________
|zm| + |zm| +
||[count]zm|| ||[count]zm||
________________________________________________________________________________ ________________________________________________________________________________
Enlarge text zoom of current web page by a larger amount. Mnemonic: zoom more Enlarge text zoom of current web page by a larger amount. Mnemonic: zoom more.
________________________________________________________________________________ ________________________________________________________________________________
|-| |zo| + |-| |zo| +
||[count]zo|| ||[count]zo||
________________________________________________________________________________ ________________________________________________________________________________
Reduce text zoom of current web page. Mnemonic: zoom out Reduce text zoom of current web page. Mnemonic: zoom out.
________________________________________________________________________________ ________________________________________________________________________________
|zr| + |zr| +
||[count]zr|| ||[count]zr||
________________________________________________________________________________ ________________________________________________________________________________
Reduce text zoom of current web page by a larger amount. Mnemonic: zoom reduce Reduce text zoom of current web page by a larger amount. Mnemonic: zoom reduce.
________________________________________________________________________________ ________________________________________________________________________________
@@ -279,28 +279,28 @@ ________________________________________________________________________________
|zI| + |zI| +
||[count]zI|| ||[count]zI||
________________________________________________________________________________ ________________________________________________________________________________
Enlarge full zoom of current web page. Mnemonic: zoom in Enlarge full zoom of current web page. Mnemonic: zoom in.
________________________________________________________________________________ ________________________________________________________________________________
|zM| + |zM| +
||[count]zM|| ||[count]zM||
________________________________________________________________________________ ________________________________________________________________________________
Enlarge full zoom of current web page by a larger amount. Mnemonic: zoom more Enlarge full zoom of current web page by a larger amount. Mnemonic: zoom more.
________________________________________________________________________________ ________________________________________________________________________________
|zO| + |zO| +
||[count]zO|| ||[count]zO||
________________________________________________________________________________ ________________________________________________________________________________
Reduce full zoom of current web page. Mnemonic: zoom out Reduce full zoom of current web page. Mnemonic: zoom out.
________________________________________________________________________________ ________________________________________________________________________________
|zR| + |zR| +
||[count]zR|| ||[count]zR||
________________________________________________________________________________ ________________________________________________________________________________
Reduce full zoom of current web page by a larger amount. Mnemonic: zoom reduce Reduce full zoom of current web page by a larger amount. Mnemonic: zoom reduce.
________________________________________________________________________________ ________________________________________________________________________________

View File

@@ -8,7 +8,7 @@ Command-line mode is used to enter Ex commands (":") and text search patterns
|:| + |:| +
||:|| ||:||
________________________________________________________________________________ ________________________________________________________________________________
Start command-line mode. In command-line mode, you can perform extended Start Command-line mode. In Command-line mode, you can perform extended
commands, which may require arguments. commands, which may require arguments.
________________________________________________________________________________ ________________________________________________________________________________
@@ -18,14 +18,14 @@ section:Command-line{nbsp}editing[cmdline-editing]
|c_<C-c>| + |c_<C-c>| +
||<C-c>|| ||<C-c>||
________________________________________________________________________________ ________________________________________________________________________________
Quit command-line mode without executing. Quit Command-line mode without executing.
________________________________________________________________________________ ________________________________________________________________________________
|c_<C-]>| + |c_<C-]>| +
||<C-]>|| ||<C-]>||
________________________________________________________________________________ ________________________________________________________________________________
Expand a command-line abbreviation. Expand a Command-line abbreviation.
________________________________________________________________________________ ________________________________________________________________________________

View File

@@ -4,8 +4,8 @@ section:Writing{nbsp}documentation[writing-docs,documentation]
For every new feature, writing documentation is _mandatory_ for the patch to For every new feature, writing documentation is _mandatory_ for the patch to
be accepted. The docs are written in be accepted. The docs are written in
http://www.methods.co.nz/asciidoc/index.html[asciidoc] version 8.x or http://www.methods.co.nz/asciidoc/index.html[asciidoc] version 8.2.x.
newer. The are placed in the _src/locale/en-US/_ directory and compiled with They are placed in the _src/locale/en-US/_ directory and compiled with
_make doc_. Please refer to the _make doc_. Please refer to the
http://www.methods.co.nz/asciidoc/userguide.html[asciidoc documentation] above http://www.methods.co.nz/asciidoc/userguide.html[asciidoc documentation] above
for details. Usually you can just write text as is, and mostly it will be for details. Usually you can just write text as is, and mostly it will be

View File

@@ -3,7 +3,7 @@ HEADER
|gui| + |gui| +
Although Vimperator offers the most frequently used Firefox functionality via Although Vimperator offers the most frequently used Firefox functionality via
Ex and normal-mode commands there may be times when directly accessing the GUI Ex and Normal mode commands there may be times when directly accessing the GUI
is required. There are commands for accessing the menu system, standard dialogs is required. There are commands for accessing the menu system, standard dialogs
and the sidebar. and the sidebar.

View File

@@ -34,10 +34,11 @@ ________________________________________________________________________________
|;| + |;| +
||#;#{mode}{empty}{hint}|| ||#;#{mode}{empty}{hint}||
________________________________________________________________________________ ________________________________________________________________________________
Start an extended hint mode. ExtendedHint mode is useful, since in this mode Start an extended hint mode. ExtendedHint mode is useful for performing
you can yank link locations, open them in a new window or save images. If operations on hinted elements other than the default left mouse click. For
you want to yank the location of hint [a]24[a], press [m];y[m] to start example, you can yank link locations, open them in a new window or save images.
this hint mode. Then press [a]24[a] to copy the hint location. If you want to yank the location of hint [a]24[a], press [m];y[m] to start this
hint mode. Then press [a]24[a] to copy the hint location.
{mode} can be one of: + {mode} can be one of: +

View File

@@ -6,270 +6,270 @@ This file contains a list of all available commands.
section:Insert{nbsp}mode[insert-index] section:Insert{nbsp}mode[insert-index]
||<C-i>|| Launch the external editor + ||[m]<C-i>[m]|| Launch the external editor +
||<C-]>|| Expand an insert-mode abbreviation + ||[m]<C-]>[m]|| Expand an Insert-mode abbreviation +
section:Normal{nbsp}mode[normal-index] section:Normal{nbsp}mode[normal-index]
||<C-^>|| Select the alternate tab or the [count]th tab + ||[m]<C-^>[m]|| Select the alternate tab or the [count]th tab +
||<C-a>|| Increment last number in URL + ||[m]<C-a>[m]|| Increment last number in URL +
||<C-b>|| Scroll up a full page + ||[m]<C-b>[m]|| Scroll up a full page +
||<C-c>|| Stop loading + ||[m]<C-c>[m]|| Stop loading +
||<C-d>|| Scroll window downwards in the buffer + ||[m]<C-d>[m]|| Scroll window downwards in the buffer +
||<C-f>|| Scroll down a full page + ||[m]<C-f>[m]|| Scroll down a full page +
||<C-g>|| Print the current file name + ||[m]<C-g>[m]|| Print the current file name +
||<C-i>|| Go to a newer position in the jump list + ||[m]<C-i>[m]|| Go to a newer position in the jump list +
||<C-l>|| Redraw the screen + ||[m]<C-l>[m]|| Redraw the screen +
||<C-o>|| Go to an older position in the jump list + ||[m]<C-o>[m]|| Go to an older position in the jump list +
||<C-u>|| Scroll window upwards in the buffer + ||[m]<C-u>[m]|| Scroll window upwards in the buffer +
||<C-v>|| Pass through next key + ||[m]<C-v>[m]|| Pass through next key +
||<C-x>|| Decrement last number in URL + ||[m]<C-x>[m]|| Decrement last number in URL +
||<C-z>|| Temporarily ignore all Vimperator key bindings + ||[m]<C-z>[m]|| Temporarily ignore all Vimperator key bindings +
||<Esc>|| Focus content + ||[m]<Esc>[m]|| Focus content +
||<F1>|| Open help window + ||[m]<F1>[m]|| Open help window +
||<S-Tab>|| Rewind keyboard focus + ||[m]<S-Tab>[m]|| Rewind keyboard focus +
||<Tab>|| Advance keyboard focus + ||[m]<Tab>[m]|| Advance keyboard focus +
||0|| Scroll to the absolute left of the document + ||[m]0[m]|| Scroll to the absolute left of the document +
||$|| Scroll to the absolute right of the document + ||[m]$[m]|| Scroll to the absolute right of the document +
||A|| Toggle bookmarked state of current URL + ||[m]A[m]|| Toggle bookmarked state of current URL +
||B|| Show buffer list + ||[m]B[m]|| Show buffer list +
||D|| Delete current buffer, focus tab to the left + ||[m]D[m]|| Delete current buffer, focus tab to the left +
||F|| Start QuickHint mode, but open link in a new tab + ||[m]F[m]|| Start QuickHint mode, but open link in a new tab +
||G|| Go to the end of the document + ||[m]G[m]|| Go to the end of the document +
||H|| Go back in the browser history + ||[m]H[m]|| Go back in the browser history +
||L|| Go forward in the browser history + ||[m]L[m]|| Go forward in the browser history +
||M|| Add new QuickMark for current URL + ||[m]M[m]|| Add new QuickMark for current URL +
||N|| Find previous + ||[m]N[m]|| Find previous +
||O|| Open one or more URLs, based on current location + ||[m]O[m]|| Open one or more URLs, based on current location +
||P|| Open (put) a URL based on the current clipboard contents in a new buffer + ||[m]P[m]|| Open (put) a URL based on the current clipboard contents in a new buffer +
||R|| Reload while skipping the cache + ||[m]R[m]|| Reload while skipping the cache +
||T|| Open one or more URLs in a new tab, based on current location + ||[m]T[m]|| Open one or more URLs in a new tab, based on current location +
||Y|| Copy selected text or current word + ||[m]Y[m]|| Copy selected text or current word +
||a|| Open a prompt to bookmark the current URL + ||[m]a[m]|| Open a prompt to bookmark the current URL +
||b|| Open a prompt to switch buffers + ||[m]b[m]|| Open a prompt to switch buffers +
||d|| Delete current buffer + ||[m]d[m]|| Delete current buffer +
||f|| Start QuickHint mode + ||[m]f[m]|| Start QuickHint mode +
||h|| Scroll document to the left + ||[m]h[m]|| Scroll document to the left +
||i|| Start caret mode + ||[m]i[m]|| Start Caret mode +
||j|| Scroll document down + ||[m]j[m]|| Scroll document down +
||k|| Scroll document up + ||[m]k[m]|| Scroll document up +
||l|| Scroll document to the right + ||[m]l[m]|| Scroll document to the right +
||m|| Set mark at the cursor position + ||[m]m[m]|| Set mark at the cursor position +
||n|| Find next + ||[m]n[m]|| Find next +
||o|| Open one or more URLs + ||[m]o[m]|| Open one or more URLs +
||p|| Open (put) a URL based on the current clipboard contents in the current buffer + ||[m]p[m]|| Open (put) a URL based on the current clipboard contents in the current buffer +
||q|| Record a key sequence into a macro + ||[m]q[m]|| Record a key sequence into a macro +
||r|| Reload current page + ||[m]r[m]|| Reload current page +
||t|| Open one or more URLs in a new tab + ||[m]t[m]|| Open one or more URLs in a new tab +
||u|| Undo closing of a tab + ||[m]u[m]|| Undo closing of a tab +
||y|| Yank current location to the clipboard + ||[m]y[m]|| Yank current location to the clipboard +
||;|| Start an extended hint mode + ||[m];[m]|| Start an extended hint mode +
||:|| Enter command-line mode + ||[m]:[m]|| Enter Command-line mode +
||~|| Open home directory + ||[m]~[m]|| Open home directory +
||/|| Search forward for a pattern + ||[m]/[m]|| Search forward for a pattern +
||?|| Search backwards for a pattern + ||[m]?[m]|| Search backwards for a pattern +
||*|| Find word under cursor + ||[m]*[m]|| Find word under cursor +
||#|| Find word under cursor backwards + ||[m]#[m]|| Find word under cursor backwards +
||N%|| Scroll to {count} percent of the document + ||[m]N%[m]|| Scroll to {count} percent of the document +
||'|| Jump to the mark in the current buffer + ||[m]'[m]|| Jump to the mark in the current buffer +
||@|| Play a macro + ||[m]@[m]|| Play a macro +
||.|| Repeat the last keyboard command + ||[m].[m]|| Repeat the last keyboard command +
||]f|| Focus next frame + ||[m]]f[m]|| Focus next frame +
||[f|| Focus previous frame + ||[m][f[m]|| Focus previous frame +
||]]|| Follow the link labeled \'next' or \'>' if it exists + ||[m]]] [m]|| Follow the link labeled \'next' or \'>' if it exists +
||[[|| Follow the link labeled \'prev', \'previous' or \'<' if it exists + ||[m][[ [m]|| Follow the link labeled \'prev', \'previous' or \'<' if it exists +
||g$|| Go to the last tab + ||[m]g$[m]|| Go to the last tab +
||g<|| Redisplay the last command output + ||[m]g<[m]|| Redisplay the last command output +
||g0|| Go to the first tab + ||[m]g0[m]|| Go to the first tab +
||g<C-g>|| Print file information + ||[m]g<C-g>[m]|| Print file information +
||gB|| Repeat last :buffer[!] command in reverse direction + ||[m]gB[m]|| Repeat last [c]:buffer[!][c] command in reverse direction +
||gF|| View source with an external editor + ||[m]gF[m]|| View source with an external editor +
||gH|| Open homepage in a new tab + ||[m]gH[m]|| Open homepage in a new tab +
||gP|| Open (put) a URL based on the current clipboard contents in a new buffer + ||[m]gP[m]|| Open (put) a URL based on the current clipboard contents in a new buffer +
||gT|| Go to previous tab + ||[m]gT[m]|| Go to previous tab +
||gU|| Go to the root of the website + ||[m]gU[m]|| Go to the root of the website +
||gb|| Repeat last :buffer[!] command + ||[m]gb[m]|| Repeat last [c]:buffer[!][c] command +
||gf|| View source + ||[m]gf[m]|| View source +
||gg|| Go to the top of the document + ||[m]gg[m]|| Go to the top of the document +
||gh|| Open homepage + ||[m]gh[m]|| Open homepage +
||gi|| Focus last used input field + ||[m]gi[m]|| Focus last used input field +
||gn|| Jump to a QuickMark in a new tab + ||[m]gn[m]|| Jump to a QuickMark in a new tab +
||go|| Jump to a QuickMark + ||[m]go[m]|| Jump to a QuickMark +
||gt|| Go to the next tab + ||[m]gt[m]|| Go to the next tab +
||gu|| Go to parent directory + ||[m]gu[m]|| Go to parent directory +
||ZQ|| Quit and don't save the session + ||[m]ZQ[m]|| Quit and don't save the session +
||ZZ|| Quit and save the session + ||[m]ZZ[m]|| Quit and save the session +
||zI|| Enlarge full zoom of current web page + ||[m]zI[m]|| Enlarge full zoom of current web page +
||zM|| Enlarge full zoom of current web page by a larger amount + ||[m]zM[m]|| Enlarge full zoom of current web page by a larger amount +
||zO|| Reduce full zoom of current web page + ||[m]zO[m]|| Reduce full zoom of current web page +
||zR|| Reduce full zoom of current web page by a larger amount + ||[m]zR[m]|| Reduce full zoom of current web page by a larger amount +
||zZ|| Set full zoom value of current web page + ||[m]zZ[m]|| Set full zoom value of current web page +
||zi|| Enlarge text zoom of current web page + ||[m]zi[m]|| Enlarge text zoom of current web page +
||zm|| Enlarge text zoom of current web page by a larger amount + ||[m]zm[m]|| Enlarge text zoom of current web page by a larger amount +
||zo|| Reduce text zoom of current web page + ||[m]zo[m]|| Reduce text zoom of current web page +
||zr|| Reduce text zoom of current web page by a larger amount + ||[m]zr[m]|| Reduce text zoom of current web page by a larger amount +
||zz|| Set text zoom value of current web page + ||[m]zz[m]|| Set text zoom value of current web page +
section:Command-line{nbsp}editing[ex-edit-index] section:Command-line{nbsp}editing[ex-edit-index]
||<C-c>|| Quit command-line mode without executing + ||[m]<C-c>[m]|| Quit Command-line mode without executing +
||<C-]>|| Expand a command-line abbreviation + ||[m]<C-]>[m]|| Expand a command-line abbreviation +
||<Up>|| Recall the previous command line from the history list which matches the current command line + ||[m]<Up>[m]|| Recall the previous command line from the history list which matches the current command line +
||<Down>|| Recall the next command line from the history list which matches the current command line + ||[m]<Down>[m]|| Recall the next command line from the history list which matches the current command line +
||<Tab>|| Complete the word in front of the cursor according to the behavior specified in 'wildmode' + ||[m]<Tab>[m]|| Complete the word in front of the cursor according to the behavior specified in 'wildmode' +
||<S-Tab>|| Complete the previous full match when 'wildmode' contains "full" + ||[m]<S-Tab>[m]|| Complete the previous full match when 'wildmode' contains "full" +
section:Ex{nbsp}commands[ex-cmd-index,:index] section:Ex{nbsp}commands[ex-cmd-index,:index]
||:!|| Run a command + ||[c]:![c]|| Run a command +
||:abbreviate|| Abbreviate a key sequence + ||[c]:abbreviate[c]|| Abbreviate a key sequence +
||:abclear|| Remove all abbreviations + ||[c]:abclear[c]|| Remove all abbreviations +
||:addons|| Manage available Extensions and Themes + ||[c]:addons[c]|| Manage available Extensions and Themes +
||:autocmd|| Execute commands automatically on events + ||[c]:autocmd[c]|| Execute commands automatically on events +
||:back|| Go back in the browser history + ||[c]:back[c]|| Go back in the browser history +
||:bdelete|| Delete current buffer + ||[c]:bdelete[c]|| Delete current buffer +
||:beep|| Play a system beep + ||[c]:beep[c]|| Play a system beep +
||:bmark|| Add a bookmark + ||[c]:bmark[c]|| Add a bookmark +
||:bmarks|| List or open multiple bookmarks + ||[c]:bmarks[c]|| List or open multiple bookmarks +
||:buffer|| Switch to a buffer + ||[c]:buffer[c]|| Switch to a buffer +
||:buffers|| Show a list of all buffers + ||[c]:buffers[c]|| Show a list of all buffers +
||:cabbrev|| Abbreviate a key sequence in command-line mode + ||[c]:cabbrev[c]|| Abbreviate a key sequence in Command-line mode +
||:cabclear|| Remove all abbreviations in command-line mode + ||[c]:cabclear[c]|| Remove all abbreviations in Command-line mode +
||:cd|| Change the current directory + ||[c]:cd[c]|| Change the current directory +
||:cmap|| Map a key sequence in command-line mode + ||[c]:cmap[c]|| Map a key sequence in Command-line mode +
||:cmapclear|| Remove all mappings in command-line mode + ||[c]:cmapclear[c]|| Remove all mappings in Command-line mode +
||:cnoremap|| Map a key sequence without remapping keys in command-line mode + ||[c]:cnoremap[c]|| Map a key sequence without remapping keys in Command-line mode +
||:colorscheme|| Load a color scheme + ||[c]:colorscheme[c]|| Load a color scheme +
||:comclear|| Delete all user-defined commands + ||[c]:comclear[c]|| Delete all user-defined commands +
||:command|| List and define commands + ||[c]:command[c]|| List and define commands +
||:cunabbrev|| Remove an abbreviation in command-line mode + ||[c]:cunabbrev[c]|| Remove an abbreviation in Command-line mode +
||:cunmap|| Remove a mapping in command-line mode + ||[c]:cunmap[c]|| Remove a mapping in Command-line mode +
||:delbmarks|| Delete a bookmark + ||[c]:delbmarks[c]|| Delete a bookmark +
||:delcommand|| Delete the specified user-defined command + ||[c]:delcommand[c]|| Delete the specified user-defined command +
||:delmacros|| Delete macros + ||[c]:delmacros[c]|| Delete macros +
||:delmarks|| Delete the specified marks + ||[c]:delmarks[c]|| Delete the specified marks +
||:delqmarks|| Delete the specified QuickMarks + ||[c]:delqmarks[c]|| Delete the specified QuickMarks +
||:delstyle|| Delete any matching styles + ||[c]:delstyle[c]|| Delete any matching styles +
||:dialog|| Open a undefined dialog + ||[c]:dialog[c]|| Open a undefined dialog +
||:doautoall|| Apply the autocommands matching the specified URL to all buffers + ||[c]:doautoall[c]|| Apply the autocommands matching the specified URL to all buffers +
||:doautocmd|| Apply the autocommands matching the specified URL to the current buffer + ||[c]:doautocmd[c]|| Apply the autocommands matching the specified URL to the current buffer +
||:downloads|| Show progress of current downloads + ||[c]:downloads[c]|| Show progress of current downloads +
||:echo|| Echo the expression + ||[c]:echo[c]|| Echo the expression +
||:echoerr|| Echo the expression as an error message + ||[c]:echoerr[c]|| Echo the expression as an error message +
||:echomsg|| Echo the expression as an informational message + ||[c]:echomsg[c]|| Echo the expression as an informational message +
||:emenu|| Execute the specified menu item from the command line + ||[c]:emenu[c]|| Execute the specified menu item from the command line +
||:execute|| Execute the argument as an Ex command + ||[c]:execute[c]|| Execute the argument as an Ex command +
||:exusage|| List all Ex commands with a short description + ||[c]:exusage[c]|| List all Ex commands with a short description +
||:finish|| Stop sourcing a script file + ||[c]:finish[c]|| Stop sourcing a script file +
||:forward|| Go forward in the browser history + ||[c]:forward[c]|| Go forward in the browser history +
||:hardcopy|| Print current document + ||[c]:hardcopy[c]|| Print current document +
||:help|| Display help + ||[c]:help[c]|| Display help +
||:highlight|| Style Vimperator + ||[c]:highlight[c]|| Style Vimperator +
||:history|| Show recently visited URLs + ||[c]:history[c]|| Show recently visited URLs +
||:iabbrev|| Abbreviate a key sequence in insert mode + ||[c]:iabbrev[c]|| Abbreviate a key sequence in Insert mode +
||:iabclear|| Remove all abbreviations in insert mode + ||[c]:iabclear[c]|| Remove all abbreviations in Insert mode +
||:imap|| Map a key sequence in insert mode + ||[c]:imap[c]|| Map a key sequence in Insert mode +
||:imapclear|| Remove all mappings in insert mode + ||[c]:imapclear[c]|| Remove all mappings in Insert mode +
||:inoremap|| Map a key sequence without remapping keys in insert mode + ||[c]:inoremap[c]|| Map a key sequence without remapping keys in Insert mode +
||:iunabbrev|| Remove an abbreviation in insert mode + ||[c]:iunabbrev[c]|| Remove an abbreviation in Insert mode +
||:iunmap|| Remove a mapping in insert mode + ||[c]:iunmap[c]|| Remove a mapping in Insert mode +
||:javascript|| Run a JavaScript command through eval() + ||[c]:javascript[c]|| Run a JavaScript command through eval() +
||:jumps|| Show jumplist + ||[c]:jumps[c]|| Show jumplist +
||:let|| Set or list a variable + ||[c]:let[c]|| Set or list a variable +
||:loadplugins|| Immediately load all unloaded plugins + ||[c]:loadplugins[c]|| Immediately load all unloaded plugins +
||:macros|| List all macros + ||[c]:macros[c]|| List all macros +
||:map|| Map a key sequence + ||[c]:map[c]|| Map a key sequence +
||:mapclear|| Remove all mappings + ||[c]:mapclear[c]|| Remove all mappings +
||:mark|| Mark current location within the web page + ||[c]:mark[c]|| Mark current location within the web page +
||:marks|| Show all location marks of current web page + ||[c]:marks[c]|| Show all location marks of current web page +
||:messages|| Display previously given messages + ||[c]:messages[c]|| Display previously given messages +
||:mkvimperatorrc|| Write current key mappings and changed options to the config file + ||[c]:mkvimperatorrc[c]|| Write current key mappings and changed options to the config file +
||:nohlsearch|| Remove the search highlighting + ||[c]:nohlsearch[c]|| Remove the search highlighting +
||:noremap|| Map a key sequence without remapping keys + ||[c]:noremap[c]|| Map a key sequence without remapping keys +
||:normal|| Execute Normal mode commands + ||[c]:normal[c]|| Execute Normal mode commands +
||:open|| Open one or more URLs in the current tab + ||[c]:open[c]|| Open one or more URLs in the current tab +
||:optionusage|| List all options with a short description + ||[c]:optionusage[c]|| List all options with a short description +
||:pageinfo|| Show various page information + ||[c]:pageinfo[c]|| Show various page information +
||:pagestyle|| Select the author style sheet to apply + ||[c]:pagestyle[c]|| Select the author style sheet to apply +
||:play|| Replay a recorded macro + ||[c]:play[c]|| Replay a recorded macro +
||:preferences|| Show Firefox preferences dialog + ||[c]:preferences[c]|| Show Firefox preferences dialog +
||:pwd|| Print the current directory name + ||[c]:pwd[c]|| Print the current directory name +
||:qmark|| Mark a URL with a letter for quick access + ||[c]:qmark[c]|| Mark a URL with a letter for quick access +
||:qmarks|| Show all QuickMarks + ||[c]:qmarks[c]|| Show all QuickMarks +
||:quit|| Quit current tab + ||[c]:quit[c]|| Quit current tab +
||:quitall|| Quit undefined + ||[c]:quitall[c]|| Quit undefined +
||:redraw|| Redraw the screen + ||[c]:redraw[c]|| Redraw the screen +
||:reload|| Reload current page + ||[c]:reload[c]|| Reload current page +
||:reloadall|| Reload all tab pages + ||[c]:reloadall[c]|| Reload all tab pages +
||:restart|| Force undefined to restart + ||[c]:restart[c]|| Force undefined to restart +
||:runtime|| Source the specified file from each directory in 'runtimepath' + ||[c]:runtime[c]|| Source the specified file from each directory in 'runtimepath' +
||:saveas|| Save current document to disk + ||[c]:saveas[c]|| Save current document to disk +
||:sbclose|| Close the sidebar window + ||[c]:sbclose[c]|| Close the sidebar window +
||:scriptnames|| List all sourced script names + ||[c]:scriptnames[c]|| List all sourced script names +
||:set|| Set an option + ||[c]:set[c]|| Set an option +
||:setglobal|| Set global option + ||[c]:setglobal[c]|| Set global option +
||:setlocal|| Set local option + ||[c]:setlocal[c]|| Set local option +
||:sidebar|| Open the sidebar window + ||[c]:sidebar[c]|| Open the sidebar window +
||:style|| Style Vimperator and web sites + ||[c]:style[c]|| Style Vimperator and web sites +
||:source|| Read Ex commands from a file + ||[c]:source[c]|| Read Ex commands from a file +
||:stop|| Stop loading + ||[c]:stop[c]|| Stop loading +
||:tab|| Execute a command and tell it to output in a new tab + ||[c]:tab[c]|| Execute a command and tell it to output in a new tab +
||:tabdetach|| Detach current tab to its own window + ||[c]:tabdetach[c]|| Detach current tab to its own window +
||:tabduplicate|| Duplicate current tab + ||[c]:tabduplicate[c]|| Duplicate current tab +
||:tablast|| Switch to the last tab + ||[c]:tablast[c]|| Switch to the last tab +
||:tabmove|| Move the current tab after tab N + ||[c]:tabmove[c]|| Move the current tab after tab N +
||:tabnext|| Switch to the next or [count]th tab + ||[c]:tabnext[c]|| Switch to the next or [count]th tab +
||:tabonly|| Close all other tabs + ||[c]:tabonly[c]|| Close all other tabs +
||:tabopen|| Open one or more URLs in a new tab + ||[c]:tabopen[c]|| Open one or more URLs in a new tab +
||:tabprevious|| Switch to the previous tab or go [count] tabs back + ||[c]:tabprevious[c]|| Switch to the previous tab or go [count] tabs back +
||:tabrewind|| Switch to the first tab + ||[c]:tabrewind[c]|| Switch to the first tab +
||:time|| Profile a piece of code or run a command multiple times + ||[c]:time[c]|| Profile a piece of code or run a command multiple times +
||:unabbreviate|| Remove an abbreviation + ||[c]:unabbreviate[c]|| Remove an abbreviation +
||:undo|| Undo closing of a tab + ||[c]:undo[c]|| Undo closing of a tab +
||:undoall|| Undo closing of all closed tabs + ||[c]:undoall[c]|| Undo closing of all closed tabs +
||:unlet|| Delete a variable + ||[c]:unlet[c]|| Delete a variable +
||:unmap|| Remove a mapping + ||[c]:unmap[c]|| Remove a mapping +
||:version|| Show version information + ||[c]:version[c]|| Show version information +
||:viewsource|| View source code of current document + ||[c]:viewsource[c]|| View source code of current document +
||:viusage|| List all mappings with a short description + ||[c]:viusage[c]|| List all mappings with a short description +
||:winclose|| Close window + ||[c]:winclose[c]|| Close window +
||:winopen|| Open one or more URLs in a new window + ||[c]:winopen[c]|| Open one or more URLs in a new window +
||:wqall|| Save the session and quit + ||[c]:wqall[c]|| Save the session and quit +
||:zoom|| Set zoom value of current web page + ||[c]:zoom[c]|| Set zoom value of current web page +
section:Options[option-index] section:Options[option-index]
||'activate'|| Define when tabs are automatically activated + ||'activate'|| Define when tabs are automatically activated +
||'cdpath'|| List of directories searched when executing :cd + ||'cdpath'|| List of directories searched when executing [c]:cd[c] +
||'complete'|| Items which are completed at the :[tab]open prompt + ||'complete'|| Items which are completed at the [c]:[tab]open prompt[c] +
||'defsearch'|| Set the default search engine + ||'defsearch'|| Set the default search engine +
||'editor'|| Set the external text editor + ||'editor'|| Set the external text editor +
||'errorbells'|| Ring the bell when an error message is displayed + ||'errorbells'|| Ring the bell when an error message is displayed +
||'eventignore'|| List of autocommand event names which should be ignored + ||'eventignore'|| List of autocommand event names which should be ignored +
||'exrc'|| Allow reading of an RC file in the current directory + ||'exrc'|| Allow reading of an RC file in the current directory +
||'extendedhinttags'|| XPath string of hintable elements activated by [m];[m] + ||'extendedhinttags'|| XPath string of hintable elements activated by [m];[m] +
||'focuscontent'|| Try to stay in normal mode after loading a web page + ||'focuscontent'|| Try to stay in Normal mode after loading a web page +
||'followhints'|| Change the behaviour of [m]<Return>[m] in hint mode + ||'followhints'|| Change the behaviour of [m]<Return>[m] in Hints mode +
||'fullscreen'|| Show the current window fullscreen + ||'fullscreen'|| Show the current window fullscreen +
||'guioptions'|| Show or hide certain GUI elements like the menu or toolbar + ||'guioptions'|| Show or hide certain GUI elements like the menu or toolbar +
||'helpfile'|| Name of the main help file + ||'helpfile'|| Name of the main help file +
@@ -289,14 +289,14 @@ section:Options[option-index]
||'newtab'|| Define which commands should output in a new tab by default + ||'newtab'|| Define which commands should output in a new tab by default +
||'nextpattern'|| Patterns to use when guessing the \'next' page in a document sequence + ||'nextpattern'|| Patterns to use when guessing the \'next' page in a document sequence +
||'online'|| Set the \'work offline' option + ||'online'|| Set the \'work offline' option +
||'pageinfo'|| Desired info on :pa[geinfo] + ||'pageinfo'|| Desired info on [c]:pa[geinfo][c] +
||'popups'|| Where to show requested popup windows + ||'popups'|| Where to show requested popup windows +
||'preload'|| Speed up first time history/bookmark completion + ||'preload'|| Speed up first time history/bookmark completion +
||'previouspattern'|| Patterns to use when guessing the \'previous' page in a document sequence + ||'previouspattern'|| Patterns to use when guessing the \'previous' page in a document sequence +
||'runtimepath'|| List of directories searched for runtime files + ||'runtimepath'|| List of directories searched for runtime files +
||'scroll'|| Number of lines to scroll with [m]<C-u>[m] and [m]<C-d>[m] commands + ||'scroll'|| Number of lines to scroll with [m]<C-u>[m] and [m]<C-d>[m] commands +
||'shell'|| Shell to use for executing :! and :run commands + ||'shell'|| Shell to use for executing [c]:![c] and [c]:run[c] commands +
||'shellcmdflag'|| Flag passed to shell when executing :! and :run commands + ||'shellcmdflag'|| Flag passed to shell when executing [c]:![c] and [c]:run[c] commands +
||'showmode'|| Show the current mode in the command line + ||'showmode'|| Show the current mode in the command line +
||'showstatuslinks'|| Show the destination of the link under the cursor in the status bar + ||'showstatuslinks'|| Show the destination of the link under the cursor in the status bar +
||'showtabline'|| Control when to show the tab bar of opened web pages + ||'showtabline'|| Control when to show the tab bar of opened web pages +

View File

@@ -4,12 +4,12 @@ HEADER
Insert mode is used to enter text in text boxes and text areas. When Insert mode is used to enter text in text boxes and text areas. When
'insertmode' is set, focusing on a text area immediately switches to 'insertmode' is set, focusing on a text area immediately switches to
insert mode. Insert mode.
|i| + |i| +
||i|| ||i||
________________________________________________________________________________ ________________________________________________________________________________
Starts insert mode in text areas when 'insertmode' is not set. Starts Insert mode in text areas when 'insertmode' is not set.
________________________________________________________________________________ ________________________________________________________________________________
@@ -24,7 +24,7 @@ ________________________________________________________________________________
|i_<C-]>| + |i_<C-]>| +
||<C-]>|| ||<C-]>||
________________________________________________________________________________ ________________________________________________________________________________
Expand an insert-mode abbreviation. Expand an Insert-mode abbreviation.
________________________________________________________________________________ ________________________________________________________________________________
// vim: set filetype=asciidoc: // vim: set filetype=asciidoc:

View File

@@ -98,7 +98,7 @@ section:Features[features]
* 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
* Move the text cursor and select text with Vim keys and a visual mode * Move the text cursor and select text with Vim keys and a Visual mode
* External editor support * External editor support
* Macros to replay key strokes * Macros to replay key strokes
* AutoCommands to execute action on certain events * AutoCommands to execute action on certain events

View File

@@ -12,7 +12,7 @@ which are translated to a string of characters. Example:
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.
There are separate key mapping tables for each of the Normal, Insert, There are separate key mapping tables for each of the Normal, Insert, and
Command-line modes. Command-line modes.
|:map-special-chars| + |:map-special-chars| +
@@ -29,7 +29,7 @@ ________________________________________________________________________________
||<CR>|| ||<CR>||
________________________________________________________________________________ ________________________________________________________________________________
Expand to a line terminator in a key mapping. An Ex command in the {rhs} of a Expand to a line terminator in a key mapping. An Ex command in the {rhs} of a
mapping requires a a line terminator after it so that it is executed when the mapping requires a line terminator after it so that it is executed when the
mapping is expanded. [m]<CR>[m] should be used for this purpose. mapping is expanded. [m]<CR>[m] should be used for this purpose.
________________________________________________________________________________ ________________________________________________________________________________
@@ -57,7 +57,7 @@ ________________________________________________________________________________
Map the key sequence {lhs} to {rhs}. The {rhs} is remapped, allowing for Map the key sequence {lhs} to {rhs}. The {rhs} is remapped, allowing for
nested and recursive mappings. nested and recursive mappings.
Warning: Mappings are NOT saved during sessions, make sure you put them in your Warning: Mappings are NOT saved between sessions, make sure you put them in your
vimperatorrc file! vimperatorrc file!
________________________________________________________________________________ ________________________________________________________________________________
@@ -70,7 +70,7 @@ ________________________________________________________________________________
Map the key sequence {lhs} to {rhs} (in Command-line mode). The {rhs} is Map the key sequence {lhs} to {rhs} (in Command-line mode). The {rhs} is
remapped, allowing for nested and recursive mappings. remapped, allowing for nested and recursive mappings.
Warning: Mappings are NOT saved during sessions, make sure you put them in your Warning: Mappings are NOT saved between sessions, make sure you put them in your
vimperatorrc file! vimperatorrc file!
________________________________________________________________________________ ________________________________________________________________________________
@@ -80,10 +80,10 @@ ________________________________________________________________________________
||:imap {lhs}|| + ||:imap {lhs}|| +
||:imap|| ||:imap||
________________________________________________________________________________ ________________________________________________________________________________
Map the key sequence {lhs} to {rhs} (in insert mode). The {rhs} is remapped, Map the key sequence {lhs} to {rhs} (in Insert mode). The {rhs} is remapped,
allowing for nested and recursive mappings. allowing for nested and recursive mappings.
Warning: Mappings are NOT saved during sessions, make sure you put them in your Warning: Mappings are NOT saved between sessions, make sure you put them in your
vimperatorrc file! vimperatorrc file!
________________________________________________________________________________ ________________________________________________________________________________
@@ -107,7 +107,7 @@ ________________________________________________________________________________
|:imapc| |:imapclear| + |:imapc| |:imapclear| +
||:imapc[lear]|| ||:imapc[lear]||
________________________________________________________________________________ ________________________________________________________________________________
Remove all mappings (in insert mode). All user-defined mappings which were set Remove all mappings (in Insert mode). All user-defined mappings which were set
by [c]:imap[c] or [c]:inoremap[c] are cleared. by [c]:imap[c] or [c]:inoremap[c] are cleared.
________________________________________________________________________________ ________________________________________________________________________________
@@ -136,7 +136,7 @@ ________________________________________________________________________________
||:ino[remap] {lhs}|| + ||:ino[remap] {lhs}|| +
||:ino[remap]|| ||:ino[remap]||
________________________________________________________________________________ ________________________________________________________________________________
Map the key sequence {lhs} to {rhs} (in insert mode). No remapping of the Map the key sequence {lhs} to {rhs} (in Insert mode). No remapping of the
{rhs} is performed. {rhs} is performed.
________________________________________________________________________________ ________________________________________________________________________________
@@ -167,7 +167,7 @@ ________________________________________________________________________________
|:iunm| |:iunmap| + |:iunm| |:iunmap| +
||:iunm[ap] {lhs}|| ||:iunm[ap] {lhs}||
________________________________________________________________________________ ________________________________________________________________________________
Remove the mapping of {lhs} (in insert mode). Remove the mapping of {lhs} (in Insert mode).
________________________________________________________________________________ ________________________________________________________________________________
section:Abbreviations[abbreviations] section:Abbreviations[abbreviations]
@@ -178,8 +178,8 @@ words. An abbreviation can be one of three types that are defined by the
types of constituent characters. Whitespace and quotes are non-keyword types of constituent characters. Whitespace and quotes are non-keyword
types, and all other characters are keyword types. types, and all other characters are keyword types.
1. A "full-id" abbreviation consists entirely of characters that are not 1. A "full-id" abbreviation consists entirely of keyword characters
keyword characters (e.g., "teh", "msoft"). (e.g., "teh", "msoft").
2. An "end-id" abbreviation ends in keyword character but otherwise 2. An "end-id" abbreviation ends in keyword character but otherwise
contains all non-keyword characters (e.g., "'i"). contains all non-keyword characters (e.g., "'i").
@@ -304,7 +304,7 @@ The valid values are:
*-nargs=1* One argument is allowed *-nargs=1* One argument is allowed
*-nargs=** Zero or more arguments are allowed *-nargs=** Zero or more arguments are allowed
*-nargs=?* Zero or one argument is allowed *-nargs=?* Zero or one argument is allowed
*-nargs=+* One or more argument is allowd *-nargs=+* One or more arguments are allowed
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
|E180| |E181| |:command-complete| + |E180| |E181| |:command-complete| +
@@ -365,7 +365,7 @@ available for expansion as <count> in the argument.
|:command-bang| + |:command-bang| +
Special cases Special cases
By default a user command does not have a special version. i.e. a version By default a user command does not have a special version, i.e. a version
executed with the ! modifier. Providing the -bang attribute will enable this executed with the ! modifier. Providing the -bang attribute will enable this
and <bang> will be available in the argument. and <bang> will be available in the argument.
@@ -379,7 +379,7 @@ is then executed as an Ex command.
The valid escape sequences are: The valid escape sequences are:
`----------`-------------------------------------------------------------------- `----------`--------------------------------------------------------------------
*<args>* The command arguments exactly as supplied *<args>* The command arguments exactly as supplied
*<count>* Any supplied count E.g. 5 *<count>* Any supplied count, e.g. 5
*<bang>* ! if the command was executed with the ! modifier *<bang>* ! if the command was executed with the ! modifier
*<lt>* A literal '<' character to allow for a literal copy of one of the escape sequences. E.g. <lt>args> will expand to a literal <args> *<lt>* A literal '<' character to allow for a literal copy of one of the escape sequences. E.g. <lt>args> will expand to a literal <args>
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------

View File

@@ -6,7 +6,7 @@ Vimperator supports a number of different marks:
- Bookmarks which allow you to mark a web page as one of your favorites for - Bookmarks which allow you to mark a web page as one of your favorites for
easy access. easy access.
- QuickMarks allow you to define up to 62 (a-zA-Z0-9) web sites (or group of - QuickMarks allow you to define up to 62 (a-zA-Z0-9) web sites (or groups of
web sites) which you visit most often. web sites) which you visit most often.
- Local marks to store the position within a web page. - Local marks to store the position within a web page.
- History is also a special type of marks, as Vimperator automatically - History is also a special type of marks, as Vimperator automatically
@@ -40,7 +40,7 @@ ____________________________________________________________________________
||A|| ||A||
________________________________________________________________________________ ________________________________________________________________________________
Toggle bookmarked state of current URL. Add/remove a bookmark for the current Toggle bookmarked state of current URL. Add/remove a bookmark for the current
location, depending if it already is bookmarked or not. In contrast to the location, depending on if it is already bookmarked or not. In contrast to the
[c]:bmark[c] command, the bookmark is just _starred_ which means it is placed [c]:bmark[c] command, the bookmark is just _starred_ which means it is placed
in the _Unfiled Bookmarks Folder_ instead of the bookmarks menu. in the _Unfiled Bookmarks Folder_ instead of the bookmarks menu.
________________________________________________________________________________ ________________________________________________________________________________
@@ -143,17 +143,17 @@ section:QuickMarks[quickmarks]
||go[a]\\{a-zA-Z0-9\\}[a]|| ||go[a]\\{a-zA-Z0-9\\}[a]||
________________________________________________________________________________ ________________________________________________________________________________
Jump to a QuickMark in the current tab. Open any QuickMark in the current tab. Jump to a QuickMark in the current tab. Open any QuickMark in the current tab.
You can mark any URLs with [m]M{a-zA-Z0-9}[m]. These QuickMarks are persistent You can mark any URLs with [m]M[m][a]\\{a-zA-Z0-9\\}[a]. These QuickMarks are
across browser sessions. persistent across browser sessions.
________________________________________________________________________________ ________________________________________________________________________________
|gn| + |gn| +
||gn[a]\\{a-zA-Z0-9\\}[a]|| ||gn[a]\\{a-zA-Z0-9\\}[a]||
________________________________________________________________________________ ________________________________________________________________________________
Jump to a QuickMark in a new tab. Works like [m]go{a-zA-Z0-9}[m] but opens the Jump to a QuickMark in a new tab. Works like [m]go[m][a]\\{a-zA-Z0-9\\}[a] but
QuickMark in a new tab. Whether the new tab is activated or not depends on the opens the QuickMark in a new tab. Whether the new tab is activated or not
'activate' option. + depends on the 'activate' option. +
Mnemonic: Go in a new tab. [m]gt[m] would make more sense but is already Mnemonic: Go in a new tab. [m]gt[m] would make more sense but is already
taken. taken.
________________________________________________________________________________ ________________________________________________________________________________
@@ -163,8 +163,9 @@ ________________________________________________________________________________
||M[a]\\{a-zA-Z0-9\\}[a]|| ||M[a]\\{a-zA-Z0-9\\}[a]||
________________________________________________________________________________ ________________________________________________________________________________
Add new QuickMark for current URL. You can go to a marked URL in the current Add new QuickMark for current URL. You can go to a marked URL in the current
tab with [m]go{a-zA-Z0-9}[m] or in a new tab with [m]gn{a-zA-Z0-9}[m]. These tab with [m]go[m][a]\\{a-zA-Z0-9\\}[a] or in a new tab with
QuickMarks are persistent across browser sessions. [m]gn[m][a]\\{a-zA-Z0-9\\}[a]. These QuickMarks are persistent across browser
sessions.
________________________________________________________________________________ ________________________________________________________________________________
@@ -241,7 +242,7 @@ ________________________________________________________________________________
|:marks| + |:marks| +
||:marks [a][arg][a]|| ||:marks [a][arg][a]||
________________________________________________________________________________ ________________________________________________________________________________
Show all location marks of current web page. If [a][arg][a] is specified then Show all location marks of the current web page. If [a][arg][a] is specified then
limit the list to those marks mentioned. limit the list to those marks mentioned.
________________________________________________________________________________ ________________________________________________________________________________

View File

@@ -3,7 +3,7 @@ HEADER
|options| + |options| +
Vimperator has a number of internal variables and switches which can be set to Vimperator has a number of internal variables and switches which can be set to
achieve special effects. These options come in 5 forms: achieve special effects. These options come in 5 forms:
`------------`----------------------------------------- `------------`-----------------------------------------
*boolean* can only be on or off *boolean* can only be on or off
*number* has a numeric value *number* has a numeric value
@@ -22,7 +22,7 @@ ____
||:se[t] all|| ||:se[t] all||
____ ____
Show all options. Show all options. Show all options.
____ ____
|E518| |E519| |E518| |E519|
@@ -54,12 +54,12 @@ ____
____ ____
For list options, toggle the specified values. For list options, toggle the specified values.
If the option is a list, the given values are toggled. Given If the option is a list, the given values are toggled. Given +
:set opt=foo,bar \{nbsp}[c]:set opt=foo,bar[c] +
Then, then, +
:set opt!=foo,baz \{nbsp}[c]:set opt!=foo,baz[c] +
results in results in +
opt=bar,baz \{nbsp}opt=bar,baz
____ ____
|:set-default| |:set-default|
@@ -84,21 +84,17 @@ ____
|:set+=| |:set+=|
||:se[t] {option}+={value} [...]|| + ||:se[t] {option}+={value} [...]|| +
____ ____
Add the {value} to a number option, or append the Add the {value} to a number option, or append the {value} to a string option.
{value} to a string option. When the option is a When the option is a comma separated list, a comma is added, unless the value
comma separated list, a comma is added, unless the was empty. If the option is a list of flags, superfluous flags are removed.
value was empty. When adding a flag that was already present the option value doesn't change.
If the option is a list of flags, superfluous flags
are removed. When adding a flag that was already
present the option value doesn't change.
____ ____
|:set^=| |:set^=|
||:se[t] {option}^={value} [...]|| + ||:se[t] {option}^={value} [...]|| +
____ ____
Multiply the {value} to a number option, or prepend Multiply the {value} to a number option, or prepend the {value} to a string
the {value} to a string option. When the option is a option. When the option is a comma separated list, a comma is added, unless the
comma separated list, a comma is added, unless the
value was empty. value was empty.
____ ____
@@ -106,15 +102,12 @@ ____
||:se[t] {option}-={value} [...]|| + ||:se[t] {option}-={value} [...]|| +
____ ____
Subtract the {value} from a number option, or remove Subtract the {value} from a number option, or remove the {value} from a string
the {value} from a string option, if it is there. option, if it is there. If the {value} is not found in a string option, there
If the {value} is not found in a string option, there is no error or warning. When the option is a comma separated list, a comma is
is no error or warning. When the option is a comma deleted, unless the option becomes empty. When the option is a list of flags,
separated list, a comma is deleted, unless the option {value} must be exactly as they appear in the option. Remove flags one by one
becomes empty. to avoid problems.
When the option is a list of flags, {value} must be
exactly as they appear in the option. Remove flags
one by one to avoid problems.
____ ____
|:setlocal| |:setl| |:setlocal| |:setl|
@@ -132,7 +125,7 @@ ____
||:setl[ocal] {option}-={value}|| + ||:setl[ocal] {option}-={value}|| +
____ ____
The same as [c]:set[c] command, but it operates for current tab options The same as [c]:set[c] command, but operates on current tab options
only. See [c]:set[c] for details. only. See [c]:set[c] for details.
____ ____
@@ -151,7 +144,7 @@ ____
||:setg[lobal] {option}-={value}|| + ||:setg[lobal] {option}-={value}|| +
____ ____
The same as [c]:set[c] command, but it operates on global options only. The same as [c]:set[c] command, but operates on global options only.
See [c]:set[c] for details. See [c]:set[c] for details.
____ ____
@@ -224,9 +217,9 @@ ____
|\'cd'| |\'cdpath'| |\'cd'| |\'cdpath'|
||'cdpath' 'cd'|| string (default: equivalent to _$CDPATH_ or ",,") ||'cdpath' 'cd'|| string (default: equivalent to _$CDPATH_ or ",,")
____ ____
List of directories searched when executing the :cd command. This is only used List of directories searched when executing the [c]:cd[c] command. This is
for relative paths, if an absolute path is specified then the option is only used for relative paths, if an absolute path is specified then the option
ignored. is ignored.
____ ____
@@ -315,7 +308,7 @@ ____
||'focuscontent' 'fc'|| boolean (default: off) ||'focuscontent' 'fc'|| boolean (default: off)
____ ____
Focus the content after a page has loaded. This is useful, if you always Focus the content after a page has loaded. This is useful, if you always
want to stay in normal mode when browsing between web sites. When "on", it want to stay in Normal mode when browsing between web sites. When "on", it
blurs any textbox which often is automatically focused on page load. blurs any textbox which often is automatically focused on page load.
If you usually like 'focuscontent' but sometimes you'd like to focus the If you usually like 'focuscontent' but sometimes you'd like to focus the
first input field, you can use [m]gi[m] to jump to it. first input field, you can use [m]gi[m] to jump to it.
@@ -362,7 +355,7 @@ ____
||'hintmatching' 'hm'|| string (default: contains) ||'hintmatching' 'hm'|| string (default: contains)
____ ____
Change the hint matching algorithm during hint mode. Possible values: Change the hint matching algorithm during Hints mode. Possible values:
`--------------------`------------------------------------------------------------------------------------------------------------------------------- `--------------------`-------------------------------------------------------------------------------------------------------------------------------
*contains* The typed characters are split on whitespace, and these character groups have to match anywhere inside the text of the link. *contains* The typed characters are split on whitespace, and these character groups have to match anywhere inside the text of the link.
@@ -378,13 +371,13 @@ ____
||'followhints' 'fh'|| number (default: 0) ||'followhints' 'fh'|| number (default: 0)
____ ____
Change the behaviour of [m]<Return>[m] in hint mode. Possible values: Change the behaviour of [m]<Return>[m] in Hints mode. Possible values:
`---------`---------------------------------------------------------- `---------`----------------------------------------------------------
*0* Follow the first hint as soon as typed text uniquely identifies it. *0* Follow the first hint as soon as typed text uniquely identifies it.
Follow the selected hint on [m]<Return>[m]. Follow the selected hint on [m]<Return>[m].
*1* Follow the selected hint on [m]<Return>[m]. *1* Follow the selected hint on [m]<Return>[m].
*2* Follow the selected hint on [m]<Return>[m] only it's been [m]<Tab>[m]-selected. *2* Follow the selected hint on [m]<Return>[m] only if it's been [m]<Tab>[m]-selected.
--------------------------------------------------------------------- ---------------------------------------------------------------------
____ ____
@@ -505,7 +498,8 @@ ____
Patterns to use when guessing the \'next' page in a document sequence. Each Patterns to use when guessing the \'next' page in a document sequence. Each
pattern, in order, is matched against all links in the page with the first pattern, in order, is matched against all links in the page with the first
match being used. The patterns are case insensitive regular expressions. match being used. The patterns are case insensitive regular expressions and the
link elements are those defined by 'hinttags'.
____ ____
@@ -581,15 +575,6 @@ In order to also speed up first time access, it is cached at startup, if this op
____ ____
//|\'pvh'| |\'previewheight'|
//||'previewheight' 'pvh'|| number (default: 10)
//____
//Default height for preview window
//
//Value must be between 1 and 50. If the value is too high, completions may cover the command line. Close the preview window with :pclose.
//Note: Option currently disabled
//____
|\'previouspattern'| |\'previouspattern'|
||'previouspattern'|| stringlist ||'previouspattern'|| stringlist
____ ____
@@ -597,7 +582,8 @@ ____
Patterns to use when guessing the \'previous' page in a document sequence. Each Patterns to use when guessing the \'previous' page in a document sequence. Each
pattern, in order, is matched against all links in the page with the first pattern, in order, is matched against all links in the page with the first
match being used. The patterns are case insensitive regular expressions. match being used. The patterns are case insensitive regular expressions and the
link elements are those defined by 'hinttags'.
____ ____
@@ -635,14 +621,14 @@ ____
|\'shell'| |\'sh'| |\'shell'| |\'sh'|
||'shell' 'sh'|| string (default: _$SHELL_ or "sh", Win32: "cmd.exe") ||'shell' 'sh'|| string (default: _$SHELL_ or "sh", Win32: "cmd.exe")
____ ____
Shell to use for executing :! and :run commands. Shell to use for executing [c]:![c] and [c]:run[c] commands.
____ ____
|\'shellcmdflag'| |\'shcf'| |\'shellcmdflag'| |\'shcf'|
||'shellcmdflag' 'shcf'|| string (default: "-c", Win32: "/c") ||'shellcmdflag' 'shcf'|| string (default: "-c", Win32: "/c")
____ ____
Flag passed to shell when executing :! and :run commands. Flag passed to shell when executing [c]:![c] and [c]:run[c] commands.
E.g. "bash -c gvim" E.g. "bash -c gvim"
____ ____
@@ -658,7 +644,7 @@ ____
|\'ssli'| |\'showstatuslinks'| |\'ssli'| |\'showstatuslinks'|
||'showstatuslinks' 'ssli'|| number (default: 1) ||'showstatuslinks' 'ssli'|| number (default: 1)
____ ____
Show the destination of the link under the cursor in the status bar Show the destination of the link under the cursor in the status bar.
Also links which are focused by keyboard commands like [m]<Tab>[m] are shown. Possible values: Also links which are focused by keyboard commands like [m]<Tab>[m] are shown. Possible values:
.---`-------------------------------------- .---`--------------------------------------
@@ -696,7 +682,7 @@ ____
||'suggestengines' || stringlist (default: "google") ||'suggestengines' || stringlist (default: "google")
____ ____
Set the search engines which can be used for completion suggestions. Set the search engines which can be used for completion suggestions.
Add "S" to the 'complete' option if you want use this feature. Add "S" to the 'complete' option if you want to use this feature.
Warning: This feature could make tab-completion slower because it needs to Warning: This feature could make tab-completion slower because it needs to
wait for changes, so use it only if you have a fast internet connection. wait for changes, so use it only if you have a fast internet connection.
@@ -727,11 +713,11 @@ ____
|\'urlseparator'| |\'urlseparator'|
||'urlseparator'|| string (default: ",\s") ||'urlseparator'|| string (default: ",\s")
____ ____
Set the separator regexp used to separate multiple URL args. Multiple Set the separator regexp used to separate multiple URL args. Multiple arguments
arguments can be specified for :open, and similar commands, using this regexp can be specified for [c]:open[c], and similar commands, using this regexp as
as the separator. Using whitespace alone is not generally useful since it is the separator. Using whitespace alone is not generally useful since it is often
often contained in a single argument. E.g. [c]:open linus torvalds[c] should contained in a single argument. E.g. [c]:open linus torvalds[c] should perform
perform a single search for the key words "linus" and "torvalds" a single search for the key words "linus" and "torvalds"
____ ____
@@ -750,9 +736,8 @@ ____
|\'novb'| |\'novisualbell'| |\'vb'| |\'visualbell'| |\'novb'| |\'novisualbell'| |\'vb'| |\'visualbell'|
||'visualbell' 'vb'|| boolean (default: off) ||'visualbell' 'vb'|| boolean (default: off)
____ ____
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]. If no bell is desired use [c]:set t_vb=[c] together with controlled by [c]:hi Bell[c].
this option.
____ ____
@@ -783,7 +768,7 @@ ____
|\'wim'| |\'wildmode'| |\'wim'| |\'wildmode'|
||'wildmode' 'wim'|| stringlist (default: "list:full") ||'wildmode' 'wim'|| stringlist (default: "list:full")
____ ____
Define how command-line completion works. Defines how command-line completion works.
It is a comma-separated list of parts, where each part specifies It is a comma-separated list of parts, where each part specifies
what to do for each consecutive use of the completion key. what to do for each consecutive use of the completion key.
The first part specifies the behavior for the first use of the completion key, The first part specifies the behavior for the first use of the completion key,
@@ -795,7 +780,7 @@ These are the possible values for each part:
"full" Complete the next full match. After the last, the original string is used. "full" Complete the next full match. After the last, the original string is used.
"longest" Complete till the longest common string. "longest" Complete till the longest common string.
"list" When more than one match, list all matches. "list" When more than one match, list all matches.
"list:full" When more than one match, list all matches and complete first match. "list:full" When more than one match, list all matches and complete the first match.
"list:longest" When more than one match, list all matches and complete till the longest common string. \ "list:longest" When more than one match, list all matches and complete till the longest common string. \
When there is only a single match, it is fully completed regardless of the case. When there is only a single match, it is fully completed regardless of the case.
----------------------------------------- -----------------------------------------

View File

@@ -8,7 +8,7 @@ commands as Firefox does not provide native regexp support. It is unlikely that
this will ever be available. this will ever be available.
|/| + |/| +
||/\\{pattern\\}[/]<CR>|| + ||/{pattern}[/]<CR>|| +
________________________________________________________________________________ ________________________________________________________________________________
Search forward for the first occurrence of {pattern}. Search forward for the first occurrence of {pattern}.

View File

@@ -20,13 +20,14 @@ ________________________________________________________________________________
section:Firefox{nbsp}printing{nbsp}dialogs[firefox-print-dialogs] section:Firefox{nbsp}printing{nbsp}dialogs[firefox-print-dialogs]
The "Print Preview" and "Page Setup" dialogs can be opened via the :dialog command The "Print Preview" and "Page Setup" dialogs can be opened via the [c]:dialog[c]
command
:dialog printpreview \{nbsp}[c]:dialog printpreview[c]
and and
:dialog printsetup \{nbsp}[c]:dialog printsetup[c]
respectively. respectively.

View File

@@ -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).
@@ -49,7 +49,7 @@ ____________________________________________________________________________
|.| |.|
||[count].| ||[count].||
____________________________________________________________________________ ____________________________________________________________________________
Repeat the last keyboard mapping [count] times. Note that, unlike in Vim, this Repeat the last keyboard mapping [count] times. Note that, unlike in Vim, this
does not apply solely to editing commands, mainly because Vimperator doesn't does not apply solely to editing commands, mainly because Vimperator doesn't
@@ -99,12 +99,12 @@ Load all unloaded plugins immediately. Because plugins are automatically
loaded after vimperatorrc is sourced, this command must be placed early loaded after vimperatorrc is sourced, this command must be placed early
in the vimperatorrc file if vimperatorrc also includes commands that are in the vimperatorrc file if vimperatorrc also includes commands that are
implemented by plugins. Additionally, this command allows for sourcing implemented by plugins. Additionally, this command allows for sourcing
new plugins without restarting vimperator. new plugins without restarting Vimperator.
________________________________________________________________________________ ________________________________________________________________________________
|:ru| |:runtime| |:ru| |:runtime|
||:runt[ime][!]| {file} ...|| + ||:runt[ime][!] {file} ...|| +
________________________________________________________________________________ ________________________________________________________________________________
Source the specified file from each directory in 'runtimepath'. Example: + Source the specified file from each directory in 'runtimepath'. Example: +
[c]:runtime plugin/foobar.vimp[c] + [c]:runtime plugin/foobar.vimp[c] +

View File

@@ -8,17 +8,15 @@ section:Initialization[initialization,startup]
At startup, Vimperator completes the following tasks in order. At startup, Vimperator completes the following tasks in order.
1. Vimperator can perform user initialization commands. When 1. Vimperator can perform user initialization commands. When
one of the following is successfully located, it is executed, and no one of the following is successfully located, it is executed, and no
further locations are tried. further locations are tried.
a. |$VIMPERATOR_INIT| _$VIMPERATOR_INIT_ -- May contain a single ex a. |$VIMPERATOR_INIT|
command (e.g., _$VIMPERATOR_INIT_ -- May contain a single Ex command (e.g.,
"[c]:source {file}[c]"). "[c]:source {file}[c]").
b. [a]\~/_vimperatorrc[a] -- Windows only. If this file exists, its b. [a]\~/_vimperatorrc[a] -- Windows only. If this file exists, its contents
contents are executed and are executed and _$MY_VIMPERATORRC_ set to its path.
_$MY_VIMPERATORRC_ set to its path. c. [a]\~/.vimperatorrc[a] -- If this file exists, its contents are executed.
c. [a]\~/.vimperatorrc[a] -- If this file exists, its contents are
executed.
2. If 'exrc' is set, then any RC file in the current directory is also sourced. 2. If 'exrc' is set, then any RC file in the current directory is also sourced.

View File

@@ -18,7 +18,7 @@ sourced.
________________________________________________________________________________ ________________________________________________________________________________
|:hi| |:highlight| + |:hi| |:highlight| +
||:hi[light] [-append] {group}[{selector}] [{css}]|| + ||:hi[ghlight][!] [-append] {group}[{selector}] [{css}]|| +
________________________________________________________________________________ ________________________________________________________________________________
Highlight {group} with {css}. Normally, {css} is checked for Highlight {group} with {css}. Normally, {css} is checked for
valid syntax before it's applied. Once you're certain it's valid syntax before it's applied. Once you're certain it's
@@ -86,7 +86,7 @@ Valid groups are:
------------------------------------------------------- -------------------------------------------------------
Every invocation completely replaces the styling of any previous invocation, Every invocation completely replaces the styling of any previous invocation,
unless [-append] (short option: -a) is provided, in which case, {css} is unless *-append* (short option: *-a*) is provided, in which case {css} is
appended to its current value. If {css} is not provided, any styles matching appended to its current value. If {css} is not provided, any styles matching
{group} are listed. {group} are listed.
________________________________________________________________________________ ________________________________________________________________________________
@@ -103,12 +103,12 @@ ________________________________________________________________________________
||:sty[le][!] [-name={name}] [-append] {filter} [{css}]|| + ||:sty[le][!] [-name={name}] [-append] {filter} [{css}]|| +
________________________________________________________________________________ ________________________________________________________________________________
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 [c]*[c] are matched as separated list of URLs to match. URLs ending with *\** are matched as
prefixes, URLs not containing any [c]:[c] or [c]/[c] 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: [c]-n[c]) 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: [c]-a[c]) is provided be deleted using {name}. If *-append* (short option: *-a*) is provided
along with [c]-name[c], {css} and {filter} are appended to its current along with *-name*, {css} and {filter} are appended to its current
value. value.
If {css} isn't provided, matching styles are listed. If {css} isn't provided, matching styles are listed.
@@ -123,9 +123,9 @@ style for [c]www.google.com,mozilla.org[c], will result in a style for
[c]www.google.com[c]. The available options are: [c]www.google.com[c]. The available options are:
* [c]-name[c]: The name provided to [c]:style[c] (short option: * [c]-name[c]: The name provided to [c]:style[c] (short option:
[c]-n[c]) *-n*)
* [c]-index[c]: 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: [c]-i[c]) (short option: *-i*)
________________________________________________________________________________ ________________________________________________________________________________
// vim: set filetype=asciidoc: // vim: set filetype=asciidoc:

View File

@@ -101,7 +101,7 @@ buffer, it is selected. With [!] the next buffer matching the argument is
selected, even if it cannot be identified uniquely. Use [m]b[m] as a selected, even if it cannot be identified uniquely. Use [m]b[m] as a
shortcut to open this prompt. shortcut to open this prompt.
If argument is [a]#[a], the alternate buffer will be selected (see [m]<C-^>[m]). If argument is [a]\#[a], the alternate buffer will be selected (see [m]<C-^>[m]).
If no argument is given the current buffer remains current. If no argument is given the current buffer remains current.
________________________________________________________________________________ ________________________________________________________________________________
@@ -153,7 +153,7 @@ ________________________________________________________________________________
||:[count]bn[ext] [count]|| + ||:[count]bn[ext] [count]|| +
________________________________________________________________________________ ________________________________________________________________________________
Switch to the next or [count]th tab. Cycles to the first tab when the last is Switch to the next or [count]th tab. Cycles to the first tab when the last is
selected and {count} is not specified. selected and [count] is not specified.
________________________________________________________________________________ ________________________________________________________________________________
@@ -203,8 +203,8 @@ ________________________________________________________________________________
||:[count]u[ndo] [a][url][a]|| + ||:[count]u[ndo] [a][url][a]|| +
||[count]u|| ||[count]u||
________________________________________________________________________________ ________________________________________________________________________________
Undo closing of a tab. If a count is given, don't close the last but the Undo closing of a tab. If a count is given, don't undo the last but the
[count]th last tab. With [a][url][a] restores the tab matching the URL. [count]th last closed tab. With [a][url][a] restores the tab matching the URL.
________________________________________________________________________________ ________________________________________________________________________________

View File

@@ -15,32 +15,32 @@ bare-looking window. The menubar, navigation bar, and bookmark bars are hidden.
In case you missed the notice in the help:Introduction[intro.html], you can In case you missed the notice in the help:Introduction[intro.html], you can
regain these by issuing the command regain these by issuing the command
:set go+=mTb<CR> \{nbsp}[c]:set go+=mTB<CR>[c]
where [m]<CR>[m] represents pressing the <Enter> or <Return> key. where [m]<CR>[m] represents pressing the <Enter> or <Return> key.
If you're a veteran Vim user, this may look familiar. It should. 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
[o]guioptions[o] in help:options[options.html] for more information on this. [o]guioptions[o] in 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]
Vimperator's power, like Vim's, comes from it's modal interface. Keys have Vimperator's power, like Vim's, comes from it's modal interface. Keys have
different meanings depending on which mode the browser is in. Vimperator has different meanings depending on which mode the browser is in. Vimperator has
several modes, but the 2 most important are ``normal'' mode and several modes, but the 2 most important are ``Normal'' mode and
``command-line'' mode. ``Command-line'' mode.
When Vimperator starts, it is in normal mode by default. This is probably where 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 \':' (colon). You will frequently see Vimperator
commands start with a \':', indicating that what follows is a command. commands start with a \':', indicating that what follows is a command.
To return to normal mode 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
Vimperator. Vimperator.
section:Getting{nbsp}help[getting-help] section:Getting{nbsp}help[getting-help]
@@ -51,7 +51,7 @@ Most of the documentation for Vimperator's features are easily found using the
[c]:help[c] command. For example, you can find help on the [c]:help[c] command [c]:help[c] command. For example, you can find help on the [c]:help[c] command
by typing by typing
:help :help<CR> \{nbsp}[c]:help :help<CR>[c]
Similarly, help on configurable options is available with [c]:help Similarly, help on configurable options is available with [c]:help
'{option_name}'[c]. (Note the single quotes around the option name as in Vim.) '{option_name}'[c]. (Note the single quotes around the option name as in Vim.)
@@ -59,8 +59,8 @@ Information on all available options is, predictably, [c]:help options[c].
and you can find out about the [m]gt[m] and [m]gT[m] mapping with and you can find out about the [m]gt[m] and [m]gT[m] mapping with
:help gt<CR> \{nbsp}[c]:help gt<CR>[c] +
:help gT<CR> \{nbsp}[c]:help gT<CR>[c]
Finally, in addition to the help system itself, [c]:exusage[c], [c]:viusage[c] Finally, in addition to the help system itself, [c]:exusage[c], [c]:viusage[c]
and [c]:optionusage[c] are useful quick-reference commands. and [c]:optionusage[c] are useful quick-reference commands.
@@ -73,7 +73,7 @@ The efficiency of Vimperator, as with the legendary editor it was inspired by,
relies on the user being able to keep his fingers on the keyboard where they relies on the user being able to keep his fingers on the keyboard where they
can do the most good. While there are some areas where the mouse is clearly can do the most good. While there are some areas where the mouse is clearly
superior at, such as GUI design or some games, Vimperator acts on the superior at, such as GUI design or some games, Vimperator acts on the
assumption that the web browser doesn't have to be one of those. assumption that a web browser doesn't have to be one of those.
Here are some areas where the mouse is typically considered indisposable, and Here are some areas where the mouse is typically considered indisposable, and
how Vimperator challenges this preconception. how Vimperator challenges this preconception.
@@ -115,20 +115,20 @@ Vimmers.
close the active tab (delete the buffer) close the active tab (delete the buffer)
To open a web page in a new tab, use the [c]:tabopen {url}[c]. To open a URL in To open a web page in a new tab, use the [c]:tabopen {url}[c]. To open a URL in
the current tab, use [c]:open[c]. The normal mode mappings [m]t[m] and [m]o[m], the current tab, use [c]:open[c]. The Normal mode mappings [m]t[m] and [m]o[m],
respectively, map to these commands, so the following pairs sequences are respectively, map to these commands, so the following pairs of sequences are
equivalent: equivalent:
:open my.webmail.com<CR> \{nbsp}[c]:open my.webmail.com<CR>[c] +
omy.webmail.com<CR> \{nbsp}[m]omy.webmail.com<CR>[m]
:tabopen vimperator.org<CR> \{nbsp}[c]:tabopen vimperator.org<CR>[c] +
tvimperator.org<CR> \{nbsp}[m]tvimperator.org<CR>[m]
section:Some{nbsp}hints{nbsp}about{nbsp}surfing...[hints-tutorial] section:Some{nbsp}hints{nbsp}about{nbsp}surfing...[hints-tutorial]
So now you can navigate around in Vimperator. But wait... how do you *open* a So now you can navigate around in Vimperator. But wait... how do you *open* a
page or tab linked in a web page? How do you ``click'' on all those links page or tab linked in a web page? How do you ``click'' on all those links
without your tailed friend? without your tailed friend?
The answer is ``hints''. Activating hints displays a number next to every link The answer is ``hints''. Activating hints displays a number next to every link
@@ -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 [m]<Enter>[m] to open it. highlighted the link you want, simply hit <Enter> 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
@@ -162,12 +162,12 @@ Say you get half-way done typing in a new URL, only to remember that you've
already got that page open in the previous tab. Your command line might look already got that page open in the previous tab. Your command line might look
something like this: something like this:
:open my.partial.url/fooba \{nbsp}[c]:open my.partial.url/fooba[c]
You can exit the command line and access the already loaded page with the You can exit the command line and access the already loaded page with the
following: following:
<Esc>gT \{nbsp}[m]<Esc>gT[m]
section:Saving{nbsp}for{nbsp}posterity{nbsp}-{nbsp}vimperatorrc[vimperatorrc] section:Saving{nbsp}for{nbsp}posterity{nbsp}-{nbsp}vimperatorrc[vimperatorrc]
@@ -189,8 +189,8 @@ Vimperator supports all of Vim's classic methods of exiting.
* [c]:xall[c] -- command to quit and save the current browsing * [c]:xall[c] -- command to quit and save the current browsing
session for next time; the default. session for next time; the default.
* [c]:qall[c] -- command to quit _without_ saving the session * [c]:qall[c] -- command to quit _without_ saving the session
* [m]ZZ[m] -- normal mode mapping equivalent to [c]:xall[c] * [m]ZZ[m] -- Normal mode mapping equivalent to [c]:xall[c]
* [m]ZQ[m] -- normal mode mapping equivalent to [c]:qall[c] * [m]ZQ[m] -- Normal mode mapping equivalent to [c]:qall[c]
section:Where{nbsp}did{nbsp}Firefox{nbsp}go?[whither-firefox] section:Where{nbsp}did{nbsp}Firefox{nbsp}go?[whither-firefox]
@@ -240,7 +240,7 @@ section:I'm{nbsp}interested...but{nbsp}lost![support]
Vimperator has an energetic and growing user base. If you've run into a problem Vimperator has an energetic and growing user base. If you've run into a problem
that you can't seem to solve with Vimperator, or if you think you might have that you can't seem to solve with Vimperator, or if you think you might have
found a bug, please let us know! There is support available on the found a bug, please let us know! There is support available on the
http://vimperator.cutup.org/index.php?title=Main_Page[wiki], or in the http://vimperator.cutup.org/index.php?title=Main_Page[wiki], or in the
#vimperator IRC channel on http://freenode.net/[freenode]. #vimperator IRC channel on http://freenode.net/[freenode].

View File

@@ -21,7 +21,7 @@ ________________________________________________________________________________
Execute Normal mode commands {commands}. This makes it possible to execute Execute Normal mode commands {commands}. This makes it possible to execute
Normal mode commands typed on the command line. {commands} is executed like it Normal mode commands typed on the command line. {commands} is executed like it
is typed. If the [!] is given, mappings will not be used. {commands} should be is typed. If the [!] is given, mappings will not be used. {commands} should be
a complete command. {commands} cannot start with a space. Put a 1 (one) before a complete command. {commands} cannot start with a space. Put 1 space before
it, 1 space is one space. it, 1 space is one space.
________________________________________________________________________________ ________________________________________________________________________________
@@ -94,7 +94,7 @@ section:Uncategorized{nbsp}help[uncategorized]
|<C-[>| |<Esc>| + |<C-[>| |<Esc>| +
||<Esc>|| ||<Esc>||
________________________________________________________________________________ ________________________________________________________________________________
Focus content. Exits command-line or hint mode and returns to browser Focus content. Exits Command-line or Hints mode and returns to Normal
mode. Also focuses the web page in case a form field has focus and eats mode. Also focuses the web page in case a form field has focus and eats
our key presses. our key presses.
________________________________________________________________________________ ________________________________________________________________________________
@@ -103,16 +103,9 @@ ________________________________________________________________________________
|<Insert>| |i| + |<Insert>| |i| +
||i|| ||i||
________________________________________________________________________________ ________________________________________________________________________________
Start caret mode. This mode resembles the Vim normal mode where you see a text Start caret mode. This mode resembles the Vim's Normal mode where you see a
cursor and can move around. If you want to select text in this mode, press text cursor and can move around. If you want to select text in this mode, press
[m]v[m] to start its Visual mode. [m]v[m] to start its Visual mode.
________________________________________________________________________________ ________________________________________________________________________________
//|:pc| |:pclose| +
//||:pc[lose]||
//________________________________________________________________________________
//Close preview window on bottom of screen.
//________________________________________________________________________________
// vim: set filetype=asciidoc: // vim: set filetype=asciidoc: