From 94d2fc1815a919734353c942f224db1de4b4fcb8 Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Mon, 7 Mar 2011 09:04:49 +0100 Subject: Django, org * Added nxhtml, mostly for django support. * Changed some org settings. --- emacs.d/nxhtml/etc/img/pause/pause.jpg | Bin 0 -> 25849 bytes emacs.d/nxhtml/etc/img/pause/pause2.jpg | Bin 0 -> 26756 bytes .../nxhtml/etc/schema/FDA-2009-N-0392-0396.1.doc | Bin 0 -> 47104 bytes emacs.d/nxhtml/etc/schema/genshi-old.rnc | 27 + emacs.d/nxhtml/etc/schema/genshi-schemas.xml | 3 + emacs.d/nxhtml/etc/schema/genshi.rnc | 84 ++ emacs.d/nxhtml/etc/schema/mjt.rnc | 74 ++ emacs.d/nxhtml/etc/schema/nxml-erb.patch | 37 + emacs.d/nxhtml/etc/schema/old-genshi.rnc | 31 + emacs.d/nxhtml/etc/schema/old-qtmstr-xhtml.rnc | 61 ++ emacs.d/nxhtml/etc/schema/old-xinclude.rnc | 11 + emacs.d/nxhtml/etc/schema/qtmstr-xhtml-old.rnc | 58 ++ emacs.d/nxhtml/etc/schema/qtmstr-xhtml.rnc | 66 ++ emacs.d/nxhtml/etc/schema/schema-path-patch.el | 95 +++ emacs.d/nxhtml/etc/schema/xhtml-loader.rnc | 1 + emacs.d/nxhtml/etc/schema/xinclude.rnc | 35 + emacs.d/nxhtml/etc/templates/rollover-2v.css | 25 + emacs.d/nxhtml/etc/uts39/idnchars.txt | 894 +++++++++++++++++++++ emacs.d/nxhtml/etc/viper-tut/0intro | 59 ++ emacs.d/nxhtml/etc/viper-tut/1basics | 187 +++++ emacs.d/nxhtml/etc/viper-tut/2moving | 269 +++++++ emacs.d/nxhtml/etc/viper-tut/3cutpaste | 318 ++++++++ emacs.d/nxhtml/etc/viper-tut/4inserting | 180 +++++ emacs.d/nxhtml/etc/viper-tut/5tricks | 229 ++++++ emacs.d/nxhtml/etc/viper-tut/README | 49 ++ emacs.d/nxhtml/etc/viper-tut/outline | 131 +++ 26 files changed, 2924 insertions(+) create mode 100644 emacs.d/nxhtml/etc/img/pause/pause.jpg create mode 100644 emacs.d/nxhtml/etc/img/pause/pause2.jpg create mode 100644 emacs.d/nxhtml/etc/schema/FDA-2009-N-0392-0396.1.doc create mode 100644 emacs.d/nxhtml/etc/schema/genshi-old.rnc create mode 100644 emacs.d/nxhtml/etc/schema/genshi-schemas.xml create mode 100644 emacs.d/nxhtml/etc/schema/genshi.rnc create mode 100644 emacs.d/nxhtml/etc/schema/mjt.rnc create mode 100644 emacs.d/nxhtml/etc/schema/nxml-erb.patch create mode 100644 emacs.d/nxhtml/etc/schema/old-genshi.rnc create mode 100644 emacs.d/nxhtml/etc/schema/old-qtmstr-xhtml.rnc create mode 100644 emacs.d/nxhtml/etc/schema/old-xinclude.rnc create mode 100644 emacs.d/nxhtml/etc/schema/qtmstr-xhtml-old.rnc create mode 100644 emacs.d/nxhtml/etc/schema/qtmstr-xhtml.rnc create mode 100644 emacs.d/nxhtml/etc/schema/schema-path-patch.el create mode 100644 emacs.d/nxhtml/etc/schema/xhtml-loader.rnc create mode 100644 emacs.d/nxhtml/etc/schema/xinclude.rnc create mode 100644 emacs.d/nxhtml/etc/templates/rollover-2v.css create mode 100644 emacs.d/nxhtml/etc/uts39/idnchars.txt create mode 100644 emacs.d/nxhtml/etc/viper-tut/0intro create mode 100644 emacs.d/nxhtml/etc/viper-tut/1basics create mode 100644 emacs.d/nxhtml/etc/viper-tut/2moving create mode 100644 emacs.d/nxhtml/etc/viper-tut/3cutpaste create mode 100644 emacs.d/nxhtml/etc/viper-tut/4inserting create mode 100644 emacs.d/nxhtml/etc/viper-tut/5tricks create mode 100644 emacs.d/nxhtml/etc/viper-tut/README create mode 100644 emacs.d/nxhtml/etc/viper-tut/outline (limited to 'emacs.d/nxhtml/etc') diff --git a/emacs.d/nxhtml/etc/img/pause/pause.jpg b/emacs.d/nxhtml/etc/img/pause/pause.jpg new file mode 100644 index 0000000..ff92075 Binary files /dev/null and b/emacs.d/nxhtml/etc/img/pause/pause.jpg differ diff --git a/emacs.d/nxhtml/etc/img/pause/pause2.jpg b/emacs.d/nxhtml/etc/img/pause/pause2.jpg new file mode 100644 index 0000000..6411344 Binary files /dev/null and b/emacs.d/nxhtml/etc/img/pause/pause2.jpg differ diff --git a/emacs.d/nxhtml/etc/schema/FDA-2009-N-0392-0396.1.doc b/emacs.d/nxhtml/etc/schema/FDA-2009-N-0392-0396.1.doc new file mode 100644 index 0000000..aa2eff3 Binary files /dev/null and b/emacs.d/nxhtml/etc/schema/FDA-2009-N-0392-0396.1.doc differ diff --git a/emacs.d/nxhtml/etc/schema/genshi-old.rnc b/emacs.d/nxhtml/etc/schema/genshi-old.rnc new file mode 100644 index 0000000..5384fe1 --- /dev/null +++ b/emacs.d/nxhtml/etc/schema/genshi-old.rnc @@ -0,0 +1,27 @@ +namespace py = "http://genshi.edgewall.org/" + +genshi.expr-type = xsd:string { minLength = "1" } +genshi.with-type = xsd:string { minLength = "1" } +genshi.choose-type = xsd:string +genshi.def-type = xsd:string +genshi.xpath-type = xsd:anyURI + +genshi.attrib = attribute py:if { genshi.expr-type }?, + attribute py:choose { genshi.choose-type }?, + attribute py:when { genshi.expr-type }?, + attribute py:otherwise { genshi.expr-type }?, + attribute py:for { genshi.expr-type }?, + attribute py:def { genshi.def-type }?, + attribute py:match { genshi.xpath-type }?, + attribute py:with { genshi.with-type }?, + attribute py:attrs { genshi.expr-type }?, + attribute py:content { genshi.expr-type }?, + attribute py:replace { genshi.expr-type }?, + attribute py:strip { genshi.expr-type }? + +genshi.if.attlist = attribute expr { genshi.expr-type } +genshi.for.attlist = attribute each { genshi.expr-type } +genshi.def.attlist = attribute each { genshi.expr-type } +genshi.with.attlist = attribute vars { genshi.with-type } + + diff --git a/emacs.d/nxhtml/etc/schema/genshi-schemas.xml b/emacs.d/nxhtml/etc/schema/genshi-schemas.xml new file mode 100644 index 0000000..89fe05f --- /dev/null +++ b/emacs.d/nxhtml/etc/schema/genshi-schemas.xml @@ -0,0 +1,3 @@ + + + diff --git a/emacs.d/nxhtml/etc/schema/genshi.rnc b/emacs.d/nxhtml/etc/schema/genshi.rnc new file mode 100644 index 0000000..b9ddf76 --- /dev/null +++ b/emacs.d/nxhtml/etc/schema/genshi.rnc @@ -0,0 +1,84 @@ +default namespace = "http://genshi.edgewall.org/" +namespace py = "http://genshi.edgewall.org/" + +include "xinclude.rnc" + +# There's no way to just match the text part against a Genshi Python expression +# See: http://relaxng.org/compact-tutorial-20030326.html#id2814737 +python.expression = text + +genshi.expr-type = xsd:string { minLength = "1" } +genshi.xpath-type = xsd:anyURI + +genshi.attrib = + attribute py:if { genshi.expr-type }?, + attribute py:choose { text }?, + attribute py:when { genshi.expr-type }?, + attribute py:otherwise { text }?, + attribute py:for { genshi.expr-type }?, + attribute py:def { genshi.expr-type }?, + attribute py:match { genshi.xpath-type}?, + attribute py:with { genshi.expr-type }?, + attribute py:attrs { genshi.expr-type }?, + attribute py:content { text }?, + attribute py:replace { genshi.expr-type }?, + attribute py:strip { text }? + +genshi.if.attlist = attribute test { genshi.expr-type } +genshi.choose.attlist = attribute test { text } +genshi.when.attlist = attribute test { genshi.expr-type } +genshi.for.attlist = attribute each { genshi.expr-type } +genshi.def.attlist = attribute function { genshi.expr-type } +genshi.with.attlist = attribute vars { genshi.expr-type } +genshi.replace.attlist = attribute value { genshi.expr-type } +genshi.match.attlist = + attribute path { genshi.xpath-type }, + attribute buffer { "true" | "false" }?, + attribute once { "true" | "false" }?, + attribute recursive { "true" | "false" }? + +genshi.choose = + element py:choose { genshi.choose.attlist, + genshi.model + } +genshi.when = + element py:when { genshi.when.attlist, + genshi.model + } +genshi.otherwise = + element py:otherwise { + genshi.model + } +genshi.if = + element py:if { genshi.if.attlist, + genshi.model + } +genshi.for = + element py:for { genshi.for.attlist, + genshi.model + } +genshi.def = + element py:def { genshi.def.attlist, + genshi.model + } +genshi.with = + element py:with { genshi.with.attlist, + genshi.model + } +genshi.match = + element py:match { genshi.match.attlist, + genshi.model + } +genshi.replace = + element py:replace { genshi.replace.attlist, + genshi.model + } + +genshi.allowed.children = text + +genshi.class = genshi.if | genshi.choose | genshi.when | genshi.otherwise + | genshi.for | genshi.def | genshi.with | genshi.match | genshi.replace + | python.expression + | xi.include + +genshi.model = genshi.class* | genshi.allowed.children* \ No newline at end of file diff --git a/emacs.d/nxhtml/etc/schema/mjt.rnc b/emacs.d/nxhtml/etc/schema/mjt.rnc new file mode 100644 index 0000000..b37f01a --- /dev/null +++ b/emacs.d/nxhtml/etc/schema/mjt.rnc @@ -0,0 +1,74 @@ +include "xhtml-loader.rnc" + +MjtAll.attrib = + attribute mjt.def { Text.datatype }?, + attribute mjt.when { Text.datatype }?, + attribute mjt.otherwise { Text.datatype }?, + attribute mjt.for { Text.datatype }?, + attribute mjt.if { Text.datatype }?, + attribute mjt.elif { Text.datatype }?, + attribute mjt.else { Text.datatype }?, + attribute mjt.script { Text.datatype }?, + attribute mjt.choose { Text.datatype }?, + attribute mjt.replace { Text.datatype }?, + attribute mjt.content { Text.datatype }?, + attribute mjt.strip { Text.datatype }?, + attribute mjt.src { Text.datatype }?, + attribute mjt.style { Text.datatype }?, + attribute mjt.class { Text.datatype }?, + attribute mjt.id { Text.datatype }?, + attribute mjt.attrs { Text.datatype }?, + attribute mjt.task { Text.datatype }? + + +a.attlist &= + attribute mjt.onblur { Script.datatype }?, + attribute mjt.onfocus { Script.datatype }? +area.attlist &= + attribute mjt.onblur { Script.datatype }?, + attribute mjt.onfocus { Script.datatype }? +form.attlist &= + attribute mjt.onreset { Script.datatype }?, + attribute mjt.onsubmit { Script.datatype }? +body.attlist &= + attribute mjt.onload { Script.datatype }?, + attribute mjt.onunload { Script.datatype }? +label.attlist &= + attribute mjt.onblur { Script.datatype }?, + attribute mjt.onfocus { Script.datatype }? +input.attlist &= + attribute mjt.onblur { Script.datatype }?, + attribute mjt.onchange { Script.datatype }?, + attribute mjt.onfocus { Script.datatype }?, + attribute mjt.onselect { Script.datatype }? +select.attlist &= + attribute mjt.onblur { Script.datatype }?, + attribute mjt.onchange { Script.datatype }?, + attribute mjt.onfocus { Script.datatype }? +textarea.attlist &= + attribute mjt.onblur { Script.datatype }?, + attribute mjt.onchange { Script.datatype }?, + attribute mjt.onfocus { Script.datatype }?, + attribute mjt.onselect { Script.datatype }? +button.attlist &= + attribute mjt.onblur { Script.datatype }?, + attribute mjt.onfocus { Script.datatype }? + +MjtEvents.attrib = + attribute mjt.onclick { Script.datatype }?, + attribute mjt.ondblclick { Script.datatype }?, + attribute mjt.onmousedown { Script.datatype }?, + attribute mjt.onmouseup { Script.datatype }?, + attribute mjt.onmouseover { Script.datatype }?, + attribute mjt.onmousemove { Script.datatype }?, + attribute mjt.onmouseout { Script.datatype }?, + attribute mjt.onkeypress { Script.datatype }?, + attribute mjt.onkeydown { Script.datatype }?, + attribute mjt.onkeyup { Script.datatype }? + + +Common.attrib &= MjtAll.attrib +CommonIdRequired.attrib &= MjtAll.attrib + +Common.attrib &= MjtEvents.attrib +CommonIdRequired.attrib &= MjtEvents.attrib diff --git a/emacs.d/nxhtml/etc/schema/nxml-erb.patch b/emacs.d/nxhtml/etc/schema/nxml-erb.patch new file mode 100644 index 0000000..362913b --- /dev/null +++ b/emacs.d/nxhtml/etc/schema/nxml-erb.patch @@ -0,0 +1,37 @@ +--- nxml-mode-orig/xmltok.el 2005-10-16 15:32:53.000000000 -0400 ++++ nxml-mode-erb/xmltok.el 2006-09-01 01:02:55.000000000 -0400 +@@ -496,6 +496,9 @@ + (xmltok+ (xmltok-g markup-declaration "!") + (xmltok-g comment-first-dash "-" + (xmltok-g comment-open "-") opt) opt)) ++ (erb-section ++ (xmltok+ "%" ++ (xmltok-g erb-section-open "[^%]") opt)) + (cdata-section + (xmltok+ "!" + (xmltok-g marked-section-open "\\[") +@@ -526,6 +529,7 @@ + ;; by default + or cdata-section + or comment ++ or erb-section + or processing-instruction)) + (xmltok-defregexp + xmltok-attribute +@@ -693,6 +697,16 @@ + nil + "]]>") + 'not-well-formed))) ++ ((xmltok-after-lt start erb-section-open) ++ (setq xmltok-type ++ (if (re-search-forward "[^%]%>" nil t) ++ 'erb-section ++ (xmltok-add-error "No closing %>") ++ (xmltok-add-dependent 'xmltok-unclosed-reparse-p ++ nil ++ nil ++ "%>") ++ 'not-well-formed))) + ((xmltok-after-lt start processing-instruction-question) + (xmltok-scan-after-processing-instruction-open)) + ((xmltok-after-lt start comment-open) diff --git a/emacs.d/nxhtml/etc/schema/old-genshi.rnc b/emacs.d/nxhtml/etc/schema/old-genshi.rnc new file mode 100644 index 0000000..5a50385 --- /dev/null +++ b/emacs.d/nxhtml/etc/schema/old-genshi.rnc @@ -0,0 +1,31 @@ +namespace py = "http://genshi.edgewall.org/" + +genshi.expr-type = xsd:string { minLength = "1" } +genshi.with-type = xsd:string { minLength = "1" } +genshi.choose-type = xsd:string +genshi.def-type = xsd:string +genshi.xpath-type = xsd:anyURI + +genshi.attrib = attribute py:if { genshi.expr-type }?, + attribute py:choose { genshi.choose-type }?, + attribute py:when { genshi.expr-type }?, + attribute py:otherwise { genshi.expr-type }?, + attribute py:for { genshi.expr-type }?, + attribute py:def { genshi.def-type }?, + attribute py:match { genshi.xpath-type }?, + attribute py:with { genshi.with-type }?, + attribute py:attrs { genshi.expr-type }?, + attribute py:content { genshi.expr-type }?, + attribute py:replace { genshi.expr-type }?, + attribute py:strip { genshi.expr-type }? + +genshi.if.attlist = attribute test { genshi.expr-type } +genshi.for.attlist = attribute each { genshi.expr-type } +genshi.def.attlist = attribute function { genshi.expr-type } +genshi.with.attlist = attribute vars { genshi.with-type } +genshi.match.attlist = attribute path { genshi.xpath-type }, + attribute buffer { genshi.expr-type }?, + attribute once { genshi.expr-type }?, + attribute recursive { genshi.expr-type }? + + diff --git a/emacs.d/nxhtml/etc/schema/old-qtmstr-xhtml.rnc b/emacs.d/nxhtml/etc/schema/old-qtmstr-xhtml.rnc new file mode 100644 index 0000000..b5f84bd --- /dev/null +++ b/emacs.d/nxhtml/etc/schema/old-qtmstr-xhtml.rnc @@ -0,0 +1,61 @@ +namespace py = "http://genshi.edgewall.org/" +namespace xi = "http://www.w3.org/2001/XInclude" + +include "genshi.rnc" +include "xinclude.rnc" +include "xhtml-loader.rnc" + +start |= head|body|p|\div|h1|h2|h3|h4|h5|h6|hr|pre|dl|ol|ul|table|form + +Common.attrib &= genshi.attrib +head.attlist &= genshi.attrib +html.attlist &= genshi.attrib + +Head.class = base | isindex | link | meta | script | title | style | + if-head | for-head | def-head | with-head + +Head.model = Head.class* + +head.content &= Head.model* + +if-inline = element py:if { genshi.if.attlist, Inline.model } +if-block = element py:if { genshi.if.attlist, Block.model } +if-head = element py:if { genshi.if.attlist, Head.model } +for-inline = element py:for { genshi.for.attlist, Inline.model } +for-block = element py:for { genshi.for.attlist, Block.model } +for-head = element py:for { genshi.for.attlist, Head.model } +def-inline = element py:def { genshi.def.attlist, Inline.model } +def-block = element py:def { genshi.def.attlist, Block.model } +def-head = element py:def { genshi.def.attlist, Head.model } +with-inline = element py:with { genshi.with.attlist, Inline.model } +with-block = element py:with { genshi.with.attlist, Block.model } +with-head = element py:with { genshi.with.attlist, Head.model } +match-inline = element py:match { genshi.match.attlist, Inline.model } +match-block = element py:match { genshi.match.attlist, Block.model } +match-head = element py:match { genshi.match.attlist, Head.model } + +Inline.class |= if-inline | for-inline | def-inline | with-inline | match-inline +Block.class |= if-block | for-block | def-block | with-block | match-block + +xi-inline = element xi:include { + xinclude.include.attlist, + element xi:fallback { genshi.attrib, + (xi-inline | Inline.model)* + }? + } + +xi-block = element xi:include { xinclude.include.attlist, + element xi:fallback { genshi.attrib, + (xi-block | Block.model)* + }? + } + +xi-head = element xi:include { xinclude.include.attlist, + element xi:fallback { genshi.attrib, + (xi-head | Head.model)* + }? + } + +Inline.class |= xi-inline +Block.class |= xi-block +Head.class |= xi-head diff --git a/emacs.d/nxhtml/etc/schema/old-xinclude.rnc b/emacs.d/nxhtml/etc/schema/old-xinclude.rnc new file mode 100644 index 0000000..c45cf0c --- /dev/null +++ b/emacs.d/nxhtml/etc/schema/old-xinclude.rnc @@ -0,0 +1,11 @@ +namespace xi = "http://www.w3.org/2001/XInclude" +namespace local = "" + +xinclude.include.attlist = + attribute href { xsd:anyURI }?, + attribute parse { xsd:string }?, + attribute xpointer { xsd:string }?, + attribute encoding { xsd:string }?, + attribute accept { xsd:string }?, + attribute accept-language { xsd:string }? + diff --git a/emacs.d/nxhtml/etc/schema/qtmstr-xhtml-old.rnc b/emacs.d/nxhtml/etc/schema/qtmstr-xhtml-old.rnc new file mode 100644 index 0000000..61ab89e --- /dev/null +++ b/emacs.d/nxhtml/etc/schema/qtmstr-xhtml-old.rnc @@ -0,0 +1,58 @@ +namespace py = "http://genshi.edgewall.org/" +namespace xi = "http://www.w3.org/2001/XInclude" + +include "genshi.rnc" +include "xinclude.rnc" +include "xhtml-loader.rnc" + +start |= head|body|p|\div|h1|h2|h3|h4|h5|h6|hr|pre|dl|ol|ul|table|form + +Common.attrib &= genshi.attrib +head.attlist &= genshi.attrib +html.attlist &= genshi.attrib + +Head.class = base | isindex | link | meta | script | title | style | + if-head | for-head | def-head | with-head + +Head.model = Head.class* + +head.content &= Head.model* + +if-inline = element py:if { genshi.if.attlist, Inline.model } +if-block = element py:if { genshi.if.attlist, Block.model } +if-head = element py:if { genshi.if.attlist, Head.model } +for-inline = element py:for { genshi.for.attlist, Inline.model } +for-block = element py:for { genshi.for.attlist, Block.model } +for-head = element py:for { genshi.for.attlist, Head.model } +def-inline = element py:def { genshi.def.attlist, Inline.model } +def-block = element py:def { genshi.def.attlist, Block.model } +def-head = element py:def { genshi.def.attlist, Head.model } +with-inline = element py:with { genshi.with.attlist, Inline.model } +with-block = element py:with { genshi.with.attlist, Block.model } +with-head = element py:with { genshi.with.attlist, Head.model } + +Inline.class |= if-inline | for-inline | def-inline | with-inline +Block.class |= if-block | for-block | def-block | with-block + +xi-inline = element xi:include { + xinclude.include.attlist, + element xi:fallback { genshi.attrib, + (xi-inline | Inline.model)* + }? + } + +xi-block = element xi:include { xinclude.include.attlist, + element xi:fallback { genshi.attrib, + (xi-block | Block.model)* + }? + } + +xi-head = element xi:include { xinclude.include.attlist, + element xi:fallback { genshi.attrib, + (xi-head | Head.model)* + }? + } + +Inline.class |= xi-inline +Block.class |= xi-block +Head.class |= xi-head diff --git a/emacs.d/nxhtml/etc/schema/qtmstr-xhtml.rnc b/emacs.d/nxhtml/etc/schema/qtmstr-xhtml.rnc new file mode 100644 index 0000000..ff5d0a9 --- /dev/null +++ b/emacs.d/nxhtml/etc/schema/qtmstr-xhtml.rnc @@ -0,0 +1,66 @@ +default namespace = "http://www.w3.org/1999/xhtml" + +include "genshi.rnc" +include "xhtml-loader.rnc" { + start = html | head | head.content | body | frameset | frame | noframes | + Block.class | Inline.class | Table.class | Form.extra.class | genshi.class + html = element html { html.attlist, (genshi.model | (head, (body | frameset | genshi.model))) } + frameset = + element frameset { + frameset.attlist, + (((frameset | frame)+ & noframes?) | genshi.model) + } + noframes = element noframes { noframes.attlist, (body | genshi.model) } + title = element title { title.attlist, (text | genshi.model)* } + script = element script { script.attlist, (text | genshi.model)* } + style = element style { style.attlist, (text | genshi.model)* } + dl = element dl { dl.attlist, ((dt | dd)+ | genshi.model) } + ol = element ol { ol.attlist, (li+ | genshi.model) } + ul = element ul { ul.attlist, (li+ | genshi.model) } + dir = element dir { dir.attlist, (li.noblock+ | genshi.model) } + menu = element menu { menu.attlist, (li.noblock+ | genshi.model) } + select = element select { select.attlist, ((option | optgroup)+ | genshi.model) } + option = + element option { + Common.attrib, + attribute selected { "selected" }?, + attribute value { text }?, + (text | genshi.model)* + } + textarea = element textarea { textarea.attlist, (text & genshi.model)* } + optgroup = element optgroup { optgroup.attlist, (option+ | genshi.model) } + table = + element table { + table.attlist, + (caption? | genshi.model), + (col* | colgroup* | genshi.model), + (((thead? | genshi.model), + (tfoot? | genshi.model), + (tbody+ | genshi.model)) | (tr+ | genshi.model)) + } + colgroup = element colgroup { colgroup.attlist, (col* | genshi.model) } + tr = element tr { tr.attlist, ((th | td)+ | genshi.model) } + tbody = element tbody { tbody.attlist, (tr+ | genshi.model) } + thead = element thead { thead.attlist, (tr+ | genshi.model) } + tfoot = element tfoot { tfoot.attlist, (tr+ | genshi.model) } +} + +Table.class = caption | colgroup | col | tbody | thead | tfoot | th | tr | td +Form.extra.class = option | optgroup | legend + +Block.class |= genshi.class +Inline.class |= genshi.class +head.content &= genshi.class + +Core.attrib &= genshi.attrib +html.attlist &= genshi.attrib +head.attlist &= genshi.attrib +title.attlist &= genshi.attrib +base.attlist &= genshi.attrib +meta.attlist &= genshi.attrib +script.attlist &= genshi.attrib +param.attlist &= genshi.attrib +Edit.attrib &= genshi.attrib + +genshi.allowed.children |= html | head | head.content | body | frameset | frame + | noframes | Inline.class | Block.class | Table.class | Form.extra.class diff --git a/emacs.d/nxhtml/etc/schema/schema-path-patch.el b/emacs.d/nxhtml/etc/schema/schema-path-patch.el new file mode 100644 index 0000000..a6d59fc --- /dev/null +++ b/emacs.d/nxhtml/etc/schema/schema-path-patch.el @@ -0,0 +1,95 @@ +;;; schema-path-patch.el --- Patch schema paths +;; +;; Author: Lennart Borgman (lennart O borgman A gmail O com) +;; Created: 2008-08-08T20:21:31+0200 Fri +;; Version: 0.2 +;; Last-Updated: 2008-08-19T00:21:25+0200 Mon +;; URL: +;; Keywords: +;; Compatibility: +;; +;; Features that might be required by this library: +;; +;; Cannot open load file: schema-path-patch. +;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; +;;; Commentary: +;; +;; Schemas here may include parts from nxml and need to know the path. +;; This file can be used to patch the paths. +;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; +;;; Change log: +;; +;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License as +;; published by the Free Software Foundation; either version 2, or +;; (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with this program; see the file COPYING. If not, write to +;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth +;; Floor, Boston, MA 02110-1301, USA. +;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; +;;; Code: + +(defvar rncpp-this-dir + (file-name-as-directory + (file-name-directory + (if load-file-name load-file-name buffer-file-name)))) + +(defun rncpp-get-nxml-schema-dir () + ;; First look for nxml-mode included with Emacs + (let ((schema-dir (file-name-as-directory + (expand-file-name "schema" data-directory)))) + (unless (file-directory-p schema-dir) + ;; This is an old nxml-mode, look for its schemas dir. + (let ((nxml-mode-dir (file-name-as-directory + (file-name-directory (locate-library "nxml-mode"))))) + (setq schema-dir (file-name-as-directory + (expand-file-name "schema" nxml-mode-dir))))) + (unless (file-directory-p schema-dir) + (error "Can't find schema-dir=%s" schema-dir)) + schema-dir)) + +;; Use xhtml-loader.rnc (an idea from Bryan Waite): +(defun rncpp-patch-xhtml-loader () + "Patch xhtml-loader.rnc so genshi and mjt rnc files works." + ;;(interactive) + (let* ((default-directory rncpp-this-dir) + (loader-path (expand-file-name "xhtml-loader.rnc")) + (loader-buf (find-buffer-visiting loader-path)) + (schema-dir (rncpp-get-nxml-schema-dir)) + (schema-relative-dir (file-relative-name schema-dir)) + (loader-string (concat "include \"" + schema-relative-dir + "xhtml.rnc\"\n"))) + (when loader-buf (kill-buffer loader-buf)) + (setq loader-buf (find-file-noselect loader-path)) + (with-current-buffer loader-buf + (unless (file-exists-p loader-path) + (insert loader-string)) + ;; Test if correct + (if (string= (buffer-substring-no-properties (point-min) (point-max)) + loader-string) + (message "xhtml-loader.rnc was ok") + (message "Patching xhtml-loader.rnc") + (delete-region (point-min) (point-max)) + (insert loader-string)) + (basic-save-buffer) + (kill-buffer (current-buffer))))) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; schema-path-patch.el ends here diff --git a/emacs.d/nxhtml/etc/schema/xhtml-loader.rnc b/emacs.d/nxhtml/etc/schema/xhtml-loader.rnc new file mode 100644 index 0000000..a40f3cf --- /dev/null +++ b/emacs.d/nxhtml/etc/schema/xhtml-loader.rnc @@ -0,0 +1 @@ +include "../../../../../../usr/local/share/emacs/24.0.50/etc/schema/xhtml.rnc" diff --git a/emacs.d/nxhtml/etc/schema/xinclude.rnc b/emacs.d/nxhtml/etc/schema/xinclude.rnc new file mode 100644 index 0000000..cbda979 --- /dev/null +++ b/emacs.d/nxhtml/etc/schema/xinclude.rnc @@ -0,0 +1,35 @@ +default namespace = "http://www.w3.org/2001/XInclude" +namespace xi = "http://www.w3.org/2001/XInclude" + +xi.include.attlist = + attribute href { xsd:anyURI }?, + attribute parse { "xml" | "text" }?, + attribute xpointer { xsd:string }?, + attribute encoding { xsd:string }?, + attribute accept { xsd:string }?, + attribute accept-language { xsd:string }? + +xi.include.attlist.extra = + attribute * - xi.include.attlist { text }* + +xi.include = + element xi:include { + xi.include.attlist, + xi.include.attlist.extra, + (xi.fallback? | xi.include.extra)* + } + +xi.include.extra = notAllowed + +xi.fallback.attlist = + attribute * { text }* + +xi.fallback = + element xi:fallback { + xi.fallback.attlist, + (xi.include | xi.fallback.extra)* + } + +xi.fallback.extra = notAllowed + +xi.class = xi.include | xi.fallback \ No newline at end of file diff --git a/emacs.d/nxhtml/etc/templates/rollover-2v.css b/emacs.d/nxhtml/etc/templates/rollover-2v.css new file mode 100644 index 0000000..ed10a41 --- /dev/null +++ b/emacs.d/nxhtml/etc/templates/rollover-2v.css @@ -0,0 +1,25 @@ +ROLLOVER_SPEC a { + /* Image */ + display: block; + background: transparent url("IMG_URL") 0 0 no-repeat; + overflow: hidden; + width: IMG_WIDTHpx; + /* Text placement and size, etc */ + CENTER_OR_PAD; + padding-top: PADDING_TOPpx; + font-size: FONT_SIZEpx; + padding-bottom: PADDING_BOTTOMpx; + text-decoration: none; + white-space: nowrap; + border: none; + margin: 0; +} +ROLLOVER_SPEC a:hover { + background-position: 0 -IMG_HEIGHT_2px; +} +ROLLOVER_SPEC li { + display: inline; + padding: 0; + margin: 0; + HOR_OR_VER; +} diff --git a/emacs.d/nxhtml/etc/uts39/idnchars.txt b/emacs.d/nxhtml/etc/uts39/idnchars.txt new file mode 100644 index 0000000..369f8f8 --- /dev/null +++ b/emacs.d/nxhtml/etc/uts39/idnchars.txt @@ -0,0 +1,894 @@ +# Recommended Identifier Profiles for IDN +# File: idnchars.txt +# Version: 2.0 +# Generated: 2006-08-15, 04:35:10 GMT +# Checkin: $Revision: 1.11 $ +# +# For documentation and usage, see http://www.unicode.org/reports/tr39/ +# +# Allowed as output characters + +002D ; output # (-) HYPHEN-MINUS +0030..0039 ; output # [10] (0..9) DIGIT ZERO..DIGIT NINE +0041..005A ; output # [26] (A..Z) LATIN CAPITAL LETTER A..LATIN CAPITAL LETTER Z +0061..007A ; output # [26] (a..z) LATIN SMALL LETTER A..LATIN SMALL LETTER Z +00B7 ; output # (·) MIDDLE DOT +00E0..00F6 ; output # [23] (à..ö) LATIN SMALL LETTER A WITH GRAVE..LATIN SMALL LETTER O WITH DIAERESIS +00F8..00FF ; output # [8] (ø..ÿ) LATIN SMALL LETTER O WITH STROKE..LATIN SMALL LETTER Y WITH DIAERESIS +0101 ; output # (ā) LATIN SMALL LETTER A WITH MACRON +0103 ; output # (ă) LATIN SMALL LETTER A WITH BREVE +0105 ; output # (ą) LATIN SMALL LETTER A WITH OGONEK +0107 ; output # (ć) LATIN SMALL LETTER C WITH ACUTE +0109 ; output # (ĉ) LATIN SMALL LETTER C WITH CIRCUMFLEX +010B ; output # (ċ) LATIN SMALL LETTER C WITH DOT ABOVE +010D ; output # (č) LATIN SMALL LETTER C WITH CARON +010F ; output # (ď) LATIN SMALL LETTER D WITH CARON +0111 ; output # (đ) LATIN SMALL LETTER D WITH STROKE +0113 ; output # (ē) LATIN SMALL LETTER E WITH MACRON +0115 ; output # (ĕ) LATIN SMALL LETTER E WITH BREVE +0117 ; output # (ė) LATIN SMALL LETTER E WITH DOT ABOVE +0119 ; output # (ę) LATIN SMALL LETTER E WITH OGONEK +011B ; output # (ě) LATIN SMALL LETTER E WITH CARON +011D ; output # (ĝ) LATIN SMALL LETTER G WITH CIRCUMFLEX +011F ; output # (ğ) LATIN SMALL LETTER G WITH BREVE +0121 ; output # (ġ) LATIN SMALL LETTER G WITH DOT ABOVE +0123 ; output # (ģ) LATIN SMALL LETTER G WITH CEDILLA +0125 ; output # (ĥ) LATIN SMALL LETTER H WITH CIRCUMFLEX +0127 ; output # (ħ) LATIN SMALL LETTER H WITH STROKE +0129 ; output # (ĩ) LATIN SMALL LETTER I WITH TILDE +012B ; output # (ī) LATIN SMALL LETTER I WITH MACRON +012D ; output # (ĭ) LATIN SMALL LETTER I WITH BREVE +012F ; output # (į) LATIN SMALL LETTER I WITH OGONEK +0131 ; output # (ı) LATIN SMALL LETTER DOTLESS I +0135 ; output # (ĵ) LATIN SMALL LETTER J WITH CIRCUMFLEX +0137..0138 ; output # [2] (ķ..ĸ) LATIN SMALL LETTER K WITH CEDILLA..LATIN SMALL LETTER KRA +013A ; output # (ĺ) LATIN SMALL LETTER L WITH ACUTE +013C ; output # (ļ) LATIN SMALL LETTER L WITH CEDILLA +013E ; output # (ľ) LATIN SMALL LETTER L WITH CARON +0142 ; output # (ł) LATIN SMALL LETTER L WITH STROKE +0144 ; output # (ń) LATIN SMALL LETTER N WITH ACUTE +0146 ; output # (ņ) LATIN SMALL LETTER N WITH CEDILLA +0148 ; output # (ň) LATIN SMALL LETTER N WITH CARON +014B ; output # (ŋ) LATIN SMALL LETTER ENG +014D ; output # (ō) LATIN SMALL LETTER O WITH MACRON +014F ; output # (ŏ) LATIN SMALL LETTER O WITH BREVE +0151 ; output # (ő) LATIN SMALL LETTER O WITH DOUBLE ACUTE +0153 ; output # (œ) LATIN SMALL LIGATURE OE +0155 ; output # (ŕ) LATIN SMALL LETTER R WITH ACUTE +0157 ; output # (ŗ) LATIN SMALL LETTER R WITH CEDILLA +0159 ; output # (ř) LATIN SMALL LETTER R WITH CARON +015B ; output # (ś) LATIN SMALL LETTER S WITH ACUTE +015D ; output # (ŝ) LATIN SMALL LETTER S WITH CIRCUMFLEX +015F ; output # (ş) LATIN SMALL LETTER S WITH CEDILLA +0161 ; output # (š) LATIN SMALL LETTER S WITH CARON +0163 ; output # (ţ) LATIN SMALL LETTER T WITH CEDILLA +0165 ; output # (ť) LATIN SMALL LETTER T WITH CARON +0167 ; output # (ŧ) LATIN SMALL LETTER T WITH STROKE +0169 ; output # (ũ) LATIN SMALL LETTER U WITH TILDE +016B ; output # (ū) LATIN SMALL LETTER U WITH MACRON +016D ; output # (ŭ) LATIN SMALL LETTER U WITH BREVE +016F ; output # (ů) LATIN SMALL LETTER U WITH RING ABOVE +0171 ; output # (ű) LATIN SMALL LETTER U WITH DOUBLE ACUTE +0173 ; output # (ų) LATIN SMALL LETTER U WITH OGONEK +0175 ; output # (ŵ) LATIN SMALL LETTER W WITH CIRCUMFLEX +0177 ; output # (ŷ) LATIN SMALL LETTER Y WITH CIRCUMFLEX +017A ; output # (ź) LATIN SMALL LETTER Z WITH ACUTE +017C ; output # (ż) LATIN SMALL LETTER Z WITH DOT ABOVE +017E ; output # (ž) LATIN SMALL LETTER Z WITH CARON +0183 ; output # (ƃ) LATIN SMALL LETTER B WITH TOPBAR +0185 ; output # (ƅ) LATIN SMALL LETTER TONE SIX +0188 ; output # (ƈ) LATIN SMALL LETTER C WITH HOOK +018C ; output # (ƌ) LATIN SMALL LETTER D WITH TOPBAR +0192 ; output # (ƒ) LATIN SMALL LETTER F WITH HOOK +0195 ; output # (ƕ) LATIN SMALL LETTER HV +0199..019B ; output # [3] (ƙ..ƛ) LATIN SMALL LETTER K WITH HOOK..LATIN SMALL LETTER LAMBDA WITH STROKE +019E ; output # (ƞ) LATIN SMALL LETTER N WITH LONG RIGHT LEG +01A1 ; output # (ơ) LATIN SMALL LETTER O WITH HORN +01A3 ; output # (ƣ) LATIN SMALL LETTER OI +01A5 ; output # (ƥ) LATIN SMALL LETTER P WITH HOOK +01A8 ; output # (ƨ) LATIN SMALL LETTER TONE TWO +01AD ; output # (ƭ) LATIN SMALL LETTER T WITH HOOK +01B0 ; output # (ư) LATIN SMALL LETTER U WITH HORN +01B4 ; output # (ƴ) LATIN SMALL LETTER Y WITH HOOK +01B6 ; output # (ƶ) LATIN SMALL LETTER Z WITH STROKE +01BD ; output # (ƽ) LATIN SMALL LETTER TONE FIVE +01CE ; output # (ǎ) LATIN SMALL LETTER A WITH CARON +01D0 ; output # (ǐ) LATIN SMALL LETTER I WITH CARON +01D2 ; output # (ǒ) LATIN SMALL LETTER O WITH CARON +01D4 ; output # (ǔ) LATIN SMALL LETTER U WITH CARON +01D6 ; output # (ǖ) LATIN SMALL LETTER U WITH DIAERESIS AND MACRON +01D8 ; output # (ǘ) LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE +01DA ; output # (ǚ) LATIN SMALL LETTER U WITH DIAERESIS AND CARON +01DC..01DD ; output # [2] (ǜ..ǝ) LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE..LATIN SMALL LETTER TURNED E +01DF ; output # (ǟ) LATIN SMALL LETTER A WITH DIAERESIS AND MACRON +01E1 ; output # (ǡ) LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON +01E3 ; output # (ǣ) LATIN SMALL LETTER AE WITH MACRON +01E5 ; output # (ǥ) LATIN SMALL LETTER G WITH STROKE +01E7 ; output # (ǧ) LATIN SMALL LETTER G WITH CARON +01E9 ; output # (ǩ) LATIN SMALL LETTER K WITH CARON +01EB ; output # (ǫ) LATIN SMALL LETTER O WITH OGONEK +01ED ; output # (ǭ) LATIN SMALL LETTER O WITH OGONEK AND MACRON +01EF..01F0 ; output # [2] (ǯ..ǰ) LATIN SMALL LETTER EZH WITH CARON..LATIN SMALL LETTER J WITH CARON +01F5 ; output # (ǵ) LATIN SMALL LETTER G WITH ACUTE +01F9 ; output # (ǹ) LATIN SMALL LETTER N WITH GRAVE +01FB ; output # (ǻ) LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE +01FD ; output # (ǽ) LATIN SMALL LETTER AE WITH ACUTE +01FF ; output # (ǿ) LATIN SMALL LETTER O WITH STROKE AND ACUTE +0201 ; output # (ȁ) LATIN SMALL LETTER A WITH DOUBLE GRAVE +0203 ; output # (ȃ) LATIN SMALL LETTER A WITH INVERTED BREVE +0205 ; output # (ȅ) LATIN SMALL LETTER E WITH DOUBLE GRAVE +0207 ; output # (ȇ) LATIN SMALL LETTER E WITH INVERTED BREVE +0209 ; output # (ȉ) LATIN SMALL LETTER I WITH DOUBLE GRAVE +020B ; output # (ȋ) LATIN SMALL LETTER I WITH INVERTED BREVE +020D ; output # (ȍ) LATIN SMALL LETTER O WITH DOUBLE GRAVE +020F ; output # (ȏ) LATIN SMALL LETTER O WITH INVERTED BREVE +0211 ; output # (ȑ) LATIN SMALL LETTER R WITH DOUBLE GRAVE +0213 ; output # (ȓ) LATIN SMALL LETTER R WITH INVERTED BREVE +0215 ; output # (ȕ) LATIN SMALL LETTER U WITH DOUBLE GRAVE +0217 ; output # (ȗ) LATIN SMALL LETTER U WITH INVERTED BREVE +0219 ; output # (ș) LATIN SMALL LETTER S WITH COMMA BELOW +021B ; output # (ț) LATIN SMALL LETTER T WITH COMMA BELOW +021F ; output # (ȟ) LATIN SMALL LETTER H WITH CARON +0223 ; output # (ȣ) LATIN SMALL LETTER OU +0225 ; output # (ȥ) LATIN SMALL LETTER Z WITH HOOK +0227 ; output # (ȧ) LATIN SMALL LETTER A WITH DOT ABOVE +0229 ; output # (ȩ) LATIN SMALL LETTER E WITH CEDILLA +022B ; output # (ȫ) LATIN SMALL LETTER O WITH DIAERESIS AND MACRON +022D ; output # (ȭ) LATIN SMALL LETTER O WITH TILDE AND MACRON +022F ; output # (ȯ) LATIN SMALL LETTER O WITH DOT ABOVE +0231 ; output # (ȱ) LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON +0233 ; output # (ȳ) LATIN SMALL LETTER Y WITH MACRON +0253..0254 ; output # [2] (ɓ..ɔ) LATIN SMALL LETTER B WITH HOOK..LATIN SMALL LETTER OPEN O +0256..0257 ; output # [2] (ɖ..ɗ) LATIN SMALL LETTER D WITH TAIL..LATIN SMALL LETTER D WITH HOOK +0259 ; output # (ə) LATIN SMALL LETTER SCHWA +025B ; output # (ɛ) LATIN SMALL LETTER OPEN E +0260 ; output # (ɠ) LATIN SMALL LETTER G WITH HOOK +0263 ; output # (ɣ) LATIN SMALL LETTER GAMMA +0268..0269 ; output # [2] (ɨ..ɩ) LATIN SMALL LETTER I WITH STROKE..LATIN SMALL LETTER IOTA +026F ; output # (ɯ) LATIN SMALL LETTER TURNED M +0272 ; output # (ɲ) LATIN SMALL LETTER N WITH LEFT HOOK +0275 ; output # (ɵ) LATIN SMALL LETTER BARRED O +0280 ; output # (ʀ) LATIN LETTER SMALL CAPITAL R +0283 ; output # (ʃ) LATIN SMALL LETTER ESH +0288 ; output # (ʈ) LATIN SMALL LETTER T WITH RETROFLEX HOOK +028A..028B ; output # [2] (ʊ..ʋ) LATIN SMALL LETTER UPSILON..LATIN SMALL LETTER V WITH HOOK +0292 ; output # (ʒ) LATIN SMALL LETTER EZH +0294 ; output # (ʔ) LATIN LETTER GLOTTAL STOP +0300..033F ; output # [64] (̀..̿) COMBINING GRAVE ACCENT..COMBINING DOUBLE OVERLINE +0342 ; output # (͂) COMBINING GREEK PERISPOMENI +0346..034E ; output # [9] (͆..͎) COMBINING BRIDGE ABOVE..COMBINING UPWARDS ARROW BELOW +0360..036F ; output # [16] (͠..ͯ) COMBINING DOUBLE TILDE..COMBINING LATIN SMALL LETTER X +0390 ; output # (ΐ) GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS +03AC..03C1 ; output # [22] (ά..ρ) GREEK SMALL LETTER ALPHA WITH TONOS..GREEK SMALL LETTER RHO +03C3..03CE ; output # [12] (σ..ώ) GREEK SMALL LETTER SIGMA..GREEK SMALL LETTER OMEGA WITH TONOS +0430..045F ; output # [48] (а..џ) CYRILLIC SMALL LETTER A..CYRILLIC SMALL LETTER DZHE +0461 ; output # (ѡ) CYRILLIC SMALL LETTER OMEGA +0463 ; output # (ѣ) CYRILLIC SMALL LETTER YAT +0465 ; output # (ѥ) CYRILLIC SMALL LETTER IOTIFIED E +0467 ; output # (ѧ) CYRILLIC SMALL LETTER LITTLE YUS +0469 ; output # (ѩ) CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS +046B ; output # (ѫ) CYRILLIC SMALL LETTER BIG YUS +046D ; output # (ѭ) CYRILLIC SMALL LETTER IOTIFIED BIG YUS +046F ; output # (ѯ) CYRILLIC SMALL LETTER KSI +0471 ; output # (ѱ) CYRILLIC SMALL LETTER PSI +0473 ; output # (ѳ) CYRILLIC SMALL LETTER FITA +0475 ; output # (ѵ) CYRILLIC SMALL LETTER IZHITSA +0477 ; output # (ѷ) CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT +0479 ; output # (ѹ) CYRILLIC SMALL LETTER UK +047B ; output # (ѻ) CYRILLIC SMALL LETTER ROUND OMEGA +047D ; output # (ѽ) CYRILLIC SMALL LETTER OMEGA WITH TITLO +047F ; output # (ѿ) CYRILLIC SMALL LETTER OT +0481 ; output # (ҁ) CYRILLIC SMALL LETTER KOPPA +048B ; output # (ҋ) CYRILLIC SMALL LETTER SHORT I WITH TAIL +048D ; output # (ҍ) CYRILLIC SMALL LETTER SEMISOFT SIGN +048F ; output # (ҏ) CYRILLIC SMALL LETTER ER WITH TICK +0491 ; output # (ґ) CYRILLIC SMALL LETTER GHE WITH UPTURN +0493 ; output # (ғ) CYRILLIC SMALL LETTER GHE WITH STROKE +0495 ; output # (ҕ) CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK +0497 ; output # (җ) CYRILLIC SMALL LETTER ZHE WITH DESCENDER +0499 ; output # (ҙ) CYRILLIC SMALL LETTER ZE WITH DESCENDER +049B ; output # (қ) CYRILLIC SMALL LETTER KA WITH DESCENDER +049D ; output # (ҝ) CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE +049F ; output # (ҟ) CYRILLIC SMALL LETTER KA WITH STROKE +04A1 ; output # (ҡ) CYRILLIC SMALL LETTER BASHKIR KA +04A3 ; output # (ң) CYRILLIC SMALL LETTER EN WITH DESCENDER +04A5 ; output # (ҥ) CYRILLIC SMALL LIGATURE EN GHE +04A7 ; output # (ҧ) CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK +04A9 ; output # (ҩ) CYRILLIC SMALL LETTER ABKHASIAN HA +04AB ; output # (ҫ) CYRILLIC SMALL LETTER ES WITH DESCENDER +04AD ; output # (ҭ) CYRILLIC SMALL LETTER TE WITH DESCENDER +04AF ; output # (ү) CYRILLIC SMALL LETTER STRAIGHT U +04B1 ; output # (ұ) CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE +04B3 ; output # (ҳ) CYRILLIC SMALL LETTER HA WITH DESCENDER +04B5 ; output # (ҵ) CYRILLIC SMALL LIGATURE TE TSE +04B7 ; output # (ҷ) CYRILLIC SMALL LETTER CHE WITH DESCENDER +04B9 ; output # (ҹ) CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE +04BB ; output # (һ) CYRILLIC SMALL LETTER SHHA +04BD ; output # (ҽ) CYRILLIC SMALL LETTER ABKHASIAN CHE +04BF..04C0 ; output # [2] (ҿ..Ӏ) CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER..CYRILLIC LETTER PALOCHKA +04C2 ; output # (ӂ) CYRILLIC SMALL LETTER ZHE WITH BREVE +04C4 ; output # (ӄ) CYRILLIC SMALL LETTER KA WITH HOOK +04C6 ; output # (ӆ) CYRILLIC SMALL LETTER EL WITH TAIL +04C8 ; output # (ӈ) CYRILLIC SMALL LETTER EN WITH HOOK +04CA ; output # (ӊ) CYRILLIC SMALL LETTER EN WITH TAIL +04CC ; output # (ӌ) CYRILLIC SMALL LETTER KHAKASSIAN CHE +04CE ; output # (ӎ) CYRILLIC SMALL LETTER EM WITH TAIL +04D1 ; output # (ӑ) CYRILLIC SMALL LETTER A WITH BREVE +04D3 ; output # (ӓ) CYRILLIC SMALL LETTER A WITH DIAERESIS +04D5 ; output # (ӕ) CYRILLIC SMALL LIGATURE A IE +04D7 ; output # (ӗ) CYRILLIC SMALL LETTER IE WITH BREVE +04D9 ; output # (ә) CYRILLIC SMALL LETTER SCHWA +04DB ; output # (ӛ) CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS +04DD ; output # (ӝ) CYRILLIC SMALL LETTER ZHE WITH DIAERESIS +04DF ; output # (ӟ) CYRILLIC SMALL LETTER ZE WITH DIAERESIS +04E1 ; output # (ӡ) CYRILLIC SMALL LETTER ABKHASIAN DZE +04E3 ; output # (ӣ) CYRILLIC SMALL LETTER I WITH MACRON +04E5 ; output # (ӥ) CYRILLIC SMALL LETTER I WITH DIAERESIS +04E7 ; output # (ӧ) CYRILLIC SMALL LETTER O WITH DIAERESIS +04E9 ; output # (ө) CYRILLIC SMALL LETTER BARRED O +04EB ; output # (ӫ) CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS +04ED ; output # (ӭ) CYRILLIC SMALL LETTER E WITH DIAERESIS +04EF ; output # (ӯ) CYRILLIC SMALL LETTER U WITH MACRON +04F1 ; output # (ӱ) CYRILLIC SMALL LETTER U WITH DIAERESIS +04F3 ; output # (ӳ) CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE +04F5 ; output # (ӵ) CYRILLIC SMALL LETTER CHE WITH DIAERESIS +04F9 ; output # (ӹ) CYRILLIC SMALL LETTER YERU WITH DIAERESIS +0501 ; output # (ԁ) CYRILLIC SMALL LETTER KOMI DE +0503 ; output # (ԃ) CYRILLIC SMALL LETTER KOMI DJE +0505 ; output # (ԅ) CYRILLIC SMALL LETTER KOMI ZJE +0507 ; output # (ԇ) CYRILLIC SMALL LETTER KOMI DZJE +0509 ; output # (ԉ) CYRILLIC SMALL LETTER KOMI LJE +050B ; output # (ԋ) CYRILLIC SMALL LETTER KOMI NJE +050D ; output # (ԍ) CYRILLIC SMALL LETTER KOMI SJE +050F ; output # (ԏ) CYRILLIC SMALL LETTER KOMI TJE +0561..0586 ; output # [38] (ա..ֆ) ARMENIAN SMALL LETTER AYB..ARMENIAN SMALL LETTER FEH +0591..05A1 ; output # [17] (֑..֡) HEBREW ACCENT ETNAHTA..HEBREW ACCENT PAZER +05A3..05B9 ; output # [23] (֣..ֹ) HEBREW ACCENT MUNAH..HEBREW POINT HOLAM +05BB..05BD ; output # [3] (ֻ..ֽ) HEBREW POINT QUBUTS..HEBREW POINT METEG +05BF ; output # (ֿ) HEBREW POINT RAFE +05C1..05C2 ; output # [2] (ׁ..ׂ) HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT +05C4 ; output # (ׄ) HEBREW MARK UPPER DOT +05D0..05EA ; output # [27] (א..ת) HEBREW LETTER ALEF..HEBREW LETTER TAV +05F0..05F2 ; output # [3] (װ..ײ) HEBREW LIGATURE YIDDISH DOUBLE VAV..HEBREW LIGATURE YIDDISH DOUBLE YOD +0621..063A ; output # [26] (ء..غ) ARABIC LETTER HAMZA..ARABIC LETTER GHAIN +0641..0655 ; output # [21] (ف..ٕ) ARABIC LETTER FEH..ARABIC HAMZA BELOW +0660..0669 ; output # [10] (٠..٩) ARABIC-INDIC DIGIT ZERO..ARABIC-INDIC DIGIT NINE +0670..0674 ; output # [5] (ٰ..ٴ) ARABIC LETTER SUPERSCRIPT ALEF..ARABIC LETTER HIGH HAMZA +0679..068D ; output # [21] (ٹ..ڍ) ARABIC LETTER TTEH..ARABIC LETTER DDAHAL +068F..06D3 ; output # [69] (ڏ..ۓ) ARABIC LETTER DAL WITH THREE DOTS ABOVE DOWNWARDS..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE +06D5..06DC ; output # [8] (ە..ۜ) ARABIC LETTER AE..ARABIC SMALL HIGH SEEN +06DF..06E8 ; output # [10] (۟..ۨ) ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH NOON +06EA..06ED ; output # [4] (۪..ۭ) ARABIC EMPTY CENTRE LOW STOP..ARABIC SMALL LOW MEEM +06F0..06FC ; output # [13] (۰..ۼ) EXTENDED ARABIC-INDIC DIGIT ZERO..ARABIC LETTER GHAIN WITH DOT BELOW +0710..072C ; output # [29] (ܐ..ܬ) SYRIAC LETTER ALAPH..SYRIAC LETTER TAW +0730..073F ; output # [16] (ܰ..ܿ) SYRIAC PTHAHA ABOVE..SYRIAC RWAHA +0780..07B1 ; output # [50] (ހ..ޱ) THAANA LETTER HAA..THAANA LETTER NAA +0901..0903 ; output # [3] (ँ..ः) DEVANAGARI SIGN CANDRABINDU..DEVANAGARI SIGN VISARGA +0905..0939 ; output # [53] (अ..ह) DEVANAGARI LETTER A..DEVANAGARI LETTER HA +093C..094D ; output # [18] (़..्) DEVANAGARI SIGN NUKTA..DEVANAGARI SIGN VIRAMA +0950..0954 ; output # [5] (ॐ..॔) DEVANAGARI OM..DEVANAGARI ACUTE ACCENT +0960..0963 ; output # [4] (ॠ..ॣ) DEVANAGARI LETTER VOCALIC RR..DEVANAGARI VOWEL SIGN VOCALIC LL +0966..096F ; output # [10] (०..९) DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT NINE +0981..0983 ; output # [3] (ঁ..ঃ) BENGALI SIGN CANDRABINDU..BENGALI SIGN VISARGA +0985..098C ; output # [8] (অ..ঌ) BENGALI LETTER A..BENGALI LETTER VOCALIC L +098F..0990 ; output # [2] (এ..ঐ) BENGALI LETTER E..BENGALI LETTER AI +0993..09A8 ; output # [22] (ও..ন) BENGALI LETTER O..BENGALI LETTER NA +09AA..09B0 ; output # [7] (প..র) BENGALI LETTER PA..BENGALI LETTER RA +09B2 ; output # (ল) BENGALI LETTER LA +09B6..09B9 ; output # [4] (শ..হ) BENGALI LETTER SHA..BENGALI LETTER HA +09BC ; output # (়) BENGALI SIGN NUKTA +09BE..09C4 ; output # [7] (া..ৄ) BENGALI VOWEL SIGN AA..BENGALI VOWEL SIGN VOCALIC RR +09C7..09C8 ; output # [2] (ে..ৈ) BENGALI VOWEL SIGN E..BENGALI VOWEL SIGN AI +09CB..09CD ; output # [3] (ো..্) BENGALI VOWEL SIGN O..BENGALI SIGN VIRAMA +09D7 ; output # (ৗ) BENGALI AU LENGTH MARK +09E0..09E3 ; output # [4] (ৠ..ৣ) BENGALI LETTER VOCALIC RR..BENGALI VOWEL SIGN VOCALIC LL +09E6..09F1 ; output # [12] (০..ৱ) BENGALI DIGIT ZERO..BENGALI LETTER RA WITH LOWER DIAGONAL +0A02 ; output # (ਂ) GURMUKHI SIGN BINDI +0A05..0A0A ; output # [6] (ਅ..ਊ) GURMUKHI LETTER A..GURMUKHI LETTER UU +0A0F..0A10 ; output # [2] (ਏ..ਐ) GURMUKHI LETTER EE..GURMUKHI LETTER AI +0A13..0A28 ; output # [22] (ਓ..ਨ) GURMUKHI LETTER OO..GURMUKHI LETTER NA +0A2A..0A30 ; output # [7] (ਪ..ਰ) GURMUKHI LETTER PA..GURMUKHI LETTER RA +0A32 ; output # (ਲ) GURMUKHI LETTER LA +0A35 ; output # (ਵ) GURMUKHI LETTER VA +0A38..0A39 ; output # [2] (ਸ..ਹ) GURMUKHI LETTER SA..GURMUKHI LETTER HA +0A3C ; output # (਼) GURMUKHI SIGN NUKTA +0A3E..0A42 ; output # [5] (ਾ..ੂ) GURMUKHI VOWEL SIGN AA..GURMUKHI VOWEL SIGN UU +0A47..0A48 ; output # [2] (ੇ..ੈ) GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI +0A4B..0A4D ; output # [3] (ੋ..੍) GURMUKHI VOWEL SIGN OO..GURMUKHI SIGN VIRAMA +0A5C ; output # (ੜ) GURMUKHI LETTER RRA +0A66..0A74 ; output # [15] (੦..ੴ) GURMUKHI DIGIT ZERO..GURMUKHI EK ONKAR +0A81..0A83 ; output # [3] (ઁ..ઃ) GUJARATI SIGN CANDRABINDU..GUJARATI SIGN VISARGA +0A85..0A8B ; output # [7] (અ..ઋ) GUJARATI LETTER A..GUJARATI LETTER VOCALIC R +0A8D ; output # (ઍ) GUJARATI VOWEL CANDRA E +0A8F..0A91 ; output # [3] (એ..ઑ) GUJARATI LETTER E..GUJARATI VOWEL CANDRA O +0A93..0AA8 ; output # [22] (ઓ..ન) GUJARATI LETTER O..GUJARATI LETTER NA +0AAA..0AB0 ; output # [7] (પ..ર) GUJARATI LETTER PA..GUJARATI LETTER RA +0AB2..0AB3 ; output # [2] (લ..ળ) GUJARATI LETTER LA..GUJARATI LETTER LLA +0AB5..0AB9 ; output # [5] (વ..હ) GUJARATI LETTER VA..GUJARATI LETTER HA +0ABC..0AC5 ; output # [10] (઼..ૅ) GUJARATI SIGN NUKTA..GUJARATI VOWEL SIGN CANDRA E +0AC7..0AC9 ; output # [3] (ે..ૉ) GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN CANDRA O +0ACB..0ACD ; output # [3] (ો..્) GUJARATI VOWEL SIGN O..GUJARATI SIGN VIRAMA +0AD0 ; output # (ૐ) GUJARATI OM +0AE0 ; output # (ૠ) GUJARATI LETTER VOCALIC RR +0AE6..0AEF ; output # [10] (૦..૯) GUJARATI DIGIT ZERO..GUJARATI DIGIT NINE +0B01..0B03 ; output # [3] (ଁ..ଃ) ORIYA SIGN CANDRABINDU..ORIYA SIGN VISARGA +0B05..0B0C ; output # [8] (ଅ..ଌ) ORIYA LETTER A..ORIYA LETTER VOCALIC L +0B0F..0B10 ; output # [2] (ଏ..ଐ) ORIYA LETTER E..ORIYA LETTER AI +0B13..0B28 ; output # [22] (ଓ..ନ) ORIYA LETTER O..ORIYA LETTER NA +0B2A..0B30 ; output # [7] (ପ..ର) ORIYA LETTER PA..ORIYA LETTER RA +0B32..0B33 ; output # [2] (ଲ..ଳ) ORIYA LETTER LA..ORIYA LETTER LLA +0B36..0B39 ; output # [4] (ଶ..ହ) ORIYA LETTER SHA..ORIYA LETTER HA +0B3C..0B43 ; output # [8] (଼..ୃ) ORIYA SIGN NUKTA..ORIYA VOWEL SIGN VOCALIC R +0B47..0B48 ; output # [2] (େ..ୈ) ORIYA VOWEL SIGN E..ORIYA VOWEL SIGN AI +0B4B..0B4D ; output # [3] (ୋ..୍) ORIYA VOWEL SIGN O..ORIYA SIGN VIRAMA +0B56..0B57 ; output # [2] (ୖ..ୗ) ORIYA AI LENGTH MARK..ORIYA AU LENGTH MARK +0B5F..0B61 ; output # [3] (ୟ..ୡ) ORIYA LETTER YYA..ORIYA LETTER VOCALIC LL +0B66..0B6F ; output # [10] (୦..୯) ORIYA DIGIT ZERO..ORIYA DIGIT NINE +0B82..0B83 ; output # [2] (ஂ..ஃ) TAMIL SIGN ANUSVARA..TAMIL SIGN VISARGA +0B85..0B8A ; output # [6] (அ..ஊ) TAMIL LETTER A..TAMIL LETTER UU +0B8E..0B90 ; output # [3] (எ..ஐ) TAMIL LETTER E..TAMIL LETTER AI +0B92..0B95 ; output # [4] (ஒ..க) TAMIL LETTER O..TAMIL LETTER KA +0B99..0B9A ; output # [2] (ங..ச) TAMIL LETTER NGA..TAMIL LETTER CA +0B9C ; output # (ஜ) TAMIL LETTER JA +0B9E..0B9F ; output # [2] (ஞ..ட) TAMIL LETTER NYA..TAMIL LETTER TTA +0BA3..0BA4 ; output # [2] (ண..த) TAMIL LETTER NNA..TAMIL LETTER TA +0BA8..0BAA ; output # [3] (ந..ப) TAMIL LETTER NA..TAMIL LETTER PA +0BAE..0BB5 ; output # [8] (ம..வ) TAMIL LETTER MA..TAMIL LETTER VA +0BB7..0BB9 ; output # [3] (ஷ..ஹ) TAMIL LETTER SSA..TAMIL LETTER HA +0BBE..0BC2 ; output # [5] (ா..ூ) TAMIL VOWEL SIGN AA..TAMIL VOWEL SIGN UU +0BC6..0BC8 ; output # [3] (ெ..ை) TAMIL VOWEL SIGN E..TAMIL VOWEL SIGN AI +0BCA..0BCD ; output # [4] (ொ..்) TAMIL VOWEL SIGN O..TAMIL SIGN VIRAMA +0BD7 ; output # (ௗ) TAMIL AU LENGTH MARK +0BE7..0BEF ; output # [9] (௧..௯) TAMIL DIGIT ONE..TAMIL DIGIT NINE +0C01..0C03 ; output # [3] (ఁ..ః) TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA +0C05..0C0C ; output # [8] (అ..ఌ) TELUGU LETTER A..TELUGU LETTER VOCALIC L +0C0E..0C10 ; output # [3] (ఎ..ఐ) TELUGU LETTER E..TELUGU LETTER AI +0C12..0C28 ; output # [23] (ఒ..న) TELUGU LETTER O..TELUGU LETTER NA +0C2A..0C33 ; output # [10] (ప..ళ) TELUGU LETTER PA..TELUGU LETTER LLA +0C35..0C39 ; output # [5] (వ..హ) TELUGU LETTER VA..TELUGU LETTER HA +0C3E..0C44 ; output # [7] (ా..ౄ) TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN VOCALIC RR +0C46..0C48 ; output # [3] (ె..ై) TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI +0C4A..0C4D ; output # [4] (ొ..్) TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA +0C55..0C56 ; output # [2] (ౕ..ౖ) TELUGU LENGTH MARK..TELUGU AI LENGTH MARK +0C60..0C61 ; output # [2] (ౠ..ౡ) TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL +0C66..0C6F ; output # [10] (౦..౯) TELUGU DIGIT ZERO..TELUGU DIGIT NINE +0C82..0C83 ; output # [2] (ಂ..ಃ) KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA +0C85..0C8C ; output # [8] (ಅ..ಌ) KANNADA LETTER A..KANNADA LETTER VOCALIC L +0C8E..0C90 ; output # [3] (ಎ..ಐ) KANNADA LETTER E..KANNADA LETTER AI +0C92..0CA8 ; output # [23] (ಒ..ನ) KANNADA LETTER O..KANNADA LETTER NA +0CAA..0CB3 ; output # [10] (ಪ..ಳ) KANNADA LETTER PA..KANNADA LETTER LLA +0CB5..0CB9 ; output # [5] (ವ..ಹ) KANNADA LETTER VA..KANNADA LETTER HA +0CBE..0CC4 ; output # [7] (ಾ..ೄ) KANNADA VOWEL SIGN AA..KANNADA VOWEL SIGN VOCALIC RR +0CC6..0CC8 ; output # [3] (ೆ..ೈ) KANNADA VOWEL SIGN E..KANNADA VOWEL SIGN AI +0CCA..0CCD ; output # [4] (ೊ..್) KANNADA VOWEL SIGN O..KANNADA SIGN VIRAMA +0CD5..0CD6 ; output # [2] (ೕ..ೖ) KANNADA LENGTH MARK..KANNADA AI LENGTH MARK +0CE0..0CE1 ; output # [2] (ೠ..ೡ) KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL +0CE6..0CEF ; output # [10] (೦..೯) KANNADA DIGIT ZERO..KANNADA DIGIT NINE +0D02..0D03 ; output # [2] (ം..ഃ) MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA +0D05..0D0C ; output # [8] (അ..ഌ) MALAYALAM LETTER A..MALAYALAM LETTER VOCALIC L +0D0E..0D10 ; output # [3] (എ..ഐ) MALAYALAM LETTER E..MALAYALAM LETTER AI +0D12..0D28 ; output # [23] (ഒ..ന) MALAYALAM LETTER O..MALAYALAM LETTER NA +0D2A..0D39 ; output # [16] (പ..ഹ) MALAYALAM LETTER PA..MALAYALAM LETTER HA +0D3E..0D43 ; output # [6] (ാ..ൃ) MALAYALAM VOWEL SIGN AA..MALAYALAM VOWEL SIGN VOCALIC R +0D46..0D48 ; output # [3] (െ..ൈ) MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI +0D4A..0D4D ; output # [4] (ൊ..്) MALAYALAM VOWEL SIGN O..MALAYALAM SIGN VIRAMA +0D57 ; output # (ൗ) MALAYALAM AU LENGTH MARK +0D60..0D61 ; output # [2] (ൠ..ൡ) MALAYALAM LETTER VOCALIC RR..MALAYALAM LETTER VOCALIC LL +0D66..0D6F ; output # [10] (൦..൯) MALAYALAM DIGIT ZERO..MALAYALAM DIGIT NINE +0D82..0D83 ; output # [2] (ං..ඃ) SINHALA SIGN ANUSVARAYA..SINHALA SIGN VISARGAYA +0D85..0D96 ; output # [18] (අ..ඖ) SINHALA LETTER AYANNA..SINHALA LETTER AUYANNA +0D9A..0DB1 ; output # [24] (ක..න) SINHALA LETTER ALPAPRAANA KAYANNA..SINHALA LETTER DANTAJA NAYANNA +0DB3..0DBB ; output # [9] (ඳ..ර) SINHALA LETTER SANYAKA DAYANNA..SINHALA LETTER RAYANNA +0DBD ; output # (ල) SINHALA LETTER DANTAJA LAYANNA +0DC0..0DC6 ; output # [7] (ව..ෆ) SINHALA LETTER VAYANNA..SINHALA LETTER FAYANNA +0DCA ; output # (්) SINHALA SIGN AL-LAKUNA +0DCF..0DD4 ; output # [6] (ා..ු) SINHALA VOWEL SIGN AELA-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA +0DD6 ; output # (ූ) SINHALA VOWEL SIGN DIGA PAA-PILLA +0DD8..0DDF ; output # [8] (ෘ..ෟ) SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN GAYANUKITTA +0DF2..0DF3 ; output # [2] (ෲ..ෳ) SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA +0E01..0E32 ; output # [50] (ก..า) THAI CHARACTER KO KAI..THAI CHARACTER SARA AA +0E34..0E3A ; output # [7] (ิ..ฺ) THAI CHARACTER SARA I..THAI CHARACTER PHINTHU +0E40..0E4E ; output # [15] (เ..๎) THAI CHARACTER SARA E..THAI CHARACTER YAMAKKAN +0E50..0E59 ; output # [10] (๐..๙) THAI DIGIT ZERO..THAI DIGIT NINE +0E81..0E82 ; output # [2] (ກ..ຂ) LAO LETTER KO..LAO LETTER KHO SUNG +0E84 ; output # (ຄ) LAO LETTER KHO TAM +0E87..0E88 ; output # [2] (ງ..ຈ) LAO LETTER NGO..LAO LETTER CO +0E8A ; output # (ຊ) LAO LETTER SO TAM +0E8D ; output # (ຍ) LAO LETTER NYO +0E94..0E97 ; output # [4] (ດ..ທ) LAO LETTER DO..LAO LETTER THO TAM +0E99..0E9F ; output # [7] (ນ..ຟ) LAO LETTER NO..LAO LETTER FO SUNG +0EA1..0EA3 ; output # [3] (ມ..ຣ) LAO LETTER MO..LAO LETTER LO LING +0EA5 ; output # (ລ) LAO LETTER LO LOOT +0EA7 ; output # (ວ) LAO LETTER WO +0EAA..0EAB ; output # [2] (ສ..ຫ) LAO LETTER SO SUNG..LAO LETTER HO SUNG +0EAD..0EB2 ; output # [6] (ອ..າ) LAO LETTER O..LAO VOWEL SIGN AA +0EB4..0EB9 ; output # [6] (ິ..ູ) LAO VOWEL SIGN I..LAO VOWEL SIGN UU +0EBB..0EBD ; output # [3] (ົ..ຽ) LAO VOWEL SIGN MAI KON..LAO SEMIVOWEL SIGN NYO +0EC0..0EC4 ; output # [5] (ເ..ໄ) LAO VOWEL SIGN E..LAO VOWEL SIGN AI +0EC6 ; output # (ໆ) LAO KO LA +0EC8..0ECD ; output # [6] (່..ໍ) LAO TONE MAI EK..LAO NIGGAHITA +0ED0..0ED9 ; output # [10] (໐..໙) LAO DIGIT ZERO..LAO DIGIT NINE +0F00 ; output # (ༀ) TIBETAN SYLLABLE OM +0F18..0F19 ; output # [2] (༘..༙) TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS +0F20..0F29 ; output # [10] (༠..༩) TIBETAN DIGIT ZERO..TIBETAN DIGIT NINE +0F35 ; output # (༵) TIBETAN MARK NGAS BZUNG NYI ZLA +0F37 ; output # (༷) TIBETAN MARK NGAS BZUNG SGOR RTAGS +0F39 ; output # (༹) TIBETAN MARK TSA -PHRU +0F3E..0F42 ; output # [5] (༾..ག) TIBETAN SIGN YAR TSHES..TIBETAN LETTER GA +0F44..0F47 ; output # [4] (ང..ཇ) TIBETAN LETTER NGA..TIBETAN LETTER JA +0F49..0F4C ; output # [4] (ཉ..ཌ) TIBETAN LETTER NYA..TIBETAN LETTER DDA +0F4E..0F51 ; output # [4] (ཎ..ད) TIBETAN LETTER NNA..TIBETAN LETTER DA +0F53..0F56 ; output # [4] (ན..བ) TIBETAN LETTER NA..TIBETAN LETTER BA +0F58..0F5B ; output # [4] (མ..ཛ) TIBETAN LETTER MA..TIBETAN LETTER DZA +0F5D..0F68 ; output # [12] (ཝ..ཨ) TIBETAN LETTER WA..TIBETAN LETTER A +0F6A ; output # (ཪ) TIBETAN LETTER FIXED-FORM RA +0F71..0F72 ; output # [2] (ཱ..ི) TIBETAN VOWEL SIGN AA..TIBETAN VOWEL SIGN I +0F74 ; output # (ུ) TIBETAN VOWEL SIGN U +0F7A..0F80 ; output # [7] (ེ..ྀ) TIBETAN VOWEL SIGN E..TIBETAN VOWEL SIGN REVERSED I +0F82..0F84 ; output # [3] (ྂ..྄) TIBETAN SIGN NYI ZLA NAA DA..TIBETAN MARK HALANTA +0F86..0F8B ; output # [6] (྆..ྋ) TIBETAN SIGN LCI RTAGS..TIBETAN SIGN GRU MED RGYINGS +0F90..0F92 ; output # [3] (ྐ..ྒ) TIBETAN SUBJOINED LETTER KA..TIBETAN SUBJOINED LETTER GA +0F94..0F97 ; output # [4] (ྔ..ྗ) TIBETAN SUBJOINED LETTER NGA..TIBETAN SUBJOINED LETTER JA +0F99..0F9C ; output # [4] (ྙ..ྜ) TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER DDA +0F9E..0FA1 ; output # [4] (ྞ..ྡ) TIBETAN SUBJOINED LETTER NNA..TIBETAN SUBJOINED LETTER DA +0FA3..0FA6 ; output # [4] (ྣ..ྦ) TIBETAN SUBJOINED LETTER NA..TIBETAN SUBJOINED LETTER BA +0FA8..0FAB ; output # [4] (ྨ..ྫ) TIBETAN SUBJOINED LETTER MA..TIBETAN SUBJOINED LETTER DZA +0FAD..0FB8 ; output # [12] (ྭ..ྸ) TIBETAN SUBJOINED LETTER WA..TIBETAN SUBJOINED LETTER A +0FBA..0FBC ; output # [3] (ྺ..ྼ) TIBETAN SUBJOINED LETTER FIXED-FORM WA..TIBETAN SUBJOINED LETTER FIXED-FORM RA +0FC6 ; output # (࿆) TIBETAN SYMBOL PADMA GDAN +1000..1021 ; output # [34] (က..အ) MYANMAR LETTER KA..MYANMAR LETTER A +1023..1027 ; output # [5] (ဣ..ဧ) MYANMAR LETTER I..MYANMAR LETTER E +1029..102A ; output # [2] (ဩ..ဪ) MYANMAR LETTER O..MYANMAR LETTER AU +102C..1032 ; output # [7] (ာ..ဲ) MYANMAR VOWEL SIGN AA..MYANMAR VOWEL SIGN AI +1036..1039 ; output # [4] (ံ..္) MYANMAR SIGN ANUSVARA..MYANMAR SIGN VIRAMA +1040..1049 ; output # [10] (၀..၉) MYANMAR DIGIT ZERO..MYANMAR DIGIT NINE +1050..1059 ; output # [10] (ၐ..ၙ) MYANMAR LETTER SHA..MYANMAR VOWEL SIGN VOCALIC LL +10A0..10C5 ; output # [38] (Ⴀ..Ⴥ) GEORGIAN CAPITAL LETTER AN..GEORGIAN CAPITAL LETTER HOE +10D0..10F0 ; output # [33] (ა..ჰ) GEORGIAN LETTER AN..GEORGIAN LETTER HAE +10F7..10F8 ; output # [2] (ჷ..ჸ) GEORGIAN LETTER YN..GEORGIAN LETTER ELIFI +1200..1206 ; output # [7] (ሀ..ሆ) ETHIOPIC SYLLABLE HA..ETHIOPIC SYLLABLE HO +1208..1246 ; output # [63] (ለ..ቆ) ETHIOPIC SYLLABLE LA..ETHIOPIC SYLLABLE QO +1248 ; output # (ቈ) ETHIOPIC SYLLABLE QWA +124A..124D ; output # [4] (ቊ..ቍ) ETHIOPIC SYLLABLE QWI..ETHIOPIC SYLLABLE QWE +1250..1256 ; output # [7] (ቐ..ቖ) ETHIOPIC SYLLABLE QHA..ETHIOPIC SYLLABLE QHO +1258 ; output # (ቘ) ETHIOPIC SYLLABLE QHWA +125A..125D ; output # [4] (ቚ..ቝ) ETHIOPIC SYLLABLE QHWI..ETHIOPIC SYLLABLE QHWE +1260..1286 ; output # [39] (በ..ኆ) ETHIOPIC SYLLABLE BA..ETHIOPIC SYLLABLE XO +1288 ; output # (ኈ) ETHIOPIC SYLLABLE XWA +128A..128D ; output # [4] (ኊ..ኍ) ETHIOPIC SYLLABLE XWI..ETHIOPIC SYLLABLE XWE +1290..12AE ; output # [31] (ነ..ኮ) ETHIOPIC SYLLABLE NA..ETHIOPIC SYLLABLE KO +12B0 ; output # (ኰ) ETHIOPIC SYLLABLE KWA +12B2..12B5 ; output # [4] (ኲ..ኵ) ETHIOPIC SYLLABLE KWI..ETHIOPIC SYLLABLE KWE +12B8..12BE ; output # [7] (ኸ..ኾ) ETHIOPIC SYLLABLE KXA..ETHIOPIC SYLLABLE KXO +12C0 ; output # (ዀ) ETHIOPIC SYLLABLE KXWA +12C2..12C5 ; output # [4] (ዂ..ዅ) ETHIOPIC SYLLABLE KXWI..ETHIOPIC SYLLABLE KXWE +12C8..12CE ; output # [7] (ወ..ዎ) ETHIOPIC SYLLABLE WA..ETHIOPIC SYLLABLE WO +12D0..12D6 ; output # [7] (ዐ..ዖ) ETHIOPIC SYLLABLE PHARYNGEAL A..ETHIOPIC SYLLABLE PHARYNGEAL O +12D8..12EE ; output # [23] (ዘ..ዮ) ETHIOPIC SYLLABLE ZA..ETHIOPIC SYLLABLE YO +12F0..130E ; output # [31] (ደ..ጎ) ETHIOPIC SYLLABLE DA..ETHIOPIC SYLLABLE GO +1310 ; output # (ጐ) ETHIOPIC SYLLABLE GWA +1312..1315 ; output # [4] (ጒ..ጕ) ETHIOPIC SYLLABLE GWI..ETHIOPIC SYLLABLE GWE +1318..131E ; output # [7] (ጘ..ጞ) ETHIOPIC SYLLABLE GGA..ETHIOPIC SYLLABLE GGO +1320..1346 ; output # [39] (ጠ..ፆ) ETHIOPIC SYLLABLE THA..ETHIOPIC SYLLABLE TZO +1348..135A ; output # [19] (ፈ..ፚ) ETHIOPIC SYLLABLE FA..ETHIOPIC SYLLABLE FYA +1369..1371 ; output # [9] (፩..፱) ETHIOPIC DIGIT ONE..ETHIOPIC DIGIT NINE +13A0..13F4 ; output # [85] (Ꭰ..Ᏼ) CHEROKEE LETTER A..CHEROKEE LETTER YV +1401..166C ; output # [620] (ᐁ..ᙬ) CANADIAN SYLLABICS E..CANADIAN SYLLABICS CARRIER TTSA +166F..1676 ; output # [8] (ᙯ..ᙶ) CANADIAN SYLLABICS QAI..CANADIAN SYLLABICS NNGAA +1780..17A2 ; output # [35] (ក..អ) KHMER LETTER KA..KHMER LETTER QA +17A5..17A7 ; output # [3] (ឥ..ឧ) KHMER INDEPENDENT VOWEL QI..KHMER INDEPENDENT VOWEL QU +17A9..17B3 ; output # [11] (ឩ..ឳ) KHMER INDEPENDENT VOWEL QUU..KHMER INDEPENDENT VOWEL QAU +17B6..17D0 ; output # [27] (ា..័) KHMER VOWEL SIGN AA..KHMER SIGN SAMYOK SANNYA +17D2 ; output # (្) KHMER SIGN COENG +17D7 ; output # (ៗ) KHMER SIGN LEK TOO +17DC ; output # (ៜ) KHMER SIGN AVAKRAHASANYA +17E0..17E9 ; output # [10] (០..៩) KHMER DIGIT ZERO..KHMER DIGIT NINE +1810..1819 ; output # [10] (᠐..᠙) MONGOLIAN DIGIT ZERO..MONGOLIAN DIGIT NINE +1820..1877 ; output # [88] (ᠠ..ᡷ) MONGOLIAN LETTER A..MONGOLIAN LETTER MANCHU ZHA +1880..18A9 ; output # [42] (ᢀ..ᢩ) MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER ALI GALI DAGALGA +1E01 ; output # (ḁ) LATIN SMALL LETTER A WITH RING BELOW +1E03 ; output # (ḃ) LATIN SMALL LETTER B WITH DOT ABOVE +1E05 ; output # (ḅ) LATIN SMALL LETTER B WITH DOT BELOW +1E07 ; output # (ḇ) LATIN SMALL LETTER B WITH LINE BELOW +1E09 ; output # (ḉ) LATIN SMALL LETTER C WITH CEDILLA AND ACUTE +1E0B ; output # (ḋ) LATIN SMALL LETTER D WITH DOT ABOVE +1E0D ; output # (ḍ) LATIN SMALL LETTER D WITH DOT BELOW +1E0F ; output # (ḏ) LATIN SMALL LETTER D WITH LINE BELOW +1E11 ; output # (ḑ) LATIN SMALL LETTER D WITH CEDILLA +1E13 ; output # (ḓ) LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW +1E15 ; output # (ḕ) LATIN SMALL LETTER E WITH MACRON AND GRAVE +1E17 ; output # (ḗ) LATIN SMALL LETTER E WITH MACRON AND ACUTE +1E19 ; output # (ḙ) LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW +1E1B ; output # (ḛ) LATIN SMALL LETTER E WITH TILDE BELOW +1E1D ; output # (ḝ) LATIN SMALL LETTER E WITH CEDILLA AND BREVE +1E1F ; output # (ḟ) LATIN SMALL LETTER F WITH DOT ABOVE +1E21 ; output # (ḡ) LATIN SMALL LETTER G WITH MACRON +1E23 ; output # (ḣ) LATIN SMALL LETTER H WITH DOT ABOVE +1E25 ; output # (ḥ) LATIN SMALL LETTER H WITH DOT BELOW +1E27 ; output # (ḧ) LATIN SMALL LETTER H WITH DIAERESIS +1E29 ; output # (ḩ) LATIN SMALL LETTER H WITH CEDILLA +1E2B ; output # (ḫ) LATIN SMALL LETTER H WITH BREVE BELOW +1E2D ; output # (ḭ) LATIN SMALL LETTER I WITH TILDE BELOW +1E2F ; output # (ḯ) LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE +1E31 ; output # (ḱ) LATIN SMALL LETTER K WITH ACUTE +1E33 ; output # (ḳ) LATIN SMALL LETTER K WITH DOT BELOW +1E35 ; output # (ḵ) LATIN SMALL LETTER K WITH LINE BELOW +1E37 ; output # (ḷ) LATIN SMALL LETTER L WITH DOT BELOW +1E39 ; output # (ḹ) LATIN SMALL LETTER L WITH DOT BELOW AND MACRON +1E3B ; output # (ḻ) LATIN SMALL LETTER L WITH LINE BELOW +1E3D ; output # (ḽ) LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW +1E3F ; output # (ḿ) LATIN SMALL LETTER M WITH ACUTE +1E41 ; output # (ṁ) LATIN SMALL LETTER M WITH DOT ABOVE +1E43 ; output # (ṃ) LATIN SMALL LETTER M WITH DOT BELOW +1E45 ; output # (ṅ) LATIN SMALL LETTER N WITH DOT ABOVE +1E47 ; output # (ṇ) LATIN SMALL LETTER N WITH DOT BELOW +1E49 ; output # (ṉ) LATIN SMALL LETTER N WITH LINE BELOW +1E4B ; output # (ṋ) LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW +1E4D ; output # (ṍ) LATIN SMALL LETTER O WITH TILDE AND ACUTE +1E4F ; output # (ṏ) LATIN SMALL LETTER O WITH TILDE AND DIAERESIS +1E51 ; output # (ṑ) LATIN SMALL LETTER O WITH MACRON AND GRAVE +1E53 ; output # (ṓ) LATIN SMALL LETTER O WITH MACRON AND ACUTE +1E55 ; output # (ṕ) LATIN SMALL LETTER P WITH ACUTE +1E57 ; output # (ṗ) LATIN SMALL LETTER P WITH DOT ABOVE +1E59 ; output # (ṙ) LATIN SMALL LETTER R WITH DOT ABOVE +1E5B ; output # (ṛ) LATIN SMALL LETTER R WITH DOT BELOW +1E5D ; output # (ṝ) LATIN SMALL LETTER R WITH DOT BELOW AND MACRON +1E5F ; output # (ṟ) LATIN SMALL LETTER R WITH LINE BELOW +1E61 ; output # (ṡ) LATIN SMALL LETTER S WITH DOT ABOVE +1E63 ; output # (ṣ) LATIN SMALL LETTER S WITH DOT BELOW +1E65 ; output # (ṥ) LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE +1E67 ; output # (ṧ) LATIN SMALL LETTER S WITH CARON AND DOT ABOVE +1E69 ; output # (ṩ) LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE +1E6B ; output # (ṫ) LATIN SMALL LETTER T WITH DOT ABOVE +1E6D ; output # (ṭ) LATIN SMALL LETTER T WITH DOT BELOW +1E6F ; output # (ṯ) LATIN SMALL LETTER T WITH LINE BELOW +1E71 ; output # (ṱ) LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW +1E73 ; output # (ṳ) LATIN SMALL LETTER U WITH DIAERESIS BELOW +1E75 ; output # (ṵ) LATIN SMALL LETTER U WITH TILDE BELOW +1E77 ; output # (ṷ) LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW +1E79 ; output # (ṹ) LATIN SMALL LETTER U WITH TILDE AND ACUTE +1E7B ; output # (ṻ) LATIN SMALL LETTER U WITH MACRON AND DIAERESIS +1E7D ; output # (ṽ) LATIN SMALL LETTER V WITH TILDE +1E7F ; output # (ṿ) LATIN SMALL LETTER V WITH DOT BELOW +1E81 ; output # (ẁ) LATIN SMALL LETTER W WITH GRAVE +1E83 ; output # (ẃ) LATIN SMALL LETTER W WITH ACUTE +1E85 ; output # (ẅ) LATIN SMALL LETTER W WITH DIAERESIS +1E87 ; output # (ẇ) LATIN SMALL LETTER W WITH DOT ABOVE +1E89 ; output # (ẉ) LATIN SMALL LETTER W WITH DOT BELOW +1E8B ; output # (ẋ) LATIN SMALL LETTER X WITH DOT ABOVE +1E8D ; output # (ẍ) LATIN SMALL LETTER X WITH DIAERESIS +1E8F ; output # (ẏ) LATIN SMALL LETTER Y WITH DOT ABOVE +1E91 ; output # (ẑ) LATIN SMALL LETTER Z WITH CIRCUMFLEX +1E93 ; output # (ẓ) LATIN SMALL LETTER Z WITH DOT BELOW +1E95..1E99 ; output # [5] (ẕ..ẙ) LATIN SMALL LETTER Z WITH LINE BELOW..LATIN SMALL LETTER Y WITH RING ABOVE +1EA1 ; output # (ạ) LATIN SMALL LETTER A WITH DOT BELOW +1EA3 ; output # (ả) LATIN SMALL LETTER A WITH HOOK ABOVE +1EA5 ; output # (ấ) LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE +1EA7 ; output # (ầ) LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE +1EA9 ; output # (ẩ) LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE +1EAB ; output # (ẫ) LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE +1EAD ; output # (ậ) LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW +1EAF ; output # (ắ) LATIN SMALL LETTER A WITH BREVE AND ACUTE +1EB1 ; output # (ằ) LATIN SMALL LETTER A WITH BREVE AND GRAVE +1EB3 ; output # (ẳ) LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE +1EB5 ; output # (ẵ) LATIN SMALL LETTER A WITH BREVE AND TILDE +1EB7 ; output # (ặ) LATIN SMALL LETTER A WITH BREVE AND DOT BELOW +1EB9 ; output # (ẹ) LATIN SMALL LETTER E WITH DOT BELOW +1EBB ; output # (ẻ) LATIN SMALL LETTER E WITH HOOK ABOVE +1EBD ; output # (ẽ) LATIN SMALL LETTER E WITH TILDE +1EBF ; output # (ế) LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE +1EC1 ; output # (ề) LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE +1EC3 ; output # (ể) LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE +1EC5 ; output # (ễ) LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE +1EC7 ; output # (ệ) LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW +1EC9 ; output # (ỉ) LATIN SMALL LETTER I WITH HOOK ABOVE +1ECB ; output # (ị) LATIN SMALL LETTER I WITH DOT BELOW +1ECD ; output # (ọ) LATIN SMALL LETTER O WITH DOT BELOW +1ECF ; output # (ỏ) LATIN SMALL LETTER O WITH HOOK ABOVE +1ED1 ; output # (ố) LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE +1ED3 ; output # (ồ) LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE +1ED5 ; output # (ổ) LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE +1ED7 ; output # (ỗ) LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE +1ED9 ; output # (ộ) LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW +1EDB ; output # (ớ) LATIN SMALL LETTER O WITH HORN AND ACUTE +1EDD ; output # (ờ) LATIN SMALL LETTER O WITH HORN AND GRAVE +1EDF ; output # (ở) LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE +1EE1 ; output # (ỡ) LATIN SMALL LETTER O WITH HORN AND TILDE +1EE3 ; output # (ợ) LATIN SMALL LETTER O WITH HORN AND DOT BELOW +1EE5 ; output # (ụ) LATIN SMALL LETTER U WITH DOT BELOW +1EE7 ; output # (ủ) LATIN SMALL LETTER U WITH HOOK ABOVE +1EE9 ; output # (ứ) LATIN SMALL LETTER U WITH HORN AND ACUTE +1EEB ; output # (ừ) LATIN SMALL LETTER U WITH HORN AND GRAVE +1EED ; output # (ử) LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE +1EEF ; output # (ữ) LATIN SMALL LETTER U WITH HORN AND TILDE +1EF1 ; output # (ự) LATIN SMALL LETTER U WITH HORN AND DOT BELOW +1EF3 ; output # (ỳ) LATIN SMALL LETTER Y WITH GRAVE +1EF5 ; output # (ỵ) LATIN SMALL LETTER Y WITH DOT BELOW +1EF7 ; output # (ỷ) LATIN SMALL LETTER Y WITH HOOK ABOVE +1EF9 ; output # (ỹ) LATIN SMALL LETTER Y WITH TILDE +1F00..1F07 ; output # [8] (ἀ..ἇ) GREEK SMALL LETTER ALPHA WITH PSILI..GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI +1F10..1F15 ; output # [6] (ἐ..ἕ) GREEK SMALL LETTER EPSILON WITH PSILI..GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA +1F20..1F27 ; output # [8] (ἠ..ἧ) GREEK SMALL LETTER ETA WITH PSILI..GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI +1F30..1F37 ; output # [8] (ἰ..ἷ) GREEK SMALL LETTER IOTA WITH PSILI..GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI +1F40..1F45 ; output # [6] (ὀ..ὅ) GREEK SMALL LETTER OMICRON WITH PSILI..GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA +1F50..1F57 ; output # [8] (ὐ..ὗ) GREEK SMALL LETTER UPSILON WITH PSILI..GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI +1F60..1F67 ; output # [8] (ὠ..ὧ) GREEK SMALL LETTER OMEGA WITH PSILI..GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI +1F70 ; output # (ὰ) GREEK SMALL LETTER ALPHA WITH VARIA +1F72 ; output # (ὲ) GREEK SMALL LETTER EPSILON WITH VARIA +1F74 ; output # (ὴ) GREEK SMALL LETTER ETA WITH VARIA +1F76 ; output # (ὶ) GREEK SMALL LETTER IOTA WITH VARIA +1F78 ; output # (ὸ) GREEK SMALL LETTER OMICRON WITH VARIA +1F7A ; output # (ὺ) GREEK SMALL LETTER UPSILON WITH VARIA +1F7C ; output # (ὼ) GREEK SMALL LETTER OMEGA WITH VARIA +1FB0..1FB1 ; output # [2] (ᾰ..ᾱ) GREEK SMALL LETTER ALPHA WITH VRACHY..GREEK SMALL LETTER ALPHA WITH MACRON +1FB6 ; output # (ᾶ) GREEK SMALL LETTER ALPHA WITH PERISPOMENI +1FC6 ; output # (ῆ) GREEK SMALL LETTER ETA WITH PERISPOMENI +1FD0..1FD2 ; output # [3] (ῐ..ῒ) GREEK SMALL LETTER IOTA WITH VRACHY..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA +1FD6..1FD7 ; output # [2] (ῖ..ῗ) GREEK SMALL LETTER IOTA WITH PERISPOMENI..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI +1FE0..1FE2 ; output # [3] (ῠ..ῢ) GREEK SMALL LETTER UPSILON WITH VRACHY..GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA +1FE4..1FE7 ; output # [4] (ῤ..ῧ) GREEK SMALL LETTER RHO WITH PSILI..GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI +1FF6 ; output # (ῶ) GREEK SMALL LETTER OMEGA WITH PERISPOMENI +2132 ; output # (Ⅎ) TURNED CAPITAL F +3005..3007 ; output # [3] (々..〇) IDEOGRAPHIC ITERATION MARK..IDEOGRAPHIC NUMBER ZERO +3041..3096 ; output # [86] (ぁ..ゖ) HIRAGANA LETTER SMALL A..HIRAGANA LETTER SMALL KE +3099..309A ; output # [2] (゙..゚) COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK +309D..309E ; output # [2] (ゝ..ゞ) HIRAGANA ITERATION MARK..HIRAGANA VOICED ITERATION MARK +30A1..30FE ; output # [94] (ァ..ヾ) KATAKANA LETTER SMALL A..KATAKANA VOICED ITERATION MARK +3105..312C ; output # [40] (ㄅ..ㄬ) BOPOMOFO LETTER B..BOPOMOFO LETTER GN +31A0..31B7 ; output # [24] (ㆠ..ㆷ) BOPOMOFO LETTER BU..BOPOMOFO FINAL LETTER H +31F0..31FF ; output # [16] (ㇰ..ㇿ) KATAKANA LETTER SMALL KU..KATAKANA LETTER SMALL RO +3447 ; output # (㑇) CJK UNIFIED IDEOGRAPH-3447 +3473 ; output # (㑳) CJK UNIFIED IDEOGRAPH-3473 +34E4 ; output # (㓤) CJK UNIFIED IDEOGRAPH-34E4 +3577 ; output # (㕷) CJK UNIFIED IDEOGRAPH-3577 +359E ; output # (㖞) CJK UNIFIED IDEOGRAPH-359E +35A1 ; output # (㖡) CJK UNIFIED IDEOGRAPH-35A1 +35AD ; output # (㖭) CJK UNIFIED IDEOGRAPH-35AD +35BF ; output # (㖿) CJK UNIFIED IDEOGRAPH-35BF +35CE ; output # (㗎) CJK UNIFIED IDEOGRAPH-35CE +35F3 ; output # (㗳) CJK UNIFIED IDEOGRAPH-35F3 +35FE ; output # (㗾) CJK UNIFIED IDEOGRAPH-35FE +360E ; output # (㘎) CJK UNIFIED IDEOGRAPH-360E +361A ; output # (㘚) CJK UNIFIED IDEOGRAPH-361A +3918 ; output # (㤘) CJK UNIFIED IDEOGRAPH-3918 +3960 ; output # (㥠) CJK UNIFIED IDEOGRAPH-3960 +396E ; output # (㥮) CJK UNIFIED IDEOGRAPH-396E +39CF..39D0 ; output # [2] (㧏..㧐) CJK UNIFIED IDEOGRAPH-39CF..CJK UNIFIED IDEOGRAPH-39D0 +39DF ; output # (㧟) CJK UNIFIED IDEOGRAPH-39DF +39F8 ; output # (㧸) CJK UNIFIED IDEOGRAPH-39F8 +39FE ; output # (㧾) CJK UNIFIED IDEOGRAPH-39FE +3A18 ; output # (㨘) CJK UNIFIED IDEOGRAPH-3A18 +3A52 ; output # (㩒) CJK UNIFIED IDEOGRAPH-3A52 +3A67 ; output # (㩧) CJK UNIFIED IDEOGRAPH-3A67 +3A73 ; output # (㩳) CJK UNIFIED IDEOGRAPH-3A73 +3B39 ; output # (㬹) CJK UNIFIED IDEOGRAPH-3B39 +3B4E ; output # (㭎) CJK UNIFIED IDEOGRAPH-3B4E +3C6E ; output # (㱮) CJK UNIFIED IDEOGRAPH-3C6E +3CE0 ; output # (㳠) CJK UNIFIED IDEOGRAPH-3CE0 +3DE7 ; output # (㷧) CJK UNIFIED IDEOGRAPH-3DE7 +3DEB ; output # (㷫) CJK UNIFIED IDEOGRAPH-3DEB +3E74 ; output # (㹴) CJK UNIFIED IDEOGRAPH-3E74 +3ED0 ; output # (㻐) CJK UNIFIED IDEOGRAPH-3ED0 +4056 ; output # (䁖) CJK UNIFIED IDEOGRAPH-4056 +4065 ; output # (䁥) CJK UNIFIED IDEOGRAPH-4065 +406A ; output # (䁪) CJK UNIFIED IDEOGRAPH-406A +40BB ; output # (䂻) CJK UNIFIED IDEOGRAPH-40BB +40DF ; output # (䃟) CJK UNIFIED IDEOGRAPH-40DF +4137 ; output # (䄷) CJK UNIFIED IDEOGRAPH-4137 +415F ; output # (䅟) CJK UNIFIED IDEOGRAPH-415F +4337 ; output # (䌷) CJK UNIFIED IDEOGRAPH-4337 +43AC ; output # (䎬) CJK UNIFIED IDEOGRAPH-43AC +43B1 ; output # (䎱) CJK UNIFIED IDEOGRAPH-43B1 +43DD ; output # (䏝) CJK UNIFIED IDEOGRAPH-43DD +44D6 ; output # (䓖) CJK UNIFIED IDEOGRAPH-44D6 +44EA ; output # (䓪) CJK UNIFIED IDEOGRAPH-44EA +4606 ; output # (䘆) CJK UNIFIED IDEOGRAPH-4606 +464C ; output # (䙌) CJK UNIFIED IDEOGRAPH-464C +4661 ; output # (䙡) CJK UNIFIED IDEOGRAPH-4661 +4723 ; output # (䜣) CJK UNIFIED IDEOGRAPH-4723 +4729 ; output # (䜩) CJK UNIFIED IDEOGRAPH-4729 +477C ; output # (䝼) CJK UNIFIED IDEOGRAPH-477C +478D ; output # (䞍) CJK UNIFIED IDEOGRAPH-478D +47F4 ; output # (䟴) CJK UNIFIED IDEOGRAPH-47F4 +48B5 ; output # (䢵) CJK UNIFIED IDEOGRAPH-48B5 +48BC ; output # (䢼) CJK UNIFIED IDEOGRAPH-48BC +48C5 ; output # (䣅) CJK UNIFIED IDEOGRAPH-48C5 +48D3 ; output # (䣓) CJK UNIFIED IDEOGRAPH-48D3 +4947 ; output # (䥇) CJK UNIFIED IDEOGRAPH-4947 +497A ; output # (䥺) CJK UNIFIED IDEOGRAPH-497A +497D ; output # (䥽) CJK UNIFIED IDEOGRAPH-497D +4982..4983 ; output # [2] (䦂..䦃) CJK UNIFIED IDEOGRAPH-4982..CJK UNIFIED IDEOGRAPH-4983 +4985..4986 ; output # [2] (䦅..䦆) CJK UNIFIED IDEOGRAPH-4985..CJK UNIFIED IDEOGRAPH-4986 +499B ; output # (䦛) CJK UNIFIED IDEOGRAPH-499B +499F ; output # (䦟) CJK UNIFIED IDEOGRAPH-499F +49B6..49B7 ; output # [2] (䦶..䦷) CJK UNIFIED IDEOGRAPH-49B6..CJK UNIFIED IDEOGRAPH-49B7 +49D1 ; output # (䧑) CJK UNIFIED IDEOGRAPH-49D1 +4A12 ; output # (䨒) CJK UNIFIED IDEOGRAPH-4A12 +4AB8 ; output # (䪸) CJK UNIFIED IDEOGRAPH-4AB8 +4C77 ; output # (䱷) CJK UNIFIED IDEOGRAPH-4C77 +4C7D ; output # (䱽) CJK UNIFIED IDEOGRAPH-4C7D +4C81 ; output # (䲁) CJK UNIFIED IDEOGRAPH-4C81 +4C85 ; output # (䲅) CJK UNIFIED IDEOGRAPH-4C85 +4C9F..4CA3 ; output # [5] (䲟..䲣) CJK UNIFIED IDEOGRAPH-4C9F..CJK UNIFIED IDEOGRAPH-4CA3 +4CB3 ; output # (䲳) CJK UNIFIED IDEOGRAPH-4CB3 +4D08 ; output # (䴈) CJK UNIFIED IDEOGRAPH-4D08 +4D13..4D19 ; output # [7] (䴓..䴙) CJK UNIFIED IDEOGRAPH-4D13..CJK UNIFIED IDEOGRAPH-4D19 +4DAE ; output # (䶮) CJK UNIFIED IDEOGRAPH-4DAE +4E00..9FA5 ; output # [20902] (一..龥) CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FA5 +A000..A48C ; output # [1165] (ꀀ..ꒌ) YI SYLLABLE IT..YI SYLLABLE YYR +AC00..D7A3 ; output # [11172] (가..힣) HANGUL SYLLABLE GA..HANGUL SYLLABLE HIH +FA0E..FA0F ; output # [2] (﨎..﨏) CJK COMPATIBILITY IDEOGRAPH-FA0E..CJK COMPATIBILITY IDEOGRAPH-FA0F +FA11 ; output # (﨑) CJK COMPATIBILITY IDEOGRAPH-FA11 +FA13..FA14 ; output # [2] (﨓..﨔) CJK COMPATIBILITY IDEOGRAPH-FA13..CJK COMPATIBILITY IDEOGRAPH-FA14 +FA1F ; output # (﨟) CJK COMPATIBILITY IDEOGRAPH-FA1F +FA21 ; output # (﨡) CJK COMPATIBILITY IDEOGRAPH-FA21 +FA23..FA24 ; output # [2] (﨣..﨤) CJK COMPATIBILITY IDEOGRAPH-FA23..CJK COMPATIBILITY IDEOGRAPH-FA24 +FA27..FA29 ; output # [3] (﨧..﨩) CJK COMPATIBILITY IDEOGRAPH-FA27..CJK COMPATIBILITY IDEOGRAPH-FA29 +2070E ; output # (𠜎) CJK UNIFIED IDEOGRAPH-2070E +20731 ; output # (𠜱) CJK UNIFIED IDEOGRAPH-20731 +20779 ; output # (𠝹) CJK UNIFIED IDEOGRAPH-20779 +20C53 ; output # (𠱓) CJK UNIFIED IDEOGRAPH-20C53 +20C78 ; output # (𠱸) CJK UNIFIED IDEOGRAPH-20C78 +20C96 ; output # (𠲖) CJK UNIFIED IDEOGRAPH-20C96 +20CCF ; output # (𠳏) CJK UNIFIED IDEOGRAPH-20CCF +20CD5 ; output # (𠳕) CJK UNIFIED IDEOGRAPH-20CD5 +20D15 ; output # (𠴕) CJK UNIFIED IDEOGRAPH-20D15 +20D7C ; output # (𠵼) CJK UNIFIED IDEOGRAPH-20D7C +20D7F ; output # (𠵿) CJK UNIFIED IDEOGRAPH-20D7F +20E0E..20E0F ; output # [2] (𠸎..𠸏) CJK UNIFIED IDEOGRAPH-20E0E..CJK UNIFIED IDEOGRAPH-20E0F +20E77 ; output # (𠹷) CJK UNIFIED IDEOGRAPH-20E77 +20E9D ; output # (𠺝) CJK UNIFIED IDEOGRAPH-20E9D +20EA2 ; output # (𠺢) CJK UNIFIED IDEOGRAPH-20EA2 +20ED7 ; output # (𠻗) CJK UNIFIED IDEOGRAPH-20ED7 +20EF9..20EFA ; output # [2] (𠻹..𠻺) CJK UNIFIED IDEOGRAPH-20EF9..CJK UNIFIED IDEOGRAPH-20EFA +20F2D..20F2E ; output # [2] (𠼭..𠼮) CJK UNIFIED IDEOGRAPH-20F2D..CJK UNIFIED IDEOGRAPH-20F2E +20F4C ; output # (𠽌) CJK UNIFIED IDEOGRAPH-20F4C +20FB4 ; output # (𠾴) CJK UNIFIED IDEOGRAPH-20FB4 +20FBC ; output # (𠾼) CJK UNIFIED IDEOGRAPH-20FBC +20FEA ; output # (𠿪) CJK UNIFIED IDEOGRAPH-20FEA +2105C ; output # (𡁜) CJK UNIFIED IDEOGRAPH-2105C +2106F ; output # (𡁯) CJK UNIFIED IDEOGRAPH-2106F +21075..21076 ; output # [2] (𡁵..𡁶) CJK UNIFIED IDEOGRAPH-21075..CJK UNIFIED IDEOGRAPH-21076 +2107B ; output # (𡁻) CJK UNIFIED IDEOGRAPH-2107B +210C1 ; output # (𡃁) CJK UNIFIED IDEOGRAPH-210C1 +210C9 ; output # (𡃉) CJK UNIFIED IDEOGRAPH-210C9 +211D9 ; output # (𡇙) CJK UNIFIED IDEOGRAPH-211D9 +220C7 ; output # (𢃇) CJK UNIFIED IDEOGRAPH-220C7 +227B5 ; output # (𢞵) CJK UNIFIED IDEOGRAPH-227B5 +22AD5 ; output # (𢫕) CJK UNIFIED IDEOGRAPH-22AD5 +22B43 ; output # (𢭃) CJK UNIFIED IDEOGRAPH-22B43 +22BCA ; output # (𢯊) CJK UNIFIED IDEOGRAPH-22BCA +22C51 ; output # (𢱑) CJK UNIFIED IDEOGRAPH-22C51 +22C55 ; output # (𢱕) CJK UNIFIED IDEOGRAPH-22C55 +22CC2 ; output # (𢳂) CJK UNIFIED IDEOGRAPH-22CC2 +22D08 ; output # (𢴈) CJK UNIFIED IDEOGRAPH-22D08 +22D4C ; output # (𢵌) CJK UNIFIED IDEOGRAPH-22D4C +22D67 ; output # (𢵧) CJK UNIFIED IDEOGRAPH-22D67 +22EB3 ; output # (𢺳) CJK UNIFIED IDEOGRAPH-22EB3 +23CB7 ; output # (𣲷) CJK UNIFIED IDEOGRAPH-23CB7 +244D3 ; output # (𤓓) CJK UNIFIED IDEOGRAPH-244D3 +24DB8 ; output # (𤶸) CJK UNIFIED IDEOGRAPH-24DB8 +24DEA ; output # (𤷪) CJK UNIFIED IDEOGRAPH-24DEA +2512B ; output # (𥄫) CJK UNIFIED IDEOGRAPH-2512B +26258 ; output # (𦉘) CJK UNIFIED IDEOGRAPH-26258 +267CC ; output # (𦟌) CJK UNIFIED IDEOGRAPH-267CC +269F2 ; output # (𦧲) CJK UNIFIED IDEOGRAPH-269F2 +269FA ; output # (𦧺) CJK UNIFIED IDEOGRAPH-269FA +27A3E ; output # (𧨾) CJK UNIFIED IDEOGRAPH-27A3E +2815D ; output # (𨅝) CJK UNIFIED IDEOGRAPH-2815D +28207 ; output # (𨈇) CJK UNIFIED IDEOGRAPH-28207 +282E2 ; output # (𨋢) CJK UNIFIED IDEOGRAPH-282E2 +28CCA ; output # (𨳊) CJK UNIFIED IDEOGRAPH-28CCA +28CCD ; output # (𨳍) CJK UNIFIED IDEOGRAPH-28CCD +28CD2 ; output # (𨳒) CJK UNIFIED IDEOGRAPH-28CD2 +29D98 ; output # (𩶘) CJK UNIFIED IDEOGRAPH-29D98 + +# Total code points: 37201 + +# Not allowed at start of identifier + +0300..033F ; nonstarting # [64] (̀..̿) COMBINING GRAVE ACCENT..COMBINING DOUBLE OVERLINE +0342 ; nonstarting # (͂) COMBINING GREEK PERISPOMENI +0345..034E ; nonstarting # [10] (ͅ..͎) COMBINING GREEK YPOGEGRAMMENI..COMBINING UPWARDS ARROW BELOW +0360..036F ; nonstarting # [16] (͠..ͯ) COMBINING DOUBLE TILDE..COMBINING LATIN SMALL LETTER X +0591..05A1 ; nonstarting # [17] (֑..֡) HEBREW ACCENT ETNAHTA..HEBREW ACCENT PAZER +05A3..05B9 ; nonstarting # [23] (֣..ֹ) HEBREW ACCENT MUNAH..HEBREW POINT HOLAM +05BB..05BD ; nonstarting # [3] (ֻ..ֽ) HEBREW POINT QUBUTS..HEBREW POINT METEG +05BF ; nonstarting # (ֿ) HEBREW POINT RAFE +05C1..05C2 ; nonstarting # [2] (ׁ..ׂ) HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT +05C4 ; nonstarting # (ׄ) HEBREW MARK UPPER DOT +064B..0655 ; nonstarting # [11] (ً..ٕ) ARABIC FATHATAN..ARABIC HAMZA BELOW +0670 ; nonstarting # (ٰ) ARABIC LETTER SUPERSCRIPT ALEF +06D6..06DC ; nonstarting # [7] (ۖ..ۜ) ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA..ARABIC SMALL HIGH SEEN +06DF..06E4 ; nonstarting # [6] (۟..ۤ) ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH MADDA +06E7..06E8 ; nonstarting # [2] (ۧ..ۨ) ARABIC SMALL HIGH YEH..ARABIC SMALL HIGH NOON +06EA..06ED ; nonstarting # [4] (۪..ۭ) ARABIC EMPTY CENTRE LOW STOP..ARABIC SMALL LOW MEEM +0711 ; nonstarting # (ܑ) SYRIAC LETTER SUPERSCRIPT ALAPH +0730..073F ; nonstarting # [16] (ܰ..ܿ) SYRIAC PTHAHA ABOVE..SYRIAC RWAHA +07A6..07B0 ; nonstarting # [11] (ަ..ް) THAANA ABAFILI..THAANA SUKUN +0901..0903 ; nonstarting # [3] (ँ..ः) DEVANAGARI SIGN CANDRABINDU..DEVANAGARI SIGN VISARGA +093C ; nonstarting # (़) DEVANAGARI SIGN NUKTA +093E..094D ; nonstarting # [16] (ा..्) DEVANAGARI VOWEL SIGN AA..DEVANAGARI SIGN VIRAMA +0951..0954 ; nonstarting # [4] (॑..॔) DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI ACUTE ACCENT +0962..0963 ; nonstarting # [2] (ॢ..ॣ) DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL +0981..0983 ; nonstarting # [3] (ঁ..ঃ) BENGALI SIGN CANDRABINDU..BENGALI SIGN VISARGA +09BC ; nonstarting # (়) BENGALI SIGN NUKTA +09BE..09C4 ; nonstarting # [7] (া..ৄ) BENGALI VOWEL SIGN AA..BENGALI VOWEL SIGN VOCALIC RR +09C7..09C8 ; nonstarting # [2] (ে..ৈ) BENGALI VOWEL SIGN E..BENGALI VOWEL SIGN AI +09CB..09CD ; nonstarting # [3] (ো..্) BENGALI VOWEL SIGN O..BENGALI SIGN VIRAMA +09D7 ; nonstarting # (ৗ) BENGALI AU LENGTH MARK +09E2..09E3 ; nonstarting # [2] (ৢ..ৣ) BENGALI VOWEL SIGN VOCALIC L..BENGALI VOWEL SIGN VOCALIC LL +0A02 ; nonstarting # (ਂ) GURMUKHI SIGN BINDI +0A3C ; nonstarting # (਼) GURMUKHI SIGN NUKTA +0A3E..0A42 ; nonstarting # [5] (ਾ..ੂ) GURMUKHI VOWEL SIGN AA..GURMUKHI VOWEL SIGN UU +0A47..0A48 ; nonstarting # [2] (ੇ..ੈ) GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI +0A4B..0A4D ; nonstarting # [3] (ੋ..੍) GURMUKHI VOWEL SIGN OO..GURMUKHI SIGN VIRAMA +0A70..0A71 ; nonstarting # [2] (ੰ..ੱ) GURMUKHI TIPPI..GURMUKHI ADDAK +0A81..0A83 ; nonstarting # [3] (ઁ..ઃ) GUJARATI SIGN CANDRABINDU..GUJARATI SIGN VISARGA +0ABC ; nonstarting # (઼) GUJARATI SIGN NUKTA +0ABE..0AC5 ; nonstarting # [8] (ા..ૅ) GUJARATI VOWEL SIGN AA..GUJARATI VOWEL SIGN CANDRA E +0AC7..0AC9 ; nonstarting # [3] (ે..ૉ) GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN CANDRA O +0ACB..0ACD ; nonstarting # [3] (ો..્) GUJARATI VOWEL SIGN O..GUJARATI SIGN VIRAMA +0B01..0B03 ; nonstarting # [3] (ଁ..ଃ) ORIYA SIGN CANDRABINDU..ORIYA SIGN VISARGA +0B3C ; nonstarting # (଼) ORIYA SIGN NUKTA +0B3E..0B43 ; nonstarting # [6] (ା..ୃ) ORIYA VOWEL SIGN AA..ORIYA VOWEL SIGN VOCALIC R +0B47..0B48 ; nonstarting # [2] (େ..ୈ) ORIYA VOWEL SIGN E..ORIYA VOWEL SIGN AI +0B4B..0B4D ; nonstarting # [3] (ୋ..୍) ORIYA VOWEL SIGN O..ORIYA SIGN VIRAMA +0B56..0B57 ; nonstarting # [2] (ୖ..ୗ) ORIYA AI LENGTH MARK..ORIYA AU LENGTH MARK +0B82 ; nonstarting # (ஂ) TAMIL SIGN ANUSVARA +0BBE..0BC2 ; nonstarting # [5] (ா..ூ) TAMIL VOWEL SIGN AA..TAMIL VOWEL SIGN UU +0BC6..0BC8 ; nonstarting # [3] (ெ..ை) TAMIL VOWEL SIGN E..TAMIL VOWEL SIGN AI +0BCA..0BCD ; nonstarting # [4] (ொ..்) TAMIL VOWEL SIGN O..TAMIL SIGN VIRAMA +0BD7 ; nonstarting # (ௗ) TAMIL AU LENGTH MARK +0C01..0C03 ; nonstarting # [3] (ఁ..ః) TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA +0C3E..0C44 ; nonstarting # [7] (ా..ౄ) TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN VOCALIC RR +0C46..0C48 ; nonstarting # [3] (ె..ై) TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI +0C4A..0C4D ; nonstarting # [4] (ొ..్) TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA +0C55..0C56 ; nonstarting # [2] (ౕ..ౖ) TELUGU LENGTH MARK..TELUGU AI LENGTH MARK +0C82..0C83 ; nonstarting # [2] (ಂ..ಃ) KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA +0CBE..0CC4 ; nonstarting # [7] (ಾ..ೄ) KANNADA VOWEL SIGN AA..KANNADA VOWEL SIGN VOCALIC RR +0CC6..0CC8 ; nonstarting # [3] (ೆ..ೈ) KANNADA VOWEL SIGN E..KANNADA VOWEL SIGN AI +0CCA..0CCD ; nonstarting # [4] (ೊ..್) KANNADA VOWEL SIGN O..KANNADA SIGN VIRAMA +0CD5..0CD6 ; nonstarting # [2] (ೕ..ೖ) KANNADA LENGTH MARK..KANNADA AI LENGTH MARK +0D02..0D03 ; nonstarting # [2] (ം..ഃ) MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA +0D3E..0D43 ; nonstarting # [6] (ാ..ൃ) MALAYALAM VOWEL SIGN AA..MALAYALAM VOWEL SIGN VOCALIC R +0D46..0D48 ; nonstarting # [3] (െ..ൈ) MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI +0D4A..0D4D ; nonstarting # [4] (ൊ..്) MALAYALAM VOWEL SIGN O..MALAYALAM SIGN VIRAMA +0D57 ; nonstarting # (ൗ) MALAYALAM AU LENGTH MARK +0D82..0D83 ; nonstarting # [2] (ං..ඃ) SINHALA SIGN ANUSVARAYA..SINHALA SIGN VISARGAYA +0DCA ; nonstarting # (්) SINHALA SIGN AL-LAKUNA +0DCF..0DD4 ; nonstarting # [6] (ා..ු) SINHALA VOWEL SIGN AELA-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA +0DD6 ; nonstarting # (ූ) SINHALA VOWEL SIGN DIGA PAA-PILLA +0DD8..0DDF ; nonstarting # [8] (ෘ..ෟ) SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN GAYANUKITTA +0DF2..0DF3 ; nonstarting # [2] (ෲ..ෳ) SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA +0E31 ; nonstarting # (ั) THAI CHARACTER MAI HAN-AKAT +0E34..0E3A ; nonstarting # [7] (ิ..ฺ) THAI CHARACTER SARA I..THAI CHARACTER PHINTHU +0E47..0E4E ; nonstarting # [8] (็..๎) THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN +0EB1 ; nonstarting # (ັ) LAO VOWEL SIGN MAI KAN +0EB4..0EB9 ; nonstarting # [6] (ິ..ູ) LAO VOWEL SIGN I..LAO VOWEL SIGN UU +0EBB..0EBC ; nonstarting # [2] (ົ..ຼ) LAO VOWEL SIGN MAI KON..LAO SEMIVOWEL SIGN LO +0EC8..0ECD ; nonstarting # [6] (່..ໍ) LAO TONE MAI EK..LAO NIGGAHITA +0F18..0F19 ; nonstarting # [2] (༘..༙) TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS +0F35 ; nonstarting # (༵) TIBETAN MARK NGAS BZUNG NYI ZLA +0F37 ; nonstarting # (༷) TIBETAN MARK NGAS BZUNG SGOR RTAGS +0F39 ; nonstarting # (༹) TIBETAN MARK TSA -PHRU +0F3E..0F3F ; nonstarting # [2] (༾..༿) TIBETAN SIGN YAR TSHES..TIBETAN SIGN MAR TSHES +0F71..0F72 ; nonstarting # [2] (ཱ..ི) TIBETAN VOWEL SIGN AA..TIBETAN VOWEL SIGN I +0F74 ; nonstarting # (ུ) TIBETAN VOWEL SIGN U +0F76 ; nonstarting # (ྲྀ) TIBETAN VOWEL SIGN VOCALIC R +0F78 ; nonstarting # (ླྀ) TIBETAN VOWEL SIGN VOCALIC L +0F7A..0F80 ; nonstarting # [7] (ེ..ྀ) TIBETAN VOWEL SIGN E..TIBETAN VOWEL SIGN REVERSED I +0F82..0F84 ; nonstarting # [3] (ྂ..྄) TIBETAN SIGN NYI ZLA NAA DA..TIBETAN MARK HALANTA +0F86..0F87 ; nonstarting # [2] (྆..྇) TIBETAN SIGN LCI RTAGS..TIBETAN SIGN YANG RTAGS +0F90..0F97 ; nonstarting # [8] (ྐ..ྗ) TIBETAN SUBJOINED LETTER KA..TIBETAN SUBJOINED LETTER JA +0F99..0FBC ; nonstarting # [36] (ྙ..ྼ) TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER FIXED-FORM RA +0FC6 ; nonstarting # (࿆) TIBETAN SYMBOL PADMA GDAN +102C..1032 ; nonstarting # [7] (ာ..ဲ) MYANMAR VOWEL SIGN AA..MYANMAR VOWEL SIGN AI +1036..1039 ; nonstarting # [4] (ံ..္) MYANMAR SIGN ANUSVARA..MYANMAR SIGN VIRAMA +1056..1059 ; nonstarting # [4] (ၖ..ၙ) MYANMAR VOWEL SIGN VOCALIC R..MYANMAR VOWEL SIGN VOCALIC LL +17B6..17D0 ; nonstarting # [27] (ា..័) KHMER VOWEL SIGN AA..KHMER SIGN SAMYOK SANNYA +17D2 ; nonstarting # (្) KHMER SIGN COENG +18A9 ; nonstarting # (ᢩ) MONGOLIAN LETTER ALI GALI DAGALGA +3099..309A ; nonstarting # [2] (゙..゚) COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK + +# Total code points: 524 diff --git a/emacs.d/nxhtml/etc/viper-tut/0intro b/emacs.d/nxhtml/etc/viper-tut/0intro new file mode 100644 index 0000000..3a37e33 --- /dev/null +++ b/emacs.d/nxhtml/etc/viper-tut/0intro @@ -0,0 +1,59 @@ +Viper tutorial #0: Introduction + +This Viper tutorial is based on the vi tutorial VILEARN. Some things +works differently in Emacs and corresponding parts of the tutorial has +been changed for this. There has also been added some basic +information about Emacs that are useful to get started if you already +are a vi user. + +This tutorial is a hands-on-tutorial for Viper. If you want more +information about Viper, please read the VIPER-MANUAL. + +Note that if you are using Viper you probably still want to know quite +a bit about Emacs to use Emacs efficiently. Therefore you can also +run the Emacs tutorial from here - with special support for +Viper. This is part 6 below. You should run this part also to get to +know which Emacs standard key bindings are shadowed by Viper. + +The tutorial consists of these parts: + + 0 Introduction + (this file) + + 1 Basic Editing + Covers the handful of commands required to both navigate all + five tutorials and do basic editing. + + 2 Moving Efficiently + Covers all of the cursor positioning commands. These are the + commands used later as arguments to editing commands. + + 3 Cutting and Pasting + Introduces the first compound commands, numbering, and copy + buffers. + + 4 Inserting Techniques + Continues the discussion of compound commands, while completing + the list of insertion commands first discussed in tutorial one. + + 5 Tricks and Timesavers + This is less a tutorial than a description of common vi commands + which don't fit correctly into normal logic. + + 6 Emacs Tutorial for Viper Users + Even Viper users use a lot of keys from Emacs. Therefore you can + run the Emacs tutorial here too. It will show you which keys in + the tutorial that are changed because you are using Viper. This + depends of which Viper state you are in, vi state or some insert + state. If you switch Viper state the tutorial will immediately + show which keys are affected. + + +BUGS +Vilearn has the remark that it "Still doesn't cover variables, ex +commands, or tags. At least one more tutorial is necessary for a +complete introduction to vi." - I do not think you have to learn those +parts to use Viper. There are other ways to do these things in Emacs! + +For more information about vilearn see the the README-FILE. + diff --git a/emacs.d/nxhtml/etc/viper-tut/1basics b/emacs.d/nxhtml/etc/viper-tut/1basics new file mode 100644 index 0000000..aea1fc5 --- /dev/null +++ b/emacs.d/nxhtml/etc/viper-tut/1basics @@ -0,0 +1,187 @@ +Viper tutorial #1: The Basics + +This lesson lasts 10-15 minutes and teaches simple editing. Lines +which begin with >>> mark exercises you should try. When you +want to exit this tutorial type 'Z''Z' (type capital Z, twice). + +When you type commands in vi they do not appear on the screen. If the +letters you type unexpectedly appear on the screen, press the ESC key. + + +BASIC CURSOR MOVEMENT +--------------------- +To move through the tutorial use C-d (control d) and C-u (control u). + + C-d Move DOWN one half-screen + (depress the control key and type d) + + C-u Move UP one half-screen + (depress the control key and type u) + +* EMACS-NOTICE: C-u is normally used in Emacs for UNIVERSAL-ARGUMENT. + You can in most cases use DIGIT-ARGUMENT instead. + +>>> Now type C-d (control d) and C-u (control u) to move down and back up. + +When you are done reading a screen, you are expected to type C-d to move +down to the next screen. You must remember to type C-d throughout the +tutorial. + +To move the cursor line by line, or character by character, use the +four keys 'h', 'j', 'k', and 'l'. + + 'h' Move left one character + 'j' Move down one line + 'k' Move up one line + 'l' Move right one character + +You will notice that these keys are in a straight line on the +keyboard. Study the diagram below showing the function of h, j, k, l. + + UP + ....... ....... ....... ....... + : : : : : : : : + LEFT : h : : j : : k : : l : RIGHT + :.....: :.....: :.....: :.....: + + DOWN + +>>> Now type 'j' or 'k' a few times to bring the cursor to this line. + +>>> Try moving off the right end of a line using 'l' . Notice that +>>> vi will not allow you to move off the end of the line using 'l' . +>>> Likewise, you cannot use 'h' and 'l' on a blank line. + +>>> Try moving past the bottom of the screen using 'j' . Notice how +>>> how the screen scrolls downward. + +>>> Now practice using 'k' to move up, and 'h' to move left. + + +DELETION +-------- +To delete characters and lines, use 'x' and 'd''d'. + + 'x' X-OUT one character + 'd''d' DELETE one line + +To undo your changes, use 'u'. + + 'u' UNDO last change only + +>>> Delete this SCRAP line. Move to this line with 'j' or 'k' , now type 'd''d' . +>>> Try undoing the deletion with 'u' . + +>>> Move to this line and x-out the Y's with 'x' : "whY ask whY?" + +>>> Try undoing the deletion with 'u' . Try typing 'u' several times. +>>> Notice that 'u' only undoes the last change. + +* EMACS-NOTICE: In Viper you can use the repeat command '.' (just a dot) + to undo more changes. This goes in both direction, ie undoing and + redoing. Typing just 'u' changes direction. + +Here are more lines on which to practice deleting and undoing (use: 'd''d' 'x' 'u' ) + + Emacs is a nice creation. Emacs is a nice creation. + Emacs is a nice creation. Emacs is a nice creation. + Emacs is a nice creation. Emacs is a nice creation. + + +QUIT COMMANDS +------------- +(DO NOT QUIT the tutorial at this time.) + +To quit a file without saving any changes you have made (for instance, +with the 'd''d' or 'x' commands) use :q! . To quit and save your +changes, use 'Z''Z' . When you are editing your own files, you normally +use 'Z''Z' to quit. + + :q! QUIT without saving changes + (type a colon, then the letter q, then an + exclamation point, and press RETURN) + + 'Z''Z' Exit and save any changes + (type capital Z, twice) + + + +INSERTION +--------- +You enter insert mode with 'i' or 'o' . Anything you type during insert +mode appears on the screen. When you are done inserting, press ESC +to exit insert mode. Type C-[ (control [ ), if you do not have an ESC key. + + 'o' OPEN a line for inserting text + 'i' INSERT starting at the cursor + + ESC ESCAPE from insert mode + +During insert mode, use your erase character (usually backspace or +delete) to delete mistakes. The characters you delete will remain on +the screen until you press ESC. + +>>> Insert your name and phone number below the next blank line. To do this: +>>> Open a line below using 'o' . +>>> Type your first and last name. Press RETURN. +>>> Then type your phone number and press ESC. +>>> Use 'x' to erase part of your phone number. + +>>> Type the date below your phone number. To do this: +>>> Open another line using 'o' . +>>> Type the date and press ESC. + +>>> Type 'u' to undo the insertion. + +>>> Insert a nickname between your first and last names, using 'i'. To do this: +>>> Move the cursor to the spot between your names using 'h', 'j', 'k', 'l'. +>>> Press 'i' . +>>> Type the nickname, use DELETE or BACKSPACE to erase any typos. +>>> Then press ESC. + +On some computers, a line may be longer than the width of the screen. +This means that a very long line may appear to be two lines on the +screen. This happens when you keep typing without pressing RETURN at +the edge of the screen. To avoid any confusion when you're inserting +text, be sure to press RETURN before reaching the right edge of the +screen. + + +SUMMARY +------- +These are the vi commands you should know after tutorial #1: + + C-d Move DOWN one half-screen + (depress the control key and type d) + + C-u Move UP one half-screen + (depress the control key and type u) + + 'h' Move left one character + 'j' Move down one line + 'k' Move up one line + 'l' Move right one character + + 'd''d' DELETE one line + 'x' X-OUT one character + + 'u' UNDO last change + + :q! QUIT without saving changes + (type a colon, then the letter q, then an + exclamation point, and press RETURN) + + 'Z''Z' Exit and save any changes + (type capital Z, twice) + + 'o' OPEN a line for inserting text + 'i' INSERT starting at the cursor + + ESC ESCAPE from insert mode + + +You are now prepared to do simple editing on your own files. Practice +using vi for a few days. Then take the second vi tutorial to learn +more powerful and useful vi commands. + +Copyright (c) 1992 Jill Kliger and Wesley Craig. All Rights Reserved. diff --git a/emacs.d/nxhtml/etc/viper-tut/2moving b/emacs.d/nxhtml/etc/viper-tut/2moving new file mode 100644 index 0000000..8e4148e --- /dev/null +++ b/emacs.d/nxhtml/etc/viper-tut/2moving @@ -0,0 +1,269 @@ +Viper tutorial #2: Moving Through Files Efficiently + +This lesson lasts 15-20 minutes. The material taught here is used in +tutorial #3: Cutting and Pasting. Lines which begin with >>> mark +exercises you should try. When you want to exit this tutorial type 'Z''Z'. + + +WORDS +----- +There are many ways to move from one word to another. Consider these: + + 'w' Move to the beginning of the next WORD + 'e' Move to the END of the next word + 'b' Move BACK to the beginning to the previous word + +For 'w', 'e', and 'b', a word is delimited by any non-alphanumeric +character. The capitalized versions, 'W', 'E', and 'B', also move from word +to word. The difference is that for 'W', 'E', and 'B', a word is delimited +by any blank space. + +>>> Try out 'w', 'b', 'e', on the lines provided below. +>>> Next practice using 'B', 'W', 'b', 'E' on the lines provided below. + + EX-PER-IMENT on these lines;test moving back &forth. + EX-PER-IMENT on these lines;test moving back &forth. + + +ON THE LINE +----------- +You can move immediately to any point on the current line. + + '$' Move to the end of the line + '^' Move to the first non-white character on the line + + '0' Move to the first column on the line (column zero) + #'|' Move to an exact column on the line (column #) e.g. 5| 12| + +>>> Experiment with '$' and '^' on the line provided below. Notice +>>> that '^' moves to the first non-white character, not the beginning. + + This is a PRACTICE LINE. There is white space at the front. END + +'0' (zero) will always take you to the far left edge of the screen. + +#'|' (number vertical-bar) is for moving to an explicit column on a line. +Just type any number 1-80 and press | . For example: 5| 20| 30| +Note that you can't move beyond the last column on a line. + + +FINDING CHARACTERS +------------------ +Often you want to move to a specific letter or character on a line. + + 'f' char FIND the next occurrence of char on the line + 't' char Move 'TIL the next occurrence of char on the line + + 'F' char FIND the previous occurrence of char on the line + 'T' char Move 'TIL the previous occurrence of char on the line + + ';' Repeat the last f, t, F, or T + ',' Reverse the last f, t, F, or T + +'f' and 'F' land on the character. 't' and 'T' land next to the character. +'f' and 't' move forward, while 'F' and 'T' move backward. + +If the specified character is not on the line, vi will beep. + +>>> Move to the beginning of the line below, and try out these commands: +>>> 'f'e 'f'E ';' ';' ',' ',' 't'@ 'T'P 't'e 't'E ',' ';' ',' ';' + + "PRACTICE line?" "Each and Every?" "Find thE char@cter and move to it.END + + +MATCHING +-------- +vi has a handy way to determine if (), {}, and [] pairs match up. + + '%' Move to matching () or {} or [] + +>>> On the practice lines below, move your cursor over a (,),{,},[, or ]. +>>> Then type '%' . + + [TRY THIS. ((Whether) the pairs match up is the question.) [One] + pair is incomplete]. Can you tell {which one? ]} END + + +WINDOW POSITIONS +---------------- +You can move the cursor to the top, middle, or bottom of the vi window. + + 'H' Move to the HIGHEST position in the window + 'M' Move to the MIDDLE position in the window + 'L' Move to the LOWEST position in the window + +>>> Try out these commands: type H then M and L and then M again. + + +MARKING LOCATIONS +----------------- +You can mark positions in the file and return to them. + + 'm' char MARK this location and name it char + ''' char (quote character) return to line named char + '''''' (quote quote) return from last movement + +char can be any lower case letter, a-z. A mark persists until you: + 1) use the same char to mark another location + or 2) delete the marked line + +>>> Move to this line and type ma to mark it a +>>> Move to this line and type mb to mark it b +>>> Move to this line and type mz to mark it z +>>> Type 'a to return to line a +>>> Type 'b to return to line b +>>> Type 'z to return to line z + +Certain commands can move you large distances. These commands cause +your last position to be remembered in the special mark named ' (quote). +To move to this special mark, just type '' (quote quote). + +>>> Try this: 'b to return to line b, and then '' to return here. + + +GO TO A LINE +------------ + + 'G' GO to the last line in the file + #'G' GO to line #. (e.g., 3G , 5G , 124G ) + +Read these directions carefully: +>>> Type '1''G' to go to the top of the file, and then '''''' (quote quote) +>>> to return here. +>>> Now try 'G' to go to the end of the file, and then '''''' to return here. + + +BLOCKS OF TEXT +-------------- +It is often convenient to move through files jumping from one block of +text to the next. To do this use braces and parentheses: + + '{' (left brace) Move to the beginning of a paragraph + '}' (right brace) Move to the end of a paragraph + + '(' (left paren) Move to the beginning of a sentence + ')' (right paren) Move to the beginning of the next sentence + +>>> Experiment with '}' and '{' on the two paragraphs provided below. +>>> Note that paragraphs are separated by a blank line. + + EXPERIMENT on this first paragraph. The quick brown fox jumped + over the seven lazy dogs. The fox must have been very large to + jump over seven dogs! + + EXPERIMENT on this second paragraph. The quick brown dog + jumped over the seven lazy foxes. The dog didn't have to be nearly + as large, since foxes aren't too big. + +>>> Try out ')' and '(' on the two paragraphs provided above. +>>> Notice that sentences are separated by two blank spaces. + +C programmers find it useful to move by sections, since sections may be +delimited by a left brace in the first column. By placing the opening +brace of a C subroutine in the first column, you can move to the top of +the next subroutine, using '[''[' and ']'']' . + + '[''[' Move to the beginning of a section + ']'']' Move to the end of a section + +Note that if vi does not find a left brace at the far left, it will +move to the top or bottom of the file. + +>>> Now try ']'']' then ']'']' and '[''[' on the subroutines provided below: + +main() +{ + helloworld(); +} + +helloworld() +{ + printf( "Hello world\n" ); +} + + +SEARCHING +--------- +This enables you to jump to the next occurrence of a string in a file. +To initially find the string use: + + '/'string Find string looking forward + '?'string Find string looking backward + +To find additional occurrences of the string type: + + 'n' Repeat last / or ? command + 'N' Reverse last / or ? command + +vi may search past the bottom of the file and then start again at the top. +(Or, vi may search past the top and then start again at the bottom.) + +>>> You are going to search for a string, find the next three +>>> occurrences. Then flip directions and find the string until you +>>> return to this location. To do this: +>>> Type '/''t''h''e' then press RETURN. +>>> Type 'n' three times. +>>> Type 'N' until you return to this location. + +* EMACS-NOTICE: Emacs has very powerful SEARCH-COMMANDS which you may + want to use in parallell to those above. One of the first you want + to try is probably C-s (ISEARCH-FORWARD). + + +SUMMARY +------- + + 'w' Move to the beginning of the next WORD + 'e' Move to the END of the next word + 'b' Move BACK to the beginning to the previous word + + '$' Move to the end of the line + '^' Move to the first non-white character on the line + + '0' Move to the first column on the line (column zero) + #'|' Move to an exact column on the line (column #) e.g. 5| 12| + + 'f' char FIND the next occurrence of char on the line + 't' char Move 'TIL the next occurrence of char on the line + + 'F' char FIND the previous occurrence of char on the line + 'T' char Move 'TIL the previous occurrence of char on the line + + ';' Repeat the last f, t, F, or T + ',' Reverse the last f, t, F, or T + + '%' Show matching () or {} or [] + + 'H' Move to the HIGHEST position in the window + 'M' Move to the MIDDLE position in the window + 'L' Move to the LOWEST position in the window + + 'm' char MARK this location and name it char + ''' char (quote character) return to line named char + '''''' (quote quote) return from last movement + + 'G' GO to the last line in the file + #'G' GO to line #. (e.g., 3G , 5G , 175G ) + + '{' (left brace) Move to the beginning of a paragraph + '}' (right brace) Move to the end of a paragraph + + '(' (left paren) Move to the beginning of a sentence + ')' (right paren) Move to the beginning of the next sentence + + '[''[' Move to the beginning of a section + ']'']' Move to the end of a section + + '/'string Find string looking forward + '?'string Find string looking backward + + 'n' Repeat last / or ? command + 'N' Reverse last / or ? command + +You should now be able to move around files very efficiently. These +commands are especially useful if you are using vi over a slow modem. +Practice the material in this lesson for a few days and then take +either the third vi tutorial to learn how to copy, cut, and paste, or +the forth vi tutorial to learn additional insertion techniques. + +Copyright (c) 1992 Jill Kliger and Wesley Craig. All Rights Reserved. diff --git a/emacs.d/nxhtml/etc/viper-tut/3cutpaste b/emacs.d/nxhtml/etc/viper-tut/3cutpaste new file mode 100644 index 0000000..6d531d9 --- /dev/null +++ b/emacs.d/nxhtml/etc/viper-tut/3cutpaste @@ -0,0 +1,318 @@ +Viper tutorial #3: Copying, Cutting, and Pasting + +This lesson lasts 15-20 minutes. This tutorial assumes full knowledge +of tutorial #1, and familiarity with tutorial #2. Lines which begin +with >>> mark exercises you should try. + +When you want to exit this tutorial type 'Z''Z' to exit and save your +changes. Or type :q! to exit without saving changes. +Remember that typing u will UNDO your last change. + + +CUTTING TEXT +------------ +The delete command can be combined with any of the movement commands +taught throughout tutorial #2. The resulting command is of the form: + + 'd'movement DELETE to where the movement command specifies + +Consider the following examples: + + 'd''w' DELETE to the beginning of the next WORD + 'd''$' DELETE to the end of the line + 'd'')' DELETE to the beginning of the next sentence + 'd''t'e DELETE 'TIL the next e + 'd''d' DELETE a line (dd is a special case of the d command) + +>>> Experiment with 'd''w' 'd''$' 'd'')' 'd''t'e 'd''d' on the paragraph provided below: + + PRACTICE here. Now is the time for all good users to learn the + editor. The quick brown fox jumped over the seven lazy fish. Now + is the time for all good users to learn the editor. The quick + brown computer jumped over the seven lazy users. END PRACTICE + +* EMACS-NOTICE: In Viper you can also use 'r' and 'R' for Emacs region and + Viper line extended region. This is very convenient together with + CUA-MODE where the region is visible (it is usually called the + selected text or something similar in other applications). + + +PASTING TEXT +------------ +When text is deleted it is put into a buffer which contains the most +recently deleted text. To paste the contents of this buffer elsewhere +in the file use the p or P command. + + 'P' (upper p) PUT the contents of the buffer before the cursor + 'p' (lower p) PUT the contents of the buffer after the cursor + +>>> Try this sequence of commands on the practice lines below: +>>> 'd''d' to delete one line +>>> 'j' to move down a line +>>> 'p' (lower p) to PUT the deleted text after the cursor +>>> '}' to move to the end of the paragraph +>>> 'P' (upper p) to PUT the deleted text before the cursor + + PRACTICE line. Cut and Paste this line to the bottom of the + paragraph. Here is some filler, feel free to cut and paste the + text in this practice region. Remember that u undoes the last + action. END OF PRACTICE + +>>> Try this sequence of commands at the beginning of a word: +>>> 'd''w' 'w' 'P' + +The fastest way to swap two letters is to type: 'x''p' + +>>> Use xp to correct the misspelled words below: + + PRACTICE. Thier weird quiet recieved an inconvenient shriek. + Thier belief is that to recieve grief from nieghbors outwieghs + all else. Biege skies lead to wierd science. END. + + +NUMBERING +--------- +Consider cutting and pasting 3 words. Based on previous exercises you +would type 'd''w' , move to the new location, and type 'p' , and repeat +this procedure twice more. There is an easier way to do this: + +>>> Using the practice lines below, try the following sequence of commands: +>>> Move to the beginning of the first sentence. +>>> Type 'd''3''w' to DELETE 3 WORDS. +>>> Type 'w' to move ahead one WORD. +>>> Type 'P' (upper p) to PUT the three words before the cursor. + + PRACTICE Numbering vi commands is easy to do. Now is the time for + all good users to learn the editor. The quick brown fox jumped + over the seven lazy dogs. Numbering vi commands is easy to do. + Now is the time for all good users to learn the editor. END PRACTICE + +>>> Type 'd''2''d' to DELETE 2 lines, using the practice paragraph above. +>>> Move to the top of the paragraph. +>>> Type 'p' (lower p) to PUT the two lines after of the cursor. + +Numbering also works for movement commands. + +>>> Now try '4''w' to move ahead 4 WORDs, on the lines provided above. +>>> Then use '3''b' to move BACK 3 words. + +When you type '4''w' THINK "4 words", when you type d4w think "delete 4 +words". In general, we can write + + #movement repeat movement # times + d#movement DELETE to where the #movement command specifies + + +COPYING TEXT +------------ +The YANK command works just like the DELETE command, except 'y' is used +instead of 'd' . + + 'y'movement YANK to where the movement command specifies + +YANK and DELETE are identical except that YANK only copies the specified +text into the buffer. + +>>> Try this sequence of commands on the practice lines below: +>>> 'y''y' to YANK a line (yy is a special case of the y command) +>>> '3''j' to move down 3 lines +>>> 'p' (lower p) to PUT the yanked text after the cursor + + PRACTICE line. Copy and Paste this line to the bottom of the + paragraph. Here is some filler, feel free to copy and paste the + text in this practice region. Remember that u undoes the last + action. END OF PRACTICE + +Please note that copy, cutting, and pasting large blocks of text may +significantly alter the tutorial file. Remember that you can always get +a new copy of the tutorial file and that u UNDOes your last change. + +Here are some examples which show the similarity between y and d . + + 'y''w' YANK to the beginning of the next WORD + 'y''$' YANK to the end of the line + 'y'')' YANK to the beginning of the next sentence + 'y''t'e YANK 'TIL the next e + 'y''y' YANK a line + +Here are some more examples using commands from tutorial #2. + + 'y''L' YANK from here to the lowest point of the window + 'y''/'and YANK from here to the word "and" + 'y''2''}' YANK 2 paragraphs + 'y''''a YANK from here to the marked line "a" (mark line first) + +>>> Experiment with 'y''w' 'y''t'e 'y''4''w' 'y''2''}' 'y''3''y' and 'y''$' on the paragraph +>>> provided below. Copy text AND use 'p' or 'P' to paste it. + + PRACTICE line. Copy and Paste this line to the bottom of the + paragraph. Here is some filler, feel free to copy and paste + the text in this practice region. Remember that u undoes the + last action. END OF PRACTICE + + +NUMBERED BUFFERS +---------------- +In all of the previous pasting exercises you've used the "un-named" +buffer. The un-named buffer contains the text you most recently cut or +copied. When you make a new cut or copy, the old contents of the +un-named buffer are moved to one of the "numbered" buffers. The +buffers are numbered 1-9. Each time you cut or copy text, + + vi saves your current cut or copy in a buffer #1 + vi saves your 2nd to last cut or copy in a buffer #2 + The cut or copy before that is saved in a buffer #3 ... + vi saves your 8th oldest cut or copy in a buffer #8 + vi saves your 9th oldest cut or copy in a buffer #9 + +Note that buffer #1 is the same as the un-named buffer. Here's how to +paste from the numbered buffers: + + "#P (upper p) PUT contents of buffer # before the cursor + "#p (lower p) PUT contents of buffer # after the cursor + +For example: + + "1p PUT buffer 1 after the cursor + "7p PUT buffer 7 after the cursor + +>>> Delete this 1st line with dd +>>> Delete this 2nd line with dd +>>> Delete this 3rd block with d2d +>>> (2nd half of block 3) +>>> Delete this 4th block with dd +>>> Now type "1p "2p "3p "4p + +If you are using vi and have made accidental deletions, just PUT the +contents of each numbered buffer to recover the deleted text. + + +NAMED BUFFERS +------------- +vi maintains the un-named and numbered buffers automatically. You can +maintain your own buffers named a-z. That is, you can cut or copy text +into buffer x and later paste the text from buffer x. + + '"'aDELETE DELETE text into buffer a + "aYANK YANK text into buffer a + "aPUT PUT text from buffer a + +Note, don't actually type 'DELETE', 'YANK', or 'PUT'; type one of the +DELETE commands, YANK commands, or PUT commands. See the examples below: + + "ad} DELETE paragraph into buffer a + "by3y YANK 3 lines into buffer b + "cy200G YANK to line 200 into buffer c + "dp PUT buffer d after the cursor + "zP PUT buffer z before the cursor + +The contents of a named buffer are lost if: + 1) you store new text in a buffer with the same name + or 2) you quit vi (using 'Z''Z' or :q! ) + +>>> Delete this START line into buffer a by typing "add +>>> Paste buffer a by typing "ap + +>>> Delete this INTERMEDIATE line into buffer b by typing "bdd +>>> Paste buffer b by typing "bp + +To put new material into buffer a +>>> Delete this FINAL line into buffer a by typing "add +>>> Paste buffer a by typing "ap + + +SAVING WITHOUT QUITTING +----------------------- +With ZZ you save changes and kill the current buffer. (In vi you also +exit with 'Z''Z'.) With :w you can save and not quit vi. It is a safe +practice to save changes to a file regularly. This reduces re-typing +in the event your computer crashes. + + :w WRITE contents of the file (without quitting) + (type a colon, type w , then press the RETURN key) + +>>> Try :w now. Note the message at the bottom of the screen. + + +PASTING BETWEEN FILES +--------------------- + +* EMACS-NOTICE: In Emacs there are no problems editing several + files. You can however do it in the more complicated vi way below if + you really want to ;-) + +This is an extremely useful procedure in vi. Only one new command is +required for pasting between files, the EDIT command + + :e filename Begin EDITing the file called "filename" + +The EDIT command allows you to edit another file without quitting vi. +This is useful since named buffers are lost when you quit vi. + +Let's say you want to copy 6 lines from the file called "3temp" into +this file which is named "3cutpaste": +(Note that "3temp" has already been created for you) + + 1) WRITE "3cutpaste". vi will not allow :w (press RETURN) + you to edit another file without first + saving any changes you've made. + + 2) EDIT "3temp" without quitting vi. :e 3temp (press RETURN) + + 3) YANK 6 lines from "3temp". "ay6y + + 4) Return to "3cutpaste". :e 3cutpaste (press RETURN) + + 5) PUT from buffer a "ap + +Note that the un-named and numbered buffers are lost when the EDIT +command is used. Only named buffers are preserved with EDIT. + +>>> Follow the 5-step procedure outlined above. Don't be concerned +>>> with remembering all 5 steps, the instructions are repeated in +>>> "3temp". Paste the text from "3temp" near this line of this file, +>>> "3cutpaste". + +You can use this 5-step procedure on any two files, with any cutting or +copying action (here, y6y is the example). + + +SUMMARY +------- + + #movement repeat movement # times + * EMACS-NOTICE: You may also use 'r' or 'R' in Viper. + + 'd'movement DELETE to where "movement" command specifies + 'd'#movement DELETE to where the #movement command specifies + (e.g. 'd''w' 'd''3''w' ) + + 'y'movement YANK to where "movement" command specifies + 'y'#movement YANK to where the #movement command specifies + (e.g. 'y''w' 'y''3''w' ) + + 'P' (upper p) PUT the contents of the buffer before the cursor + 'p' (lower p) PUT the contents of the buffer after the cursor + + '"'#P (upper p) PUT contents of buffer # before the cursor + '"'#p (lower p) PUT contents of buffer # after the cursor + (e.g. '"''2''p' '"''7''P' ) + + '"'aDELETE DELETE text into buffer a + '"'aYANK YANK text into buffer a + '"'aPUT PUT text from named buffer a + (Note, don't actually type 'DELETE', 'YANK', or 'PUT'; + type one of the DELETE commands, YANK commands, or PUT + commands, e.g. '"''a''d''}' '"''b''y''3''y' '"''c''y''2''0''0''G' '"''d''p' '"''z''P' ) + + :w WRITE contents of the file (without quitting) + (type a colon, type w , then press the RETURN key) + + :e filename Begin EDITing the file called "filename" + + +You are now prepared to handle all cutting, copying and pasting tasks +which may arise. If you practice what you've learned you'll find editing +in vi to be fast and convenient. + +Copyright (c) 1992 Jill Kliger and Wesley Craig. All Rights Reserved. diff --git a/emacs.d/nxhtml/etc/viper-tut/4inserting b/emacs.d/nxhtml/etc/viper-tut/4inserting new file mode 100644 index 0000000..ab2c6a5 --- /dev/null +++ b/emacs.d/nxhtml/etc/viper-tut/4inserting @@ -0,0 +1,180 @@ +Viper tutorial #4: Insertion Techniques + +This lesson lasts 5-10 minutes. This tutorial assumes full knowledge +of tutorial #1, and familiarity with tutorial #2. Lines which begin +with >>> mark exercises you should try. When you want to exit this +tutorial type 'Z''Z' . + + +SIMPLE INSERTION +---------------- +You spend most of your time in vi inserting text. As you might expect, +there are several commands to begin insertion. + + 'o' OPEN a line below the cursor + 'O' OPEN a line above the cursor + + 'i' INSERT starting before the cursor + 'I' INSERT at the beginning of the line + + 'a' APPEND starting after the cursor + 'A' APPEND at the end of the line + +Remember to type ESC to leave insert mode. If you don't have an ESC key +type C-[ (control [ ). + + ESC ESCAPE from insert mode + +>>> Move the cursor to this line. Type 'O' , enter your name. Press ESC. +>>> Next type 'o' , enter the date. Press ESC. + +Note that 'O' opens the line above and puts you in insert mode, +while 'o' opens the line below and also puts you in insert mode. + +>>> Type 'a' on any line above, enter your name. Press ESC. Do the +>>> same for 'A'. + +>>> Read the following. Your goal is to take the sentence fragment below: + + BROWN FOX OVER THE SEVEN LAZY + +>>> and convert it to + + THE QUICK BROWN FOX JUMPED OVER THE SEVEN LAZY DOGS. + +>>> To do this type: +>>> 'I' to insert THE QUICK (then press ESC) +>>> move the cursor to after the X in FOX +>>> 'a' to insert JUMPED (then press ESC) +>>> 'A' to insert DOGS. (then press ESC) +>>> Now move to the sentence fragment and make the changes outlined above. + + +JOINING LINES +------------- +Often it is convenient to join two short lines into one line. There +are several ways to do this. The easiest is the J command. Other +methods will be explored in tutorial #5. + + 'J' JOIN two lines + +>>> Go to the first line in the block below. Type J. Type J again. + + Example: NOW IS THE TIME + the walrus said + TO THINK OF MANY THINGS + +In the event that joining lines creates a line which exceeds the width +of the screen, you can break the line by typing i and pressing RETURN. + + +SUBSTITUTING TEXT +----------------- +Substituting combines the delete command and the insert command into a +single step. + + #'s' SUBSTITUTE for # characters + #'S' SUBSTITUTE for # whole lines + + +In order to substitute text you have to know how much text you want to +delete. Consider the following examples: + + '3''s' SUBSTITUTE the next 3 characters for what will be typed + '7''s' SUBSTITUTE the next 7 characters for what will be typed + +>>> Change the SAMPLE DEFINITION below. To do this: +>>> move the cursor to the T in TWO +>>> type '3's +>>> type FOUR then press ESC + + SAMPLE DEFINITION: A string quartet is defined to be + a group of TWO musicians. + + +REPLACING TEXT +-------------- +The 'r' and 'R' commands allow you to directly type over existing text. + + 'r' REPLACE character (NO need to press ESC) + 'R' enter over-type mode + +>>> Correct each of the TYPOs on the sample line below. To do this: +>>> move the cursor to the misspelled character +>>> type 'r' +>>> type the correct character + + SAMPLE: maintanence conveniance complience applience dilagent + +>>> Use the over-type command, 'R' , on the sample line above. +>>> Type 'R' then type the name of a local restaurant. Press ESC. + + +CHANGING TEXT +------------- +The change command combines insertion, deletion, and the movement +commands. (Recall that the movement commands were taught in tutorial +#2.) Change is probably more useful than replace or substitute. The +general form of the change command is: + + 'c'movement CHANGE to where the movement command specifies + +Consider the following examples: + + 'c''w' CHANGE to the beginning of the next WORD + 'c''$' CHANGE to the end of the line + 'c'')' CHANGE to the beginning of the next sentence + 'c''t'e CHANGE 'TIL the next e + 'c''3''w' CHANGE the next 3 WORDS + 'c''c' CHANGE a line (cc is a special case of the c command) + 'c''}' CHANGE to the end of the paragraph + +>>> Follow these steps: +>>> 1. move to the desired location in the practice paragraph below +>>> 2. type 'c''w' (change to the beginning of the next WORD) +>>> 3. type your name +>>> 4. press ESC + + PRACTICE here. Now is the time for all good users to learn the + editor. The quick red fox jumped over the seven lazy fish. Now + is the time for all good users to learn the editor. The quick + brown computer jumped over the seven lazy users. END PRACTICE + +>>> Experiment by using a variety of options for step #2. Try +>>> out 'c''$' 'c'')' 'c''t'e 'c''3''w' 'c''c' 'c''}' on the practice paragraph above. + +Note that the change command follows the same pattern as the delete +and yank commands which were explored in tutorial #3. + + +SUMMARY +------- + + 'o' OPEN a line below the cursor + 'O' OPEN a line above the cursor + + 'i' INSERT starting before the cursor + 'I' INSERT at the beginning of the line + + 'a' APPEND starting after the cursor + 'A' APPEND at the end of the line + + ESC ESCAPE from insert mode + + 'J' JOIN two lines + + #'s' SUBSTITUTE for # characters + #'S' SUBSTITUTE for # whole lines + + 'r' REPLACE character (NO need to press ESC) + 'R' enter over-type mode + + 'c'movement CHANGE to where the movement commands specifies + (e.g. 'c''3''w' 'c''$' 'c''c' ) + + +These commands should improve your ability to insert text efficiently. +The next tutorials deal with advanced commands and tricks which can +further speed up your editing. + +Copyright (c) 1992 Jill Kliger and Wesley Craig. All Rights Reserved. diff --git a/emacs.d/nxhtml/etc/viper-tut/5tricks b/emacs.d/nxhtml/etc/viper-tut/5tricks new file mode 100644 index 0000000..c1e414e --- /dev/null +++ b/emacs.d/nxhtml/etc/viper-tut/5tricks @@ -0,0 +1,229 @@ +Viper tutorial #5: Tricks and Timesavers + +This lesson lasts 10-15 minutes. You should have a strong +understanding of tutorials #1-3 before working through these timesaving +techniques. Lines which begin with >>> mark exercises you should +try. When you want to exit this tutorial type 'Z''Z' . + + +CASE CONVERSION +--------------- +When you want to change an upper-case character to a lower-case +character (or lower-case to upper-case) there is a single command which +does both: + + '~' (tilde) Convert case of current character + +>>> Move the cursor to be OVER the first character in the example +>>> line below. Press '~' until you have changed the case of the +>>> entire line. ( '~' will advance to the right automatically). + + bOB WENT TO pARIS, fRANCE, TO SEE THE #1 CYCLING EVENT. end. + +Note that '~' only affects alphabetic characters. + + +UNDOING +------- +* EMACS-NOTICE: Uppercase U does the same thing as lowercase u in + Viper so this part of the tutorial which was about U has been + removed. + + +REPEAT LAST COMMAND +------------------- +Often you want to make the same change at multiple locations in the +file. To help accomplish this, vi remembers your previous action. + + '.' (dot) repeat last change + +>>> Go through the example below changing "FISH" to "TOAD": +>>> Go to the "F" in the first instance of "FISH" +>>> To change the word: type 'c''w' then type TOAD then press ESC +>>> Move the cursor to "F" in the second occurence of "FISH" +>>> Type '.' (dot) +>>> Move the cursor to "F" in the final occurence of "FISH" +>>> Type '.' (dot) +>>> Now move the cursor to each occurence of "CROW"; Type '.' (dot) + + EXAMPLE: The FISH fed the cat. The CROW fed the cat. Example + text is FISH to make interesting. The man fed the CROW. The + worm fed the FISH. Example text is hard to make CROW. END. + +>>> Go through the example above deleting all occurences of "TOAD": +>>> Move to the beginning of the EXAMPLE paragraph above. +>>> Type '/''T''O''A''D' and press RETURN (recall tutorial #2) +>>> Delete the word by typing 'd''w' +>>> Type 'n' to move to the next occurence of "TOAD" +>>> Type '.' (dot) to repeat the dw command +>>> Use 'n''.' to delete the remaining "TOAD"s + +Note that '.' only repeats changes, not cursor movements. + +* EMACS-NOTICE: In Emacs '.' also repeat undo and redo. + +* EMACS-NOTICE: Emacs KEYBOARD-MACROS are very powerful for repeating + whole sequences of keyboard commands. + + +WINDOW ACTIONS +-------------- +You are already familiar with the C-u (depress the control key and +type u) and C-d commands from tutorial #1. + + C-d Move DOWN one half-screen + C-u Move UP one half-screen + +There are several related commands: + + C-f Move FORWARD one full-screen + C-b Move BACKWARD one full-screen + + C-e Move the window down one line without moving cursor + C-y Move the window up one line without moving cursor + +The C-e and C-y commands may seem obscure; however, notice that on +the keyboard, e and y are close to d and u respectively. This +should help you remember that C-e moves DOWN, and C-y moves UP. + +Recall the 'H' 'M' 'L' (HIGH MIDDLE LOW) window commands from Tutorial 2. +Consider a scenario where you want to yank from the current line to a +line near the top of the window. You could use C-e and C-y to +position the text in the window before you use the yH command. + +The 'z' command also moves the window without moving your cursor: + + 'z' Position the current line to top of window + 'z''.' Position the current line to middle of window + 'z''-' Position the current line to bottom of window + +>>> Move to this line. Type 'z' and press RETURN. Notice that +>>> this text and the cursor have moved to the top of the window. +>>> Try 'z''-' and 'z''.' also. + + +FILE AND DISPLAY CONTROL +------------------------ + +* EMACS-NOTICE: In vi C-g shows the status of the current file, but + C-g in Emacs in most situation stops what Emacs is doing. To get + information about the current file you can use C-c C-g instead when + Viper is in vi state. + +* EMACS-NOTICE: In vi C-l refreshes the screen, but C-l in Emacs calls + the command recenter. + + +SUSPENDING VI +------------- +* EMACS-NOTICE: In vi C-z suspends vi. However in Viper C-z is by + default the VIPER-TOGGLE-KEY. To suspend or iconify Emacs use C-x + C-z. + + +BANG COMMAND +------------ +* EMACS-NOTICE: Emacs has builtin commands to sort etc. + +The exclamation point, '!' (aka BANG), command allows you to feed text +to any Unix command. The output of the Unix command replaces the +original text. Here is a useful Unix command to use from within vi: + + !}fmt Format the paragraph, joining and filling lines to + produce output lines of up to 72 characters + +>>> Move to the example paragraph below. Type !}fmt and press +>>> RETURN. Notice the paragraph will be reformatted such that +>>> the lines are of approximately equal length. + + EXAMPLE: + So we grow together, + Like to a double cherry, seeming parted, + But yet an union in partition; + Two lovely berries moulded on one stem; + So, with two seeming bodies, but one heart; + END. + +Another useful command is: + + !}sort Sort lines of a paragraph alphabetically + +>>> Move to the example text below. Type !}sort and press RETURN. + + OBERON king of the fairies. + PUCK or Robin Goodfellow. + HERMIA daughter to Egeus, in love with Lysander. + HELENA in love with Demetrius. + LYSANDER in love with Hermia. + DEMETRIUS in love with Hermia. + +Remember, any Unix command may be used this way. + + +SHIFTING TEXT +------------- +It is possible to shift large blocks of text right and left with the '>' +and '<' commands. + + '>'movement Shift right to where the movement command specifies + '<'movement Shift left to where the movement command specifies + +These commands work like the 'd' command. For example: + + '>''}' Shift right to the end of the paragraph + '<''}' Shift left to the end of the paragraph + '>''>' Shift the current line right + '<''<' Shift the current line left + +>>> Move the cursor to the first line of the paragraph below. +>>> Type '>''>' and '<''<' to shift the line back and forth. Next +>>> try '>''}' to shift the paragraph to the right, then '<''}' to shift +>>> it left, then type '.' until all four lines start at the left edge. + + THIS IS THE FIRST LINE OF EXAMPLE TEXT + IS + EXAMPLE + TEXT END + + +SUMMARY +------- + + '~' (tilde) Convert case of current character + + 'U' * EMACS-NOTICE: Same as lowercase u undo in Viper. + + '.' (dot) repeat last change + + C-d Move DOWN one half-screen + (depress the control key and type d) + + C-u Move UP one half-screen + (depress the control key and type u) + + C-f Move FORWARD one full-screen + C-b Move BACKWARD one full-screen + + C-e Move the window down one line without moving cursor + C-y Move the window up one line without moving cursor + + 'z' Position the current line to top of window + 'z''.' Position the current line to middle of window + 'z''-' Position the current line to bottom of window + + C-c C-g Show status of current file + C-l Recenter + + '!'}fmt Format the paragraph, joining and filling lines to + produce output lines of up to 72 characters + + '!'}sort Sort lines of a paragraph alphabetically + + '>'movement Shift right to where the movement command specifies + '<'movement Shift left to where the movement command specifies + + +These commands should significantly speed up your editing. Have a nice +day. Tutorial 6 contains even more nifty commands. + +Copyright (c) 1992 Jill Kliger and Wesley Craig. All Rights Reserved. diff --git a/emacs.d/nxhtml/etc/viper-tut/README b/emacs.d/nxhtml/etc/viper-tut/README new file mode 100644 index 0000000..dd39176 --- /dev/null +++ b/emacs.d/nxhtml/etc/viper-tut/README @@ -0,0 +1,49 @@ +Viper Tutorial README +===================== + +To install the Viper tutorial you must do two things: + +1) Put viper-tutorial.el in your Emacs load-path. + +2) Put the tutorial files (0intro, 1basics etc) in subdirectory to + where you put viper-tutorial.el with the name viper-tut. + Optionally you may put those file any where and customize the + option viper-tut-directory. + +The tutorial is started by + + M-x viper-tutorial RET + + + + +Viper tutorial is based on vilearn version 1.0 which was downloaded +from http://vilearn.org. + +Below is the original readme from vilearn. Note that the only part +that applies here is the copyright notice. + +--------------------------------------------------- +This is version 1.0 of vilearn, an interactive vi tutorial. + +Copyright (c) 1992 Jill Kliger and Wesley Craig. All Rights Reserved. + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, +provided that the above copyright notice appears in all copies and that +the copyright notice, this permission notice, and an explicit record of +any local changes, appear in supporting documentation. This software +is supplied as is without expressed or implied warranties of any kind. + +To install, edit the Makefile and type + + make install + +We have a mailing list, vilearn-admins@terminator.rs.itd.umich.edu. To +be added to the list, send mail to vilearn-admins-request. The list is +intended to discuss the tutorials, coordinate projects relating to +them, and provide help to those who may need it. + +Wesley Craig & Jill Kliger +1317 Packard Street vilearn@terminator.rs.itd.umich.edu +Ann Arbor, MI 48104 diff --git a/emacs.d/nxhtml/etc/viper-tut/outline b/emacs.d/nxhtml/etc/viper-tut/outline new file mode 100644 index 0000000..9eaa3e4 --- /dev/null +++ b/emacs.d/nxhtml/etc/viper-tut/outline @@ -0,0 +1,131 @@ + +* +* tutorial 1 FILENAME: 1basics +* basics +* + +C-d down +C-u up + +h left +j down +k up +l right + +dd delete line +x x-out character + +u undo + +:q! force quit +ZZ good bye + +o open +i insert + +* +* tutorial 2 FILENAME: 2moving +* objects, finds & marks +* + +w W word +b B back +e E end + +{ } paragraph +( ) sentence +[ ] sections + +$ end of line +^ first non-white +| column +0 beginning of line + +f F find +t T to +; repeat fFtT +, reverse fFtT + +G goto + +H high +M middle +L low + +n N next +? / regex + +% match + +' move to marked line +m mark + + +* +* tutorial 3 FILENAME: 3cutpaste & 3temp +* +* cutting, pasting, buffers, and files +* + +d D deletes +y Y yank +p P put +" buffer +:e edit + +* +* tutorial 4 FILENAME: 4inserting +* insertion +* + +a A append +c C change +i I insert +o O open +r R replace +s S substitute + +J join + +* +* tutorial 5 FILENAME: 5tricks +* tricks +* + +~ case + +u U undo + +. do again + +C-b back +C-f forward +C-e down line +C-y up line +z zero + +C-g status +C-l refresh + +C-z suspend + +C-t pop tag proposed +C-] follow tag proposed + +! command + +< > shift + +* +* tutorial 6 PROPOSED +* commands from hell +* + +: colon commands +Q quit +C-r redraw +@ execute buffer as macro +& like :& + +C-t shift (insert) +C-d unshift (insert) -- cgit v1.2.3-54-g00ecf