Django, org
* Added nxhtml, mostly for django support. * Changed some org settings.
|
@ -1,3 +1,4 @@
|
||||||
(add-to-list 'load-path "~/.emacs.d/elisp")
|
(add-to-list 'load-path "~/.emacs.d/elisp")
|
||||||
(add-to-list 'load-path "~/.emacs.d/naquadah-theme")
|
(add-to-list 'load-path "~/.emacs.d/naquadah-theme")
|
||||||
(add-to-list 'load-path "~/.emacs.d/auto-complete-clang")
|
(add-to-list 'load-path "~/.emacs.d/auto-complete-clang")
|
||||||
|
(add-to-list 'load-path "~/.emacs.d/nxhtml")
|
||||||
|
|
|
@ -3,6 +3,8 @@
|
||||||
(add-to-list 'auto-mode-alist '("\\.cs$" . csharp-mode))
|
(add-to-list 'auto-mode-alist '("\\.cs$" . csharp-mode))
|
||||||
(add-to-list 'auto-mode-alist '("\\.bat$" . batch-mode))
|
(add-to-list 'auto-mode-alist '("\\.bat$" . batch-mode))
|
||||||
(add-to-list 'auto-mode-alist '("\\.lua$" . lua-mode))
|
(add-to-list 'auto-mode-alist '("\\.lua$" . lua-mode))
|
||||||
|
(add-to-list 'auto-mode-alist '("\\.php[345]?$" . php-mode))
|
||||||
|
(add-to-list 'auto-mode-alist '("\\.js\\(on\\)?$" . javascript-mode))
|
||||||
|
|
||||||
(add-to-list 'file-coding-system-alist '("\\.vala$" . utf-8))
|
(add-to-list 'file-coding-system-alist '("\\.vala$" . utf-8))
|
||||||
(add-to-list 'file-coding-system-alist '("\\.vapi$" . utf-8))
|
(add-to-list 'file-coding-system-alist '("\\.vapi$" . utf-8))
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
(require 'minimap)
|
(require 'minimap)
|
||||||
(require 'naquadah-theme)
|
(require 'naquadah-theme)
|
||||||
;(require 'auto-complete-clang)
|
;(require 'auto-complete-clang)
|
||||||
|
(load "autostart.el")
|
||||||
|
|
||||||
(autoload 'vala-mode
|
(autoload 'vala-mode
|
||||||
"vala-mode" "A Major mode for editing Vala files" t)
|
"vala-mode" "A Major mode for editing Vala files" t)
|
||||||
|
@ -14,3 +15,5 @@
|
||||||
"batch-mode" "A Major mode for editing Batch files" t)
|
"batch-mode" "A Major mode for editing Batch files" t)
|
||||||
(autoload 'lua-mode
|
(autoload 'lua-mode
|
||||||
"lua-mode" "A Major mode for editing Lua files" t)
|
"lua-mode" "A Major mode for editing Lua files" t)
|
||||||
|
(autoload 'php-mode
|
||||||
|
"php-mode" "A Major mode for editing PHP files" t)
|
||||||
|
|
|
@ -1,12 +1,25 @@
|
||||||
(require 'org-crypt)
|
(require 'org-crypt)
|
||||||
|
|
||||||
(setq org-todo-keywords '((sequence "TODO" "IN PROGRESS" "|" "DONE")))
|
(setq org-todo-keywords '((sequence "TODO(t)"
|
||||||
|
"IN PROGRESS(p)"
|
||||||
|
"WAITING(w@/!)"
|
||||||
|
"|"
|
||||||
|
"DONE(d!/!)"
|
||||||
|
"CANCELLED(c@/!)")))
|
||||||
(setq org-ditaa-jar-path "/usr/share/java/ditaa/ditaa-0_9.jar")
|
(setq org-ditaa-jar-path "/usr/share/java/ditaa/ditaa-0_9.jar")
|
||||||
(setq org-babel-load-languages '((ditaa . t)))
|
(setq org-babel-load-languages '((ditaa . t)))
|
||||||
(setq org-confirm-babel-evaluate nil)
|
(setq org-confirm-babel-evaluate nil)
|
||||||
(setq org-tags-exclude-from-inheritance '("crypt"))
|
(setq org-tags-exclude-from-inheritance '("crypt"))
|
||||||
(setq org-crypt-key "33E8CC1CC4")
|
(setq org-crypt-key "33E8CC1CC4")
|
||||||
; GPG key used for encryption
|
; GPG key used for encryption
|
||||||
|
(setq org-use-fast-todo-selection t)
|
||||||
|
|
||||||
|
(setq org-todo-keyword-faces
|
||||||
|
'(("TODO" :foreground "red" :weight bold)
|
||||||
|
("IN PROGRESS" :foreground "yellow" :weight bold)
|
||||||
|
("DONE" :foreground "forest green" :weight bold)
|
||||||
|
("WAITING" :foreground "orange" :weight bold)
|
||||||
|
("CANCELLED" :foreground "orangered" :weight bold)))
|
||||||
|
|
||||||
(global-set-key "\C-cl" 'org-store-link)
|
(global-set-key "\C-cl" 'org-store-link)
|
||||||
(global-set-key "\C-cc" 'org-capture)
|
(global-set-key "\C-cc" 'org-capture)
|
||||||
|
|
1
emacs.d/30-django-mumamo.el
Normal file
|
@ -0,0 +1 @@
|
||||||
|
(setq mumamo-background-colors nil)
|
291
emacs.d/elisp/php-mode.el
Normal file
|
@ -0,0 +1,291 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<!-- ViewVC :: http://www.viewvc.org/ -->
|
||||||
|
<head>
|
||||||
|
<title>SourceForge.net Repository - [php-mode] Index of /</title>
|
||||||
|
<meta name="generator" content="ViewVC 1.1.6" />
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||||
|
<meta name="description" content="The world's largest development and download repository of Open Source code and applications" />
|
||||||
|
<meta name="keywords" content="Open Source, Development, Developers, Projects, Downloads, OSTG, VA Software, SF.net, SourceForge" />
|
||||||
|
<title>SourceForge.net Repository - php-mode Index of /</title>
|
||||||
|
<link rel="shortcut icon" href="http://a.fsdn.com/con/img/favicon.ico" />
|
||||||
|
<link rel="stylesheet" href="http://a.fsdn.com/con/css/sf.min.css?1256826599" type="text/css" />
|
||||||
|
<link rel="stylesheet" href="/viewvc-static/styles.css" type="text/css" />
|
||||||
|
<style type="text/css"> .short-head #hd { background-position:0 -247px; } #hd .yui-b { height:47px; margin:0 auto; position:relative; text-align:left; width:74.923em; } pre.vc_log { margin:1em; }</style>
|
||||||
|
|
||||||
|
<!-- BEGIN: AdSolution-Tag 4.2: Global-Code [PLACE IN HTML-HEAD-AREA!] -->
|
||||||
|
<!-- DoubleClick Random Number -->
|
||||||
|
<script language="JavaScript" type="text/javascript">
|
||||||
|
dfp_ord=Math.random()*10000000000000000;
|
||||||
|
dfp_tile = 1;
|
||||||
|
</script>
|
||||||
|
<!-- End DoubleClick Random Number -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
var google_page_url = 'http://sourceforge.net/projects/php-mode/';
|
||||||
|
var sourceforge_project_name = 'php-mode';
|
||||||
|
var sourceforge_project_description = '';
|
||||||
|
</script>
|
||||||
|
<!-- END: AdSolution-Tag 4.2: Global-Code -->
|
||||||
|
<!-- after META tags -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
|
||||||
|
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body class="short-head">
|
||||||
|
<!--[if IE 7]><div id="ie7only"><![endif]-->
|
||||||
|
<!--[if IE 6]><div id="ie6only"><![endif]-->
|
||||||
|
<!--[if IE]><div id="ieonly"><![endif]-->
|
||||||
|
<div id="doc3">
|
||||||
|
<div id="hd">
|
||||||
|
<div class="yui-b">
|
||||||
|
<div class="yui-gc">
|
||||||
|
<div class="yui-u first">
|
||||||
|
<a href="http://sourceforge.net/" class="logo">Find and develop open source software</a>
|
||||||
|
</div>
|
||||||
|
<div class="yui-u">
|
||||||
|
<div class="search">
|
||||||
|
<form action="http://sourceforge.net/search/" method="get" name="searchform" id="searchform">
|
||||||
|
<input type="hidden" name="type_of_search" value="soft" />
|
||||||
|
<input type="text" class="text clear hint" name="words" id="words" value="enter keyword" />
|
||||||
|
<span class="yui-button yui-push-button default"><span class="first-child"><button type="submit" value="Search">Search</button></span></span>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="bd" class="inner-bd">
|
||||||
|
<div id="doc4" class="yui-t6">
|
||||||
|
<div id="breadcrumbs">
|
||||||
|
|
||||||
|
<a href="http://sourceforge.net/">SourceForge.net</a>
|
||||||
|
> <a href="http://sourceforge.net/softwaremap/">Find Software</a>
|
||||||
|
> <a href="http://sourceforge.net/projects/php-mode/">php-mode</a>
|
||||||
|
> SCM Repositories
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
> php-mode
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div id="project_nav_container">
|
||||||
|
<h1>SCM Repositories - <a href="http://sourceforge.net/projects/php-mode">php-mode</a></h1>
|
||||||
|
</div>
|
||||||
|
<hr class="clear">
|
||||||
|
<div class="yui-b">
|
||||||
|
<div id="fad83">
|
||||||
|
<!-- DoubleClick Ad Tag -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
//<![CDATA[
|
||||||
|
document.write('<script src="http://ad.doubleclick.net/adj/ostg.sourceforge/pg_viewvc_p88_shortrec;pg=viewvc;tile='+dfp_tile+';tpc=php-mode;ord='+dfp_ord+'?" type="text/javascript"><\/script>');
|
||||||
|
dfp_tile++;
|
||||||
|
//]]>
|
||||||
|
</script>
|
||||||
|
<!-- End DoubleClick Ad Tag -->
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="yui-main">
|
||||||
|
<div class="yui-b">
|
||||||
|
|
||||||
|
<!-- you may insert repository access instructions here -->
|
||||||
|
|
||||||
|
<div class="sfBox">
|
||||||
|
<table class="auto">
|
||||||
|
<tr><td>Files shown:</td><td><strong>0</strong>
|
||||||
|
|
||||||
|
|
||||||
|
</td></tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>Directory revision:</td>
|
||||||
|
<td><a href="/viewvc/php-mode?view=revision&revision=97" title="Revision 97">97</a> (of <a href="/viewvc/php-mode?view=revision" title="Revision 97">97</a>)</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>Sticky Revision:</td>
|
||||||
|
<td><form method="get" action="/viewvc/php-mode" style="display: inline">
|
||||||
|
<div style="display: inline">
|
||||||
|
<input type="hidden" name="orig_pathtype" value="DIR"/><input type="hidden" name="orig_view" value="dir"/><input type="hidden" name="orig_path" value=""/><input type="hidden" name="view" value="redirect_pathrev"/>
|
||||||
|
|
||||||
|
<input type="text" name="pathrev" value="" size="6"/>
|
||||||
|
|
||||||
|
<input type="submit" value="Set" />
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
|
||||||
|
</table>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<hr class="clear">
|
||||||
|
<div>
|
||||||
|
<p><a name="dirlist"></a></p>
|
||||||
|
|
||||||
|
<table cellspacing="1" cellpadding="2">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th class="vc_header_sort" colspan="2">
|
||||||
|
<a href="/viewvc/php-mode/?sortdir=down#dirlist">File</a>
|
||||||
|
|
||||||
|
<img class="vc_sortarrow" alt=""
|
||||||
|
width="13" height="13"
|
||||||
|
src="/viewvc-static/images/up.png" />
|
||||||
|
|
||||||
|
</th>
|
||||||
|
<th class="vc_header">
|
||||||
|
<a href="/viewvc/php-mode/?sortby=rev#dirlist">Rev.</a>
|
||||||
|
|
||||||
|
</th>
|
||||||
|
<th class="vc_header">
|
||||||
|
<a href="/viewvc/php-mode/?sortby=date#dirlist">Age</a>
|
||||||
|
|
||||||
|
</th>
|
||||||
|
<th class="vc_header">
|
||||||
|
<a href="/viewvc/php-mode/?sortby=author#dirlist">Author</a>
|
||||||
|
|
||||||
|
</th>
|
||||||
|
|
||||||
|
<th class="vc_header">
|
||||||
|
<a href="/viewvc/php-mode/?sortby=log#dirlist">Last log entry</a>
|
||||||
|
|
||||||
|
</th>
|
||||||
|
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
|
||||||
|
|
||||||
|
<tr class="vc_row_even">
|
||||||
|
<td colspan="2">
|
||||||
|
|
||||||
|
<a name="branches" href="/viewvc/php-mode/branches/" title="View directory contents">
|
||||||
|
|
||||||
|
<img src="/viewvc-static/images/dir.png" alt="" class="vc_icon" />
|
||||||
|
branches/</a>
|
||||||
|
|
||||||
|
</td>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<td> <a href="/viewvc/php-mode/branches/?view=log" title="View directory revision log"><strong>3</strong></a></td>
|
||||||
|
|
||||||
|
<td> 7 years</td>
|
||||||
|
<td> turadg</td>
|
||||||
|
|
||||||
|
|
||||||
|
<td> Initial import.
|
||||||
|
</td>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr class="vc_row_odd">
|
||||||
|
<td colspan="2">
|
||||||
|
|
||||||
|
<a name="tags" href="/viewvc/php-mode/tags/" title="View directory contents">
|
||||||
|
|
||||||
|
<img src="/viewvc-static/images/dir.png" alt="" class="vc_icon" />
|
||||||
|
tags/</a>
|
||||||
|
|
||||||
|
</td>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<td> <a href="/viewvc/php-mode/tags/?view=log" title="View directory revision log"><strong>94</strong></a></td>
|
||||||
|
|
||||||
|
<td> 2 years</td>
|
||||||
|
<td> ashawley</td>
|
||||||
|
|
||||||
|
|
||||||
|
<td> Remove typo tag.</td>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr class="vc_row_even">
|
||||||
|
<td colspan="2">
|
||||||
|
|
||||||
|
<a name="trunk" href="/viewvc/php-mode/trunk/" title="View directory contents">
|
||||||
|
|
||||||
|
<img src="/viewvc-static/images/dir.png" alt="" class="vc_icon" />
|
||||||
|
trunk/</a>
|
||||||
|
|
||||||
|
</td>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<td> <a href="/viewvc/php-mode/trunk/?view=log" title="View directory revision log"><strong>97</strong></a></td>
|
||||||
|
|
||||||
|
<td> 2 years</td>
|
||||||
|
<td> ashawley</td>
|
||||||
|
|
||||||
|
|
||||||
|
<td> Require add-log to avoid byte compilation warning
|
||||||
|
for add-log-current-defun-head…</td>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<hr />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<p style="margin:0;"><a href="/viewvc/php-mode/?view=tar">Download GNU tarball</a></p>
|
||||||
|
|
||||||
|
|
||||||
|
<br />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="ft">
|
||||||
|
<div class="yui-b">
|
||||||
|
<div class="yui-gb">
|
||||||
|
<div class="yui-u first" style="text-align: center;"> <a href="http://p.sf.net/sourceforge/support">SourceForge Help<a/> </div>
|
||||||
|
<div class="yui-u" style="text-align: center;"> <strong><a href="/viewvc-static/help_rootview.html">ViewVC Help</a></strong> </div>
|
||||||
|
<div class="yui-u" style="text-align: center;"> <a href="http://viewvc.tigris.org/">Powered by ViewVC 1.1.6</a> </div>
|
||||||
|
</div>
|
||||||
|
<p class="copyright">Copyright © 2010 <a title="Network which provides and promotes Open Source software downloads, development, discussion and news." href="http://geek.net">Geeknet, Inc.</a> All rights reserved. <a href="http://p.sf.net/sourceforge/terms">Terms of Use</a></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!--[if IE]></div><![endif]-->
|
||||||
|
<!--[if IE 6]></div><![endif]-->
|
||||||
|
<!--[if IE 7]></div><![endif]-->
|
||||||
|
<script type="text/javascript">
|
||||||
|
var pageTracker = _gat._getTracker("UA-32013-37");
|
||||||
|
pageTracker._setDomainName(".sourceforge.net");
|
||||||
|
pageTracker._trackPageview();
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
||||||
|
|
46
emacs.d/nxhtml/README.txt
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
To install nXhtml put this in your .emacs:
|
||||||
|
|
||||||
|
(load "YOUR-PATH-TO/nxhtml/autostart.el")
|
||||||
|
|
||||||
|
where autostart.el is the file in the same directory as this
|
||||||
|
readme.txt file.
|
||||||
|
|
||||||
|
Note 1: If you are using Emacs+EmacsW32 then nXhtml is already
|
||||||
|
installed.
|
||||||
|
|
||||||
|
Note 2: If you are using Emacs 22 then you need to install nXml
|
||||||
|
separately. (It is included in Emacs 23.)
|
||||||
|
|
||||||
|
Note 3: You may optionally also byte compile nXhtml from the nXhtml
|
||||||
|
menu (recommended).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Files that are now in Emacs' development (CVS/Bazaar) repository
|
||||||
|
================================================================
|
||||||
|
|
||||||
|
Some files that were previously distributed with nXhtml are now in
|
||||||
|
Emacs' development repository. Distributing them also with nXhtml is
|
||||||
|
a bad idea since that can lead to that the wrong file is loaded. They
|
||||||
|
are therefore not distributed with nXhtml anymore.
|
||||||
|
|
||||||
|
Instead you can (if you do not have the files in your Emacs) in many
|
||||||
|
cases use the version from the repository. To do that you can
|
||||||
|
currently start from
|
||||||
|
|
||||||
|
http://cvs.savannah.gnu.org/viewvc/emacs/emacs/lisp/
|
||||||
|
|
||||||
|
Files you can download and use this way are for example
|
||||||
|
|
||||||
|
js.el (JavaScript, formerly called espresso.el)
|
||||||
|
htmlfontify.el
|
||||||
|
|
||||||
|
If you do that I suggest that you put these files in a special
|
||||||
|
directory and add that to load-path in your .emacs and make that
|
||||||
|
adding to load-path depend on your Emacs version so that they will not
|
||||||
|
be loaded when you have upgraded your Emacs.
|
||||||
|
|
||||||
|
Note that if you want to use nxml-mode (and it is not in your Emacs)
|
||||||
|
you should not download it from Emacs' development directory. Instead go to
|
||||||
|
|
||||||
|
http://www.thaiopensource.com/download/
|
137
emacs.d/nxhtml/alts/find-recursive-orig.el
Normal file
|
@ -0,0 +1,137 @@
|
||||||
|
;; find-recursive.el -- Find files recursively into a directory
|
||||||
|
;;
|
||||||
|
;; Copyright (C) 2001 Ovidiu Predescu
|
||||||
|
;;
|
||||||
|
;; Author: Ovidiu Predescu <ovidiu@cup.hp.com>
|
||||||
|
;; Date: March 26, 2001
|
||||||
|
;;
|
||||||
|
;; 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
|
||||||
|
;; of the License, 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; if not, write to the Free Software
|
||||||
|
;; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
|
;;
|
||||||
|
;; Setup: put this file in your Lisp path and add the following line in
|
||||||
|
;; your .emacs:
|
||||||
|
;;
|
||||||
|
;; (require 'find-recursive)
|
||||||
|
;;
|
||||||
|
|
||||||
|
(require 'cl)
|
||||||
|
|
||||||
|
(defcustom find-recursive-exclude-files '(".*.class$" ".*~$" ".*.elc$")
|
||||||
|
"List of regular expressions of files to be excluded when recursively searching for files."
|
||||||
|
:type '(repeat (string :tag "File regexp")))
|
||||||
|
|
||||||
|
(defun find-file-recursively (file-regexp directory)
|
||||||
|
(interactive "sFile name to search for recursively: \nDIn directory: ")
|
||||||
|
(let ((directory (if (equal (substring directory -1) "/")
|
||||||
|
directory
|
||||||
|
(concat directory "/")))
|
||||||
|
(matches
|
||||||
|
(find-recursive-filter-out
|
||||||
|
find-recursive-exclude-files
|
||||||
|
(find-recursive-directory-relative-files directory "" file-regexp))))
|
||||||
|
(cond ((eq (length matches) 0) (message "No file(s) found!"))
|
||||||
|
((eq (length matches) 1)
|
||||||
|
(find-file (concat directory (car matches))))
|
||||||
|
(t
|
||||||
|
(run-with-timer 0.001 nil
|
||||||
|
(lambda ()
|
||||||
|
(dispatch-event
|
||||||
|
(make-event 'key-press '(key tab)))))
|
||||||
|
(let ((file (completing-read "Choose file: "
|
||||||
|
(mapcar 'list matches)
|
||||||
|
nil t)))
|
||||||
|
(if (or (eq file nil) (equal file ""))
|
||||||
|
(message "No file selected.")
|
||||||
|
(find-file (concat directory file))))))))
|
||||||
|
|
||||||
|
(defun find-recursive-directory-relative-files (directory
|
||||||
|
relative-directory
|
||||||
|
file-regexp)
|
||||||
|
(let* ((full-dir (concat directory "/" relative-directory))
|
||||||
|
(matches
|
||||||
|
(mapcar
|
||||||
|
(function (lambda (x)
|
||||||
|
(concat relative-directory x)))
|
||||||
|
(find-recursive-filter-out '(nil)
|
||||||
|
(directory-files full-dir nil
|
||||||
|
file-regexp nil t))))
|
||||||
|
(inner
|
||||||
|
(mapcar
|
||||||
|
(function
|
||||||
|
(lambda (dir)
|
||||||
|
(find-recursive-directory-relative-files directory
|
||||||
|
(concat relative-directory
|
||||||
|
dir "/")
|
||||||
|
file-regexp)))
|
||||||
|
(find-recursive-filter-out '(nil "\\." "\\.\\.")
|
||||||
|
(directory-files full-dir nil ".*"
|
||||||
|
nil 'directories)))))
|
||||||
|
(mapcar (function (lambda (dir) (setq matches (append matches dir))))
|
||||||
|
inner)
|
||||||
|
matches))
|
||||||
|
|
||||||
|
(defun find-recursive-filter-out (remove-list list)
|
||||||
|
"Remove all the elements in *remove-list* from *list*"
|
||||||
|
(if (eq list nil)
|
||||||
|
nil
|
||||||
|
(let ((elem (car list))
|
||||||
|
(rest (cdr list)))
|
||||||
|
(if (some
|
||||||
|
(lambda (regexp)
|
||||||
|
(if (or (eq elem nil) (eq regexp nil))
|
||||||
|
nil
|
||||||
|
(not (eq (string-match regexp elem) nil))))
|
||||||
|
remove-list)
|
||||||
|
(find-recursive-filter-out remove-list rest)
|
||||||
|
(cons elem (find-recursive-filter-out remove-list rest))))))
|
||||||
|
|
||||||
|
(defvar find-recursive-running-xemacs (string-match "XEmacs\\|Lucid" emacs-version))
|
||||||
|
|
||||||
|
(if find-recursive-running-xemacs
|
||||||
|
nil
|
||||||
|
(defadvice directory-files (after
|
||||||
|
directory-files-xemacs
|
||||||
|
(dirname &optional full match nosort files-only)
|
||||||
|
activate)
|
||||||
|
"Add an additional argument, FILES-ONLY to the list of arguments
|
||||||
|
for GNU Emacs. If the symbol is t, then only the files in the
|
||||||
|
directory will be returned. If FILES-ONLY is nil, then both files and
|
||||||
|
directories are selected. If FILES-ONLY is not nil and not t, then
|
||||||
|
only sundirectories are returned."
|
||||||
|
(setq ad-return-value
|
||||||
|
(cond ((null files-only) ad-return-value)
|
||||||
|
((eq files-only t)
|
||||||
|
(find-recursive-remove-if (lambda (f)
|
||||||
|
(file-directory-p
|
||||||
|
(concat dirname "/" f)))
|
||||||
|
ad-return-value))
|
||||||
|
(t
|
||||||
|
(find-recursive-remove-if (lambda (f)
|
||||||
|
(not (file-directory-p
|
||||||
|
(concat dirname "/" f))))
|
||||||
|
ad-return-value)))))
|
||||||
|
|
||||||
|
(defun find-recursive-remove-if (func list)
|
||||||
|
"Removes all elements satisfying FUNC from LIST."
|
||||||
|
(let ((result nil))
|
||||||
|
(while list
|
||||||
|
(if (not (funcall func (car list)))
|
||||||
|
(setq result (cons (car list) result)))
|
||||||
|
(setq list (cdr list)))
|
||||||
|
(nreverse result))))
|
||||||
|
|
||||||
|
(global-set-key [(control x) (meta f)] 'find-file-recursively)
|
||||||
|
|
||||||
|
(provide 'find-recursive)
|
712
emacs.d/nxhtml/alts/javascript-mozlab.el
Normal file
|
@ -0,0 +1,712 @@
|
||||||
|
;;; javascript.el --- Major mode for editing JavaScript source text
|
||||||
|
|
||||||
|
;; Copyright (C) 2006 Karl Landström
|
||||||
|
|
||||||
|
;; Author: Karl Landström <kland@comhem.se>
|
||||||
|
;; Maintainer: Karl Landström <kland@comhem.se>
|
||||||
|
;; Version: 2.0 Beta 8
|
||||||
|
;; Date: 2006-12-26
|
||||||
|
;; Keywords: languages, oop
|
||||||
|
|
||||||
|
;; This file 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 file 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 GNU Emacs; see the file COPYING. If not, write to
|
||||||
|
;; the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||||
|
;; Boston, MA 02111-1307, USA.
|
||||||
|
|
||||||
|
;;; Commentary:
|
||||||
|
;;
|
||||||
|
;; The main features of this JavaScript mode are syntactic
|
||||||
|
;; highlighting (enabled with `font-lock-mode' or
|
||||||
|
;; `global-font-lock-mode'), automatic indentation and filling of
|
||||||
|
;; comments.
|
||||||
|
;;
|
||||||
|
;; This package has (only) been tested with GNU Emacs 21.4 (the latest
|
||||||
|
;; stable release).
|
||||||
|
;;
|
||||||
|
;; Installation:
|
||||||
|
;;
|
||||||
|
;; Put this file in a directory where Emacs can find it (`C-h v
|
||||||
|
;; load-path' for more info). Then add the following lines to your
|
||||||
|
;; Emacs initialization file:
|
||||||
|
;;
|
||||||
|
;; (add-to-list 'auto-mode-alist '("\\.js\\'" . javascript-mode))
|
||||||
|
;; (autoload 'javascript-mode "javascript" nil t)
|
||||||
|
;;
|
||||||
|
;; General Remarks:
|
||||||
|
;;
|
||||||
|
;; This mode assumes that block comments are not nested inside block
|
||||||
|
;; comments and that strings do not contain line breaks.
|
||||||
|
;;
|
||||||
|
;; Exported names start with "javascript-" whereas private names start
|
||||||
|
;; with "js-".
|
||||||
|
;;
|
||||||
|
;; Changes:
|
||||||
|
;;
|
||||||
|
;; See javascript.el.changelog.
|
||||||
|
|
||||||
|
;;; Code:
|
||||||
|
|
||||||
|
(require 'cc-mode)
|
||||||
|
(require 'font-lock)
|
||||||
|
(require 'newcomment)
|
||||||
|
|
||||||
|
(defgroup javascript nil
|
||||||
|
"Customization variables for `javascript-mode'."
|
||||||
|
:tag "JavaScript"
|
||||||
|
:group 'languages)
|
||||||
|
|
||||||
|
(defcustom javascript-indent-level 4
|
||||||
|
"Number of spaces for each indentation step."
|
||||||
|
:type 'integer
|
||||||
|
:group 'javascript)
|
||||||
|
|
||||||
|
(defcustom javascript-auto-indent-flag t
|
||||||
|
"Automatic indentation with punctuation characters. If non-nil, the
|
||||||
|
current line is indented when certain punctuations are inserted."
|
||||||
|
:type 'boolean
|
||||||
|
:group 'javascript)
|
||||||
|
|
||||||
|
|
||||||
|
;; --- Keymap ---
|
||||||
|
|
||||||
|
(defvar javascript-mode-map nil
|
||||||
|
"Keymap used in JavaScript mode.")
|
||||||
|
|
||||||
|
(unless javascript-mode-map
|
||||||
|
(setq javascript-mode-map (make-sparse-keymap)))
|
||||||
|
|
||||||
|
(when javascript-auto-indent-flag
|
||||||
|
(mapc (lambda (key)
|
||||||
|
(define-key javascript-mode-map key 'javascript-insert-and-indent))
|
||||||
|
'("{" "}" "(" ")" ":" ";" ",")))
|
||||||
|
|
||||||
|
(defun javascript-insert-and-indent (key)
|
||||||
|
"Run command bound to key and indent current line. Runs the command
|
||||||
|
bound to KEY in the global keymap and indents the current line."
|
||||||
|
(interactive (list (this-command-keys)))
|
||||||
|
(call-interactively (lookup-key (current-global-map) key))
|
||||||
|
(indent-according-to-mode))
|
||||||
|
|
||||||
|
|
||||||
|
;; --- Syntax Table And Parsing ---
|
||||||
|
|
||||||
|
(defvar javascript-mode-syntax-table
|
||||||
|
(let ((table (make-syntax-table)))
|
||||||
|
(c-populate-syntax-table table)
|
||||||
|
|
||||||
|
;; The syntax class of underscore should really be `symbol' ("_")
|
||||||
|
;; but that makes matching of tokens much more complex as e.g.
|
||||||
|
;; "\\<xyz\\>" matches part of e.g. "_xyz" and "xyz_abc". Defines
|
||||||
|
;; it as word constituent for now.
|
||||||
|
(modify-syntax-entry ?_ "w" table)
|
||||||
|
|
||||||
|
table)
|
||||||
|
"Syntax table used in JavaScript mode.")
|
||||||
|
|
||||||
|
|
||||||
|
(defun js-re-search-forward-inner (regexp &optional bound count)
|
||||||
|
"Auxiliary function for `js-re-search-forward'."
|
||||||
|
(let ((parse)
|
||||||
|
(saved-point (point-min)))
|
||||||
|
(while (> count 0)
|
||||||
|
(re-search-forward regexp bound)
|
||||||
|
(setq parse (parse-partial-sexp saved-point (point)))
|
||||||
|
(cond ((nth 3 parse)
|
||||||
|
(re-search-forward
|
||||||
|
(concat "\\([^\\]\\|^\\)" (string (nth 3 parse)))
|
||||||
|
(save-excursion (end-of-line) (point)) t))
|
||||||
|
((nth 7 parse)
|
||||||
|
(forward-line))
|
||||||
|
((or (nth 4 parse)
|
||||||
|
(and (eq (char-before) ?\/) (eq (char-after) ?\*)))
|
||||||
|
(re-search-forward "\\*/"))
|
||||||
|
(t
|
||||||
|
(setq count (1- count))))
|
||||||
|
(setq saved-point (point))))
|
||||||
|
(point))
|
||||||
|
|
||||||
|
|
||||||
|
(defun js-re-search-forward (regexp &optional bound noerror count)
|
||||||
|
"Search forward but ignore strings and comments. Invokes
|
||||||
|
`re-search-forward' but treats the buffer as if strings and
|
||||||
|
comments have been removed."
|
||||||
|
(let ((saved-point (point))
|
||||||
|
(search-expr
|
||||||
|
(cond ((null count)
|
||||||
|
'(js-re-search-forward-inner regexp bound 1))
|
||||||
|
((< count 0)
|
||||||
|
'(js-re-search-backward-inner regexp bound (- count)))
|
||||||
|
((> count 0)
|
||||||
|
'(js-re-search-forward-inner regexp bound count)))))
|
||||||
|
(condition-case err
|
||||||
|
(eval search-expr)
|
||||||
|
(search-failed
|
||||||
|
(goto-char saved-point)
|
||||||
|
(unless noerror
|
||||||
|
(error (error-message-string err)))))))
|
||||||
|
|
||||||
|
|
||||||
|
(defun js-re-search-backward-inner (regexp &optional bound count)
|
||||||
|
"Auxiliary function for `js-re-search-backward'."
|
||||||
|
(let ((parse)
|
||||||
|
(saved-point (point-min)))
|
||||||
|
(while (> count 0)
|
||||||
|
(re-search-backward regexp bound)
|
||||||
|
(when (and (> (point) (point-min))
|
||||||
|
(save-excursion (backward-char) (looking-at "/[/*]")))
|
||||||
|
(forward-char))
|
||||||
|
(setq parse (parse-partial-sexp saved-point (point)))
|
||||||
|
(cond ((nth 3 parse)
|
||||||
|
(re-search-backward
|
||||||
|
(concat "\\([^\\]\\|^\\)" (string (nth 3 parse)))
|
||||||
|
(save-excursion (beginning-of-line) (point)) t))
|
||||||
|
((nth 7 parse)
|
||||||
|
(goto-char (nth 8 parse)))
|
||||||
|
((or (nth 4 parse)
|
||||||
|
(and (eq (char-before) ?/) (eq (char-after) ?*)))
|
||||||
|
(re-search-backward "/\\*"))
|
||||||
|
(t
|
||||||
|
(setq count (1- count))))))
|
||||||
|
(point))
|
||||||
|
|
||||||
|
|
||||||
|
(defun js-re-search-backward (regexp &optional bound noerror count)
|
||||||
|
"Search backward but ignore strings and comments. Invokes
|
||||||
|
`re-search-backward' but treats the buffer as if strings and
|
||||||
|
comments have been removed."
|
||||||
|
(let ((saved-point (point))
|
||||||
|
(search-expr
|
||||||
|
(cond ((null count)
|
||||||
|
'(js-re-search-backward-inner regexp bound 1))
|
||||||
|
((< count 0)
|
||||||
|
'(js-re-search-forward-inner regexp bound (- count)))
|
||||||
|
((> count 0)
|
||||||
|
'(js-re-search-backward-inner regexp bound count)))))
|
||||||
|
(condition-case err
|
||||||
|
(eval search-expr)
|
||||||
|
(search-failed
|
||||||
|
(goto-char saved-point)
|
||||||
|
(unless noerror
|
||||||
|
(error (error-message-string err)))))))
|
||||||
|
|
||||||
|
|
||||||
|
(defun js-continued-var-decl-list-p ()
|
||||||
|
"Return non-nil if point is inside a continued variable declaration
|
||||||
|
list."
|
||||||
|
(interactive)
|
||||||
|
(let ((start (save-excursion (js-re-search-backward "\\<var\\>" nil t))))
|
||||||
|
(and start
|
||||||
|
(save-excursion (re-search-backward "\n" start t))
|
||||||
|
(not (save-excursion
|
||||||
|
(js-re-search-backward
|
||||||
|
";\\|[^, \t][ \t]*\\(/[/*]\\|$\\)" start t))))))
|
||||||
|
|
||||||
|
|
||||||
|
;; --- Font Lock ---
|
||||||
|
|
||||||
|
(defun js-inside-param-list-p ()
|
||||||
|
"Return non-nil if point is inside a function parameter list."
|
||||||
|
(condition-case err
|
||||||
|
(save-excursion
|
||||||
|
(up-list -1)
|
||||||
|
(and (looking-at "(")
|
||||||
|
(progn (backward-word 1)
|
||||||
|
(or (looking-at "function")
|
||||||
|
(progn (backward-word 1) (looking-at "function"))))))
|
||||||
|
(error nil)))
|
||||||
|
|
||||||
|
|
||||||
|
(defconst js-function-heading-1-re
|
||||||
|
"^[ \t]*function[ \t]+\\(\\w+\\)"
|
||||||
|
"Regular expression matching the start of a function header.")
|
||||||
|
|
||||||
|
(defconst js-function-heading-2-re
|
||||||
|
"^[ \t]*\\(\\w+\\)[ \t]*:[ \t]*function\\>"
|
||||||
|
"Regular expression matching the start of a function entry in
|
||||||
|
an associative array.")
|
||||||
|
|
||||||
|
(defconst js-keyword-re
|
||||||
|
(regexp-opt '("abstract" "break" "case" "catch" "class" "const"
|
||||||
|
"continue" "debugger" "default" "delete" "do" "else"
|
||||||
|
"enum" "export" "extends" "final" "finally" "for"
|
||||||
|
"function" "goto" "if" "implements" "import" "in"
|
||||||
|
"instanceof" "interface" "native" "new" "package"
|
||||||
|
"private" "protected" "public" "return" "static"
|
||||||
|
"super" "switch" "synchronized" "this" "throw"
|
||||||
|
"throws" "transient" "try" "typeof" "var" "void"
|
||||||
|
"volatile" "while" "with"
|
||||||
|
"let") 'words)
|
||||||
|
"Regular expression matching any JavaScript keyword.")
|
||||||
|
|
||||||
|
(defconst js-basic-type-re
|
||||||
|
(regexp-opt '("boolean" "byte" "char" "double" "float" "int" "long"
|
||||||
|
"short" "void") 'words)
|
||||||
|
"Regular expression matching any predefined type in JavaScript.")
|
||||||
|
|
||||||
|
(defconst js-constant-re
|
||||||
|
(regexp-opt '("false" "null" "true") 'words)
|
||||||
|
"Regular expression matching any future reserved words in JavaScript.")
|
||||||
|
|
||||||
|
|
||||||
|
(defconst js-font-lock-keywords-1
|
||||||
|
(list
|
||||||
|
"\\<import\\>"
|
||||||
|
(list js-function-heading-1-re 1 font-lock-function-name-face)
|
||||||
|
(list js-function-heading-2-re 1 font-lock-function-name-face)
|
||||||
|
(list "[=(][ \t]*\\(/.*?[^\\]/\\w*\\)" 1 font-lock-string-face))
|
||||||
|
"Level one font lock.")
|
||||||
|
|
||||||
|
(defconst js-font-lock-keywords-2
|
||||||
|
(append js-font-lock-keywords-1
|
||||||
|
(list (list js-keyword-re 1 font-lock-keyword-face)
|
||||||
|
(cons js-basic-type-re font-lock-type-face)
|
||||||
|
(cons js-constant-re font-lock-constant-face)))
|
||||||
|
"Level two font lock.")
|
||||||
|
|
||||||
|
|
||||||
|
;; Limitations with variable declarations: There seems to be no
|
||||||
|
;; sensible way to highlight variables occuring after an initialized
|
||||||
|
;; variable in a variable list. For instance, in
|
||||||
|
;;
|
||||||
|
;; var x, y = f(a, b), z
|
||||||
|
;;
|
||||||
|
;; z will not be highlighted.
|
||||||
|
|
||||||
|
(defconst js-font-lock-keywords-3
|
||||||
|
(append
|
||||||
|
js-font-lock-keywords-2
|
||||||
|
(list
|
||||||
|
|
||||||
|
;; variable declarations
|
||||||
|
(list
|
||||||
|
(concat "\\<\\(const\\|var\\)\\>\\|" js-basic-type-re)
|
||||||
|
(list "\\(\\w+\\)[ \t]*\\([=;].*\\|,\\|/[/*]\\|$\\)"
|
||||||
|
nil
|
||||||
|
nil
|
||||||
|
'(1 font-lock-variable-name-face)))
|
||||||
|
|
||||||
|
;; continued variable declaration list
|
||||||
|
(list
|
||||||
|
(concat "^[ \t]*\\w+[ \t]*\\([,;=]\\|/[/*]\\|$\\)")
|
||||||
|
(list "\\(\\w+\\)[ \t]*\\([=;].*\\|,\\|/[/*]\\|$\\)"
|
||||||
|
'(if (save-excursion (backward-char) (js-continued-var-decl-list-p))
|
||||||
|
(backward-word 1)
|
||||||
|
(end-of-line))
|
||||||
|
'(end-of-line)
|
||||||
|
'(1 font-lock-variable-name-face)))
|
||||||
|
|
||||||
|
;; formal parameters
|
||||||
|
(list
|
||||||
|
(concat "\\<function\\>\\([ \t]+\\w+\\)?[ \t]*([ \t]*\\w")
|
||||||
|
(list "\\(\\w+\\)\\([ \t]*).*\\)?"
|
||||||
|
'(backward-char)
|
||||||
|
'(end-of-line)
|
||||||
|
'(1 font-lock-variable-name-face)))
|
||||||
|
|
||||||
|
;; continued formal parameter list
|
||||||
|
(list
|
||||||
|
(concat "^[ \t]*\\w+[ \t]*[,)]")
|
||||||
|
(list "\\w+"
|
||||||
|
'(if (save-excursion (backward-char) (js-inside-param-list-p))
|
||||||
|
(backward-word 1)
|
||||||
|
(end-of-line))
|
||||||
|
'(end-of-line)
|
||||||
|
'(0 font-lock-variable-name-face)))))
|
||||||
|
"Level three font lock.")
|
||||||
|
|
||||||
|
(defconst js-font-lock-keywords
|
||||||
|
'(js-font-lock-keywords-3 js-font-lock-keywords-1 js-font-lock-keywords-2
|
||||||
|
js-font-lock-keywords-3)
|
||||||
|
"See `font-lock-keywords'.")
|
||||||
|
|
||||||
|
|
||||||
|
;; --- Indentation ---
|
||||||
|
|
||||||
|
(defconst js-possibly-braceless-keyword-re
|
||||||
|
(regexp-opt
|
||||||
|
'("catch" "do" "else" "finally" "for" "if" "try" "while" "with" "let")
|
||||||
|
'words)
|
||||||
|
"Regular expression matching keywords that are optionally
|
||||||
|
followed by an opening brace.")
|
||||||
|
|
||||||
|
(defconst js-indent-operator-re
|
||||||
|
(concat "[-+*/%<>=&^|?:.]\\([^-+*/]\\|$\\)\\|"
|
||||||
|
(regexp-opt '("in" "instanceof") 'words))
|
||||||
|
"Regular expression matching operators that affect indentation
|
||||||
|
of continued expressions.")
|
||||||
|
|
||||||
|
|
||||||
|
(defun js-looking-at-operator-p ()
|
||||||
|
"Return non-nil if text after point is an operator (that is not
|
||||||
|
a comma)."
|
||||||
|
(save-match-data
|
||||||
|
(and (looking-at js-indent-operator-re)
|
||||||
|
(or (not (looking-at ":"))
|
||||||
|
(save-excursion
|
||||||
|
(and (js-re-search-backward "[?:{]\\|\\<case\\>" nil t)
|
||||||
|
(looking-at "?")))))))
|
||||||
|
|
||||||
|
|
||||||
|
(defun js-continued-expression-p ()
|
||||||
|
"Returns non-nil if the current line continues an expression."
|
||||||
|
(save-excursion
|
||||||
|
(back-to-indentation)
|
||||||
|
(or (js-looking-at-operator-p)
|
||||||
|
(and (js-re-search-backward "\n" nil t)
|
||||||
|
(progn
|
||||||
|
(skip-chars-backward " \t")
|
||||||
|
(backward-char)
|
||||||
|
(and (> (point) (point-min))
|
||||||
|
(save-excursion (backward-char) (not (looking-at "[/*]/")))
|
||||||
|
(js-looking-at-operator-p)
|
||||||
|
(and (progn (backward-char)
|
||||||
|
(not (looking-at "++\\|--\\|/[/*]"))))))))))
|
||||||
|
|
||||||
|
|
||||||
|
(defun js-end-of-do-while-loop-p ()
|
||||||
|
"Returns non-nil if word after point is `while' of a do-while
|
||||||
|
statement, else returns nil. A braceless do-while statement
|
||||||
|
spanning several lines requires that the start of the loop is
|
||||||
|
indented to the same column as the current line."
|
||||||
|
(interactive)
|
||||||
|
(save-excursion
|
||||||
|
(save-match-data
|
||||||
|
(when (looking-at "\\s-*\\<while\\>")
|
||||||
|
(if (save-excursion
|
||||||
|
(skip-chars-backward "[ \t\n]*}")
|
||||||
|
(looking-at "[ \t\n]*}"))
|
||||||
|
(save-excursion
|
||||||
|
(backward-list) (backward-word 1) (looking-at "\\<do\\>"))
|
||||||
|
(js-re-search-backward "\\<do\\>" (point-at-bol) t)
|
||||||
|
(or (looking-at "\\<do\\>")
|
||||||
|
(let ((saved-indent (current-indentation)))
|
||||||
|
(while (and (js-re-search-backward "^[ \t]*\\<" nil t)
|
||||||
|
(/= (current-indentation) saved-indent)))
|
||||||
|
(and (looking-at "[ \t]*\\<do\\>")
|
||||||
|
(not (js-re-search-forward
|
||||||
|
"\\<while\\>" (point-at-eol) t))
|
||||||
|
(= (current-indentation) saved-indent)))))))))
|
||||||
|
|
||||||
|
|
||||||
|
(defun js-ctrl-statement-indentation ()
|
||||||
|
"Returns the proper indentation of the current line if it
|
||||||
|
starts the body of a control statement without braces, else
|
||||||
|
returns nil."
|
||||||
|
(save-excursion
|
||||||
|
(back-to-indentation)
|
||||||
|
(when (save-excursion
|
||||||
|
(and (not (looking-at "[{]"))
|
||||||
|
(progn
|
||||||
|
(js-re-search-backward "[[:graph:]]" nil t)
|
||||||
|
(forward-char)
|
||||||
|
(when (= (char-before) ?\)) (backward-list))
|
||||||
|
(skip-syntax-backward " ")
|
||||||
|
(skip-syntax-backward "w")
|
||||||
|
(looking-at js-possibly-braceless-keyword-re))
|
||||||
|
(not (js-end-of-do-while-loop-p))))
|
||||||
|
(save-excursion
|
||||||
|
(goto-char (match-beginning 0))
|
||||||
|
(+ (current-indentation) javascript-indent-level)))))
|
||||||
|
|
||||||
|
|
||||||
|
(defun js-proper-indentation (parse-status)
|
||||||
|
"Return the proper indentation for the current line."
|
||||||
|
(save-excursion
|
||||||
|
(back-to-indentation)
|
||||||
|
(let ((ctrl-stmt-indent (js-ctrl-statement-indentation))
|
||||||
|
(same-indent-p (looking-at "[]})]\\|\\<case\\>\\|\\<default\\>"))
|
||||||
|
(continued-expr-p (js-continued-expression-p)))
|
||||||
|
(cond (ctrl-stmt-indent)
|
||||||
|
((js-continued-var-decl-list-p)
|
||||||
|
(js-re-search-backward "\\<var\\>" nil t)
|
||||||
|
(+ (current-indentation) javascript-indent-level))
|
||||||
|
((nth 1 parse-status)
|
||||||
|
(goto-char (nth 1 parse-status))
|
||||||
|
(if (looking-at "[({[][ \t]*\\(/[/*]\\|$\\)")
|
||||||
|
(progn
|
||||||
|
(skip-syntax-backward " ")
|
||||||
|
(when (= (char-before) ?\)) (backward-list))
|
||||||
|
(back-to-indentation)
|
||||||
|
(cond (same-indent-p
|
||||||
|
(current-column))
|
||||||
|
(continued-expr-p
|
||||||
|
(+ (current-column) (* 2 javascript-indent-level)))
|
||||||
|
(t
|
||||||
|
(+ (current-column) javascript-indent-level))))
|
||||||
|
(unless same-indent-p
|
||||||
|
(forward-char)
|
||||||
|
(skip-chars-forward " \t"))
|
||||||
|
(current-column)))
|
||||||
|
(continued-expr-p javascript-indent-level)
|
||||||
|
(t 0)))))
|
||||||
|
|
||||||
|
|
||||||
|
(defun javascript-indent-line ()
|
||||||
|
"Indent the current line as JavaScript source text."
|
||||||
|
(interactive)
|
||||||
|
(let ((parse-status
|
||||||
|
(save-excursion (parse-partial-sexp (point-min) (point-at-bol))))
|
||||||
|
(offset (- (current-column) (current-indentation))))
|
||||||
|
(when (not (nth 8 parse-status))
|
||||||
|
(indent-line-to (js-proper-indentation parse-status))
|
||||||
|
(when (> offset 0) (forward-char offset)))))
|
||||||
|
|
||||||
|
|
||||||
|
;; --- Filling ---
|
||||||
|
|
||||||
|
;; FIXME: It should be possible to use the more sofisticated function
|
||||||
|
;; `c-fill-paragraph' in `cc-cmds.el' instead. However, just setting
|
||||||
|
;; `fill-paragraph-function' to `c-fill-paragraph' does not work;
|
||||||
|
;; inside `c-fill-paragraph', `fill-paragraph-function' evaluates to
|
||||||
|
;; nil!?
|
||||||
|
|
||||||
|
(defun js-backward-paragraph ()
|
||||||
|
"Move backward to start of paragraph. Postcondition: Point is at
|
||||||
|
beginning of buffer or the previous line contains only whitespace."
|
||||||
|
(forward-line -1)
|
||||||
|
(while (not (or (bobp) (looking-at "^[ \t]*$")))
|
||||||
|
(forward-line -1))
|
||||||
|
(when (not (bobp)) (forward-line 1)))
|
||||||
|
|
||||||
|
|
||||||
|
(defun js-forward-paragraph ()
|
||||||
|
"Move forward to end of paragraph. Postcondition: Point is at
|
||||||
|
end of buffer or the next line contains only whitespace."
|
||||||
|
(forward-line 1)
|
||||||
|
(while (not (or (eobp) (looking-at "^[ \t]*$")))
|
||||||
|
(forward-line 1))
|
||||||
|
(when (not (eobp)) (backward-char 1)))
|
||||||
|
|
||||||
|
|
||||||
|
(defun js-fill-block-comment-paragraph (parse-status justify)
|
||||||
|
"Fill current paragraph as a block comment. PARSE-STATUS is the
|
||||||
|
result of `parse-partial-regexp' from beginning of buffer to
|
||||||
|
point. JUSTIFY has the same meaning as in `fill-paragraph'."
|
||||||
|
(let ((offset (save-excursion
|
||||||
|
(goto-char (nth 8 parse-status)) (current-indentation))))
|
||||||
|
(save-excursion
|
||||||
|
(save-restriction
|
||||||
|
(narrow-to-region (save-excursion
|
||||||
|
(goto-char (nth 8 parse-status)) (point-at-bol))
|
||||||
|
(save-excursion
|
||||||
|
(goto-char (nth 8 parse-status))
|
||||||
|
(re-search-forward "*/")))
|
||||||
|
(narrow-to-region (save-excursion
|
||||||
|
(js-backward-paragraph)
|
||||||
|
(when (looking-at "^[ \t]*$") (forward-line 1))
|
||||||
|
(point))
|
||||||
|
(save-excursion
|
||||||
|
(js-forward-paragraph)
|
||||||
|
(when (looking-at "^[ \t]*$") (backward-char))
|
||||||
|
(point)))
|
||||||
|
(goto-char (point-min))
|
||||||
|
(while (not (eobp))
|
||||||
|
(delete-horizontal-space)
|
||||||
|
(forward-line 1))
|
||||||
|
(let ((fill-column (- fill-column offset))
|
||||||
|
(fill-paragraph-function nil))
|
||||||
|
(fill-paragraph justify))
|
||||||
|
|
||||||
|
;; In Emacs 21.4 as opposed to CVS Emacs 22,
|
||||||
|
;; `fill-paragraph' seems toadd a newline at the end of the
|
||||||
|
;; paragraph. Remove it!
|
||||||
|
(goto-char (point-max))
|
||||||
|
(when (looking-at "^$") (backward-delete-char 1))
|
||||||
|
|
||||||
|
(goto-char (point-min))
|
||||||
|
(while (not (eobp))
|
||||||
|
(indent-to offset)
|
||||||
|
(forward-line 1))))))
|
||||||
|
|
||||||
|
|
||||||
|
(defun js-sline-comment-par-start ()
|
||||||
|
"Return point at the beginning of the line where the current
|
||||||
|
single-line comment paragraph starts."
|
||||||
|
(save-excursion
|
||||||
|
(beginning-of-line)
|
||||||
|
(while (and (not (bobp))
|
||||||
|
(looking-at "^[ \t]*//[ \t]*[[:graph:]]"))
|
||||||
|
(forward-line -1))
|
||||||
|
(unless (bobp) (forward-line 1))
|
||||||
|
(point)))
|
||||||
|
|
||||||
|
|
||||||
|
(defun js-sline-comment-par-end ()
|
||||||
|
"Return point at end of current single-line comment paragraph."
|
||||||
|
(save-excursion
|
||||||
|
(beginning-of-line)
|
||||||
|
(while (and (not (eobp))
|
||||||
|
(looking-at "^[ \t]*//[ \t]*[[:graph:]]"))
|
||||||
|
(forward-line 1))
|
||||||
|
(unless (bobp) (backward-char))
|
||||||
|
(point)))
|
||||||
|
|
||||||
|
|
||||||
|
(defun js-sline-comment-offset (line)
|
||||||
|
"Return the column at the start of the current single-line
|
||||||
|
comment paragraph."
|
||||||
|
(save-excursion
|
||||||
|
(goto-line line)
|
||||||
|
(re-search-forward "//" (point-at-eol))
|
||||||
|
(goto-char (match-beginning 0))
|
||||||
|
(current-column)))
|
||||||
|
|
||||||
|
|
||||||
|
(defun js-sline-comment-text-offset (line)
|
||||||
|
"Return the column at the start of the text of the current
|
||||||
|
single-line comment paragraph."
|
||||||
|
(save-excursion
|
||||||
|
(goto-line line)
|
||||||
|
(re-search-forward "//[ \t]*" (point-at-eol))
|
||||||
|
(current-column)))
|
||||||
|
|
||||||
|
|
||||||
|
(defun js-at-empty-sline-comment-p ()
|
||||||
|
"Return non-nil if inside an empty single-line comment."
|
||||||
|
(and (save-excursion
|
||||||
|
(beginning-of-line)
|
||||||
|
(not (looking-at "^.*//.*[[:graph:]]")))
|
||||||
|
(save-excursion
|
||||||
|
(re-search-backward "//" (point-at-bol) t))))
|
||||||
|
|
||||||
|
|
||||||
|
(defun js-fill-sline-comments (parse-status justify)
|
||||||
|
"Fill current paragraph as a sequence of single-line comments.
|
||||||
|
PARSE-STATUS is the result of `parse-partial-regexp' from
|
||||||
|
beginning of buffer to point. JUSTIFY has the same meaning as in
|
||||||
|
`fill-paragraph'."
|
||||||
|
(when (not (js-at-empty-sline-comment-p))
|
||||||
|
(let* ((start (js-sline-comment-par-start))
|
||||||
|
(start-line (1+ (count-lines (point-min) start)))
|
||||||
|
(end (js-sline-comment-par-end))
|
||||||
|
(offset (js-sline-comment-offset start-line))
|
||||||
|
(text-offset (js-sline-comment-text-offset start-line)))
|
||||||
|
(save-excursion
|
||||||
|
(save-restriction
|
||||||
|
(narrow-to-region start end)
|
||||||
|
(goto-char (point-min))
|
||||||
|
(while (re-search-forward "^[ \t]*//[ \t]*" nil t)
|
||||||
|
(replace-match "")
|
||||||
|
(forward-line 1))
|
||||||
|
(let ((fill-paragraph-function nil)
|
||||||
|
(fill-column (- fill-column text-offset)))
|
||||||
|
(fill-paragraph justify))
|
||||||
|
|
||||||
|
;; In Emacs 21.4 as opposed to CVS Emacs 22,
|
||||||
|
;; `fill-paragraph' seems toadd a newline at the end of the
|
||||||
|
;; paragraph. Remove it!
|
||||||
|
(goto-char (point-max))
|
||||||
|
(when (looking-at "^$") (backward-delete-char 1))
|
||||||
|
|
||||||
|
(goto-char (point-min))
|
||||||
|
(while (not (eobp))
|
||||||
|
(indent-to offset)
|
||||||
|
(insert "//")
|
||||||
|
(indent-to text-offset)
|
||||||
|
(forward-line 1)))))))
|
||||||
|
|
||||||
|
|
||||||
|
(defun js-trailing-comment-p (parse-status)
|
||||||
|
"Return non-nil if inside a trailing comment. PARSE-STATUS is
|
||||||
|
the result of `parse-partial-regexp' from beginning of buffer to
|
||||||
|
point."
|
||||||
|
(save-excursion
|
||||||
|
(when (nth 4 parse-status)
|
||||||
|
(goto-char (nth 8 parse-status))
|
||||||
|
(skip-chars-backward " \t")
|
||||||
|
(not (bolp)))))
|
||||||
|
|
||||||
|
|
||||||
|
(defun js-block-comment-p (parse-status)
|
||||||
|
"Return non-nil if inside a block comment. PARSE-STATUS is the
|
||||||
|
result of `parse-partial-regexp' from beginning of buffer to
|
||||||
|
point."
|
||||||
|
(save-excursion
|
||||||
|
(save-match-data
|
||||||
|
(when (nth 4 parse-status)
|
||||||
|
(goto-char (nth 8 parse-status))
|
||||||
|
(looking-at "/\\*")))))
|
||||||
|
|
||||||
|
|
||||||
|
(defun javascript-fill-paragraph (&optional justify)
|
||||||
|
"If inside a comment, fill the current comment paragraph.
|
||||||
|
Trailing comments are ignored."
|
||||||
|
(interactive)
|
||||||
|
(let ((parse-status (parse-partial-sexp (point-min) (point))))
|
||||||
|
(when (and (nth 4 parse-status)
|
||||||
|
(not (js-trailing-comment-p parse-status)))
|
||||||
|
(if (js-block-comment-p parse-status)
|
||||||
|
(js-fill-block-comment-paragraph parse-status justify)
|
||||||
|
(js-fill-sline-comments parse-status justify))))
|
||||||
|
t)
|
||||||
|
|
||||||
|
|
||||||
|
;; --- Imenu ---
|
||||||
|
|
||||||
|
(defconst js-imenu-generic-expression
|
||||||
|
(list
|
||||||
|
(list
|
||||||
|
nil
|
||||||
|
"function\\s-+\\(\\w+\\)\\s-*("
|
||||||
|
1))
|
||||||
|
"Regular expression matching top level procedures. Used by imenu.")
|
||||||
|
|
||||||
|
|
||||||
|
;; --- Main Function ---
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(defun javascript-mode ()
|
||||||
|
"Major mode for editing JavaScript source text.
|
||||||
|
|
||||||
|
Key bindings:
|
||||||
|
|
||||||
|
\\{javascript-mode-map}"
|
||||||
|
(interactive)
|
||||||
|
(kill-all-local-variables)
|
||||||
|
|
||||||
|
(use-local-map javascript-mode-map)
|
||||||
|
(set-syntax-table javascript-mode-syntax-table)
|
||||||
|
(set (make-local-variable 'indent-line-function) 'javascript-indent-line)
|
||||||
|
(set (make-local-variable 'font-lock-defaults) (list js-font-lock-keywords))
|
||||||
|
|
||||||
|
(set (make-local-variable 'parse-sexp-ignore-comments) t)
|
||||||
|
|
||||||
|
;; Comments
|
||||||
|
(setq comment-start "// ")
|
||||||
|
(setq comment-end "")
|
||||||
|
(set (make-local-variable 'fill-paragraph-function)
|
||||||
|
'javascript-fill-paragraph)
|
||||||
|
|
||||||
|
;; Make c-mark-function work
|
||||||
|
(setq c-nonsymbol-token-regexp "!=\\|%=\\|&[&=]\\|\\*[/=]\\|\\+[+=]\\|-[=-]\\|/[*/=]\\|<\\(?:<=\\|[<=]\\)\\|==\\|>\\(?:>\\(?:>=\\|[=>]\\)\\|[=>]\\)\\|\\^=\\||[=|]\\|[]!%&(-,./:-?[{-~^-]"
|
||||||
|
c-stmt-delim-chars "^;{}?:"
|
||||||
|
c-syntactic-ws-end "[ \n
|
||||||
|
\f/]"
|
||||||
|
c-syntactic-eol "\\(\\s \\|/\\*\\([^*\n
|
||||||
|
]\\|\\*[^/\n
|
||||||
|
]\\)*\\*/\\)*\\(\\(/\\*\\([^*\n
|
||||||
|
]\\|\\*[^/\n
|
||||||
|
]\\)*\\|\\\\\\)?$\\|//\\)")
|
||||||
|
|
||||||
|
;; Imenu
|
||||||
|
(setq imenu-case-fold-search nil)
|
||||||
|
(set (make-local-variable 'imenu-generic-expression)
|
||||||
|
js-imenu-generic-expression)
|
||||||
|
|
||||||
|
(setq major-mode 'javascript-mode)
|
||||||
|
(setq mode-name "JavaScript")
|
||||||
|
(run-hooks 'javascript-mode-hook))
|
||||||
|
|
||||||
|
|
||||||
|
(provide 'javascript-mode)
|
||||||
|
;;; javascript.el ends here
|
2715
emacs.d/nxhtml/alts/smarty-mode-vdebout.el
Normal file
194
emacs.d/nxhtml/autostart.el
Normal file
|
@ -0,0 +1,194 @@
|
||||||
|
;;; autostart.el --- Load nxhtml
|
||||||
|
;;
|
||||||
|
;; Author: By: Lennart Borgman
|
||||||
|
;; Created: Fri Dec 15 2006
|
||||||
|
;; Version:
|
||||||
|
;; Last-Updated: 2009-04-30 Thu
|
||||||
|
;; Keywords:
|
||||||
|
;; Compatibility:
|
||||||
|
;;
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;;
|
||||||
|
;;; Commentary:
|
||||||
|
;;
|
||||||
|
;;
|
||||||
|
;;
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;;
|
||||||
|
;;; 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., 59 Temple Place - Suite 330,
|
||||||
|
;; Boston, MA 02111-1307, USA.
|
||||||
|
;;
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;;
|
||||||
|
;;; Code:
|
||||||
|
|
||||||
|
;; Fix-me: Split out the definitions from this file so it can be
|
||||||
|
;; loaded during byte compilation.
|
||||||
|
|
||||||
|
;;(eval-when-compile (require 'web-vcs nil t))
|
||||||
|
;;(eval-when-compile (require 'nxhtml-web-vcs nil t))
|
||||||
|
|
||||||
|
(message "Nxml/Nxhtml Autostart.el loading ...")
|
||||||
|
|
||||||
|
(defconst nxhtml-autostart-trace nil)
|
||||||
|
(defsubst nxhtml-autostart-trace (format-string &rest args)
|
||||||
|
(when nxhtml-autostart-trace
|
||||||
|
(apply 'message format-string args)))
|
||||||
|
|
||||||
|
(defconst nxhtml-load-time-start (float-time))
|
||||||
|
|
||||||
|
;; Add this dir to load-path
|
||||||
|
(add-to-list 'load-path
|
||||||
|
(file-name-directory (or load-file-name
|
||||||
|
(when (boundp 'bytecomp-filename) bytecomp-filename)
|
||||||
|
buffer-file-name)))
|
||||||
|
|
||||||
|
(require 'nxhtml-base)
|
||||||
|
(eval-and-compile (when (fboundp 'nxml-mode)
|
||||||
|
(load (expand-file-name "etc/schema/schema-path-patch"
|
||||||
|
nxhtml-install-dir))))
|
||||||
|
|
||||||
|
;; (defun nxhtml-custom-load-and-get-value (symbol)
|
||||||
|
;; (custom-load-symbol symbol)
|
||||||
|
;; (symbol-value symbol))
|
||||||
|
|
||||||
|
(defun nxhtml-list-loaded-features (use-message)
|
||||||
|
(interactive (list t))
|
||||||
|
(let ((buf (when use-message ;(called-interactively-p)
|
||||||
|
(get-buffer-create "*nXhtml loaded features*"))))
|
||||||
|
(if buf
|
||||||
|
(with-current-buffer buf (erase-buffer))
|
||||||
|
(message "")
|
||||||
|
(message "=== Loaded at nxhtml/autostart.el end:"))
|
||||||
|
(dolist (feature '(
|
||||||
|
as-external
|
||||||
|
html-chklnk
|
||||||
|
html-imenu
|
||||||
|
html-move
|
||||||
|
html-pagetoc
|
||||||
|
html-quote
|
||||||
|
html-site
|
||||||
|
html-toc
|
||||||
|
html-upl
|
||||||
|
html-wtoc
|
||||||
|
inlimg
|
||||||
|
mumamo
|
||||||
|
nxhtml-bug
|
||||||
|
nxhtml-menu
|
||||||
|
nxhtml-mode
|
||||||
|
nxhtml-mumamo
|
||||||
|
nxhtml-strval
|
||||||
|
nxhtml
|
||||||
|
nxhtml-js
|
||||||
|
nxml-where
|
||||||
|
outline-magic
|
||||||
|
rngalt
|
||||||
|
tidy-xhtml
|
||||||
|
xhtml-help
|
||||||
|
))
|
||||||
|
(when (featurep feature)
|
||||||
|
(if buf
|
||||||
|
(with-current-buffer buf
|
||||||
|
(insert (format "(feature '%s)=%s\n" feature (featurep feature))))
|
||||||
|
(message "(feature '%s)=%s" feature (featurep feature)))))
|
||||||
|
(if buf
|
||||||
|
(display-buffer buf)
|
||||||
|
(message ""))))
|
||||||
|
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;;; Code that will run on loading this file
|
||||||
|
|
||||||
|
(if (< emacs-major-version 23)
|
||||||
|
(unless (featurep 'autostart22)
|
||||||
|
(load (expand-file-name "autostart22" nxhtml-install-dir)))
|
||||||
|
;; Check that the nxml-mode included with Emacs is used. There
|
||||||
|
;; has been some problems on Debian with this.
|
||||||
|
(let ((nxml-mode-file (locate-library "nxml-mode"))
|
||||||
|
(help-file (locate-library "help")))
|
||||||
|
(unless (string= (expand-file-name ".." help-file)
|
||||||
|
(expand-file-name "../.." nxml-mode-file))
|
||||||
|
(error "Wrong nxml-mode=%s used, please use the one that comes with Emacs" nxml-mode-file))))
|
||||||
|
|
||||||
|
(let* ((util-dir (file-name-as-directory (expand-file-name "util" nxhtml-install-dir)))
|
||||||
|
(related-dir (file-name-as-directory (expand-file-name "related" nxhtml-install-dir)))
|
||||||
|
(nxhtml-dir (file-name-as-directory (expand-file-name "nxhtml" nxhtml-install-dir)))
|
||||||
|
;;(company-dir (file-name-as-directory (expand-file-name "util/nxhtml-company-mode" nxhtml-install-dir)))
|
||||||
|
(tests-dir (file-name-as-directory (expand-file-name "tests" nxhtml-install-dir))))
|
||||||
|
(add-to-list 'load-path nxhtml-dir)
|
||||||
|
(add-to-list 'load-path related-dir)
|
||||||
|
(add-to-list 'load-path util-dir)
|
||||||
|
(add-to-list 'load-path nxhtml-install-dir)
|
||||||
|
;;(add-to-list 'load-path company-dir)
|
||||||
|
(add-to-list 'load-path tests-dir)
|
||||||
|
|
||||||
|
(nxhtml-autostart-trace "... nXhtml loading %.1f seconds elapsed ..." (- (float-time) nxhtml-load-time-start))
|
||||||
|
|
||||||
|
;; Autoloading etc
|
||||||
|
;; (unless (featurep 'web-vcs)
|
||||||
|
;; (load (expand-file-name "web-vcs" nxhtml-install-dir) (not nxhtml-autoload-web)))
|
||||||
|
|
||||||
|
;; (when (catch 'miss
|
||||||
|
;; (dolist (file nxhtml-basic-files)
|
||||||
|
;; (let ((dl-file (expand-file-name file nxhtml-install-dir)))
|
||||||
|
;; (unless (file-exists-p dl-file)
|
||||||
|
;; (throw 'miss t))))
|
||||||
|
;; nil)
|
||||||
|
;; (nxhtml-setup-auto-download nxhtml-install-dir))
|
||||||
|
|
||||||
|
(unless (featurep 'web-autoload)
|
||||||
|
(load (expand-file-name "web-autoload" nxhtml-install-dir) (not nxhtml-autoload-web)))
|
||||||
|
|
||||||
|
(when nxhtml-autoload-web
|
||||||
|
(ad-activate 'require t))
|
||||||
|
|
||||||
|
;; Fix-me: Why must as-external be loaded? Why doesn't it work in batch?
|
||||||
|
;;(unless noninteractive (require 'as-external))
|
||||||
|
|
||||||
|
(unless (featurep 'nxhtml-loaddefs)
|
||||||
|
(load (expand-file-name "nxhtml-loaddefs" nxhtml-install-dir) nxhtml-autoload-web))
|
||||||
|
(nxhtml-autostart-trace "... nXhtml loading %.1f seconds elapsed ..." (- (float-time) nxhtml-load-time-start))
|
||||||
|
|
||||||
|
;; Turn on `nxhtml-menu-mode' unconditionally
|
||||||
|
(nxhtml-autostart-trace "Turn on `nxhtml-menu-mode' unconditionally")
|
||||||
|
(nxhtml-menu-mode 1)
|
||||||
|
(nxhtml-autostart-trace "... nXhtml loading %.1f seconds elapsed ..." (- (float-time) nxhtml-load-time-start))
|
||||||
|
|
||||||
|
;; Patch the rnc include paths
|
||||||
|
(when (fboundp 'rncpp-patch-xhtml-loader) (rncpp-patch-xhtml-loader))
|
||||||
|
(nxhtml-autostart-trace "... nXhtml loading %.1f seconds elapsed ..." (- (float-time) nxhtml-load-time-start))
|
||||||
|
|
||||||
|
;; Load nXhtml
|
||||||
|
(unless (featurep 'nxhtml-autoload)
|
||||||
|
(load (expand-file-name "nxhtml/nxhtml-autoload" nxhtml-install-dir))))
|
||||||
|
(nxhtml-autostart-trace "... nXhtml loading %.1f seconds elapsed ..." (- (float-time) nxhtml-load-time-start))
|
||||||
|
|
||||||
|
|
||||||
|
(unless (featurep 'nxhtml-autostart)
|
||||||
|
;; Provide the feature here to avoid loading looping on error.
|
||||||
|
(provide 'nxhtml-autostart)
|
||||||
|
|
||||||
|
;; Tell what have been loaded of nXhtml:
|
||||||
|
(when nxhtml-autostart-trace (nxhtml-list-loaded-features nil))
|
||||||
|
|
||||||
|
;; How long time did it all take?
|
||||||
|
(message "Nxml/Nxhtml Autostart.el loaded in %.1f seconds" (- (float-time) nxhtml-load-time-start)))
|
||||||
|
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;;; autostart.el ends here
|
71
emacs.d/nxhtml/autostart22.el
Normal file
|
@ -0,0 +1,71 @@
|
||||||
|
;;; autostart22.el --- Example of autostart file for Emacs22
|
||||||
|
;;
|
||||||
|
;; Author: Lennart Borgman (lennart O borgman A gmail O com)
|
||||||
|
;; Created: 2009-01-01 Thu
|
||||||
|
;; Version:
|
||||||
|
;; Last-Updated: 2009-01-05 Mon
|
||||||
|
;; URL:
|
||||||
|
;; Keywords:
|
||||||
|
;; Compatibility:
|
||||||
|
;;
|
||||||
|
;; Features that might be required by this library:
|
||||||
|
;;
|
||||||
|
;; This file is for Emacs 22 only.
|
||||||
|
;;
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;;
|
||||||
|
;;; Commentary:
|
||||||
|
;;
|
||||||
|
;; Change this file according to the path of your nxml-mode dir. If
|
||||||
|
;; you do not use nxml-mode then just use autostart.el.
|
||||||
|
;;
|
||||||
|
;; NOTICE: You need to enter the path to your nxml-mode installation
|
||||||
|
;; below.
|
||||||
|
;;
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;;
|
||||||
|
;;; 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:
|
||||||
|
|
||||||
|
(let ((debug-on-error t))
|
||||||
|
(if (/= emacs-major-version 22)
|
||||||
|
(message "This file (autostart22.el) is for Emacs 22 only")
|
||||||
|
|
||||||
|
(defalias 'Custom-mode 'custom-mode)
|
||||||
|
|
||||||
|
(let* ((this-file (or load-file-name buffer-file-name))
|
||||||
|
(this-dir (file-name-directory this-file))
|
||||||
|
;; FIX-ME: Download nXml (since it is not included in Emacs
|
||||||
|
;; 22) and place the path to rng-auto.el in your downloaded
|
||||||
|
;; nXml HERE:
|
||||||
|
(rng-auto-file (or (locate-library "rng-auto.el")
|
||||||
|
"c:/emacs/u/081231/EmacsW32/nxhtml/nxml-mode-20041004/rng-auto.el")))
|
||||||
|
(unless (file-exists-p rng-auto-file)
|
||||||
|
(error "Can't find rng-auto.el, please edit %s" this-file))
|
||||||
|
(load rng-auto-file))))
|
||||||
|
|
||||||
|
(provide 'autostart22)
|
||||||
|
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;;; autostart22.el ends here
|
1
emacs.d/nxhtml/emacs22.cmd
Normal file
|
@ -0,0 +1 @@
|
||||||
|
c:\emacs\emacs-22.3\bin\emacs.exe -Q --debug-init -l autostart.el
|
BIN
emacs.d/nxhtml/etc/img/pause/pause.jpg
Normal file
After Width: | Height: | Size: 25 KiB |
BIN
emacs.d/nxhtml/etc/img/pause/pause2.jpg
Normal file
After Width: | Height: | Size: 26 KiB |
BIN
emacs.d/nxhtml/etc/schema/FDA-2009-N-0392-0396.1.doc
Normal file
27
emacs.d/nxhtml/etc/schema/genshi-old.rnc
Normal file
|
@ -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 }
|
||||||
|
|
||||||
|
|
3
emacs.d/nxhtml/etc/schema/genshi-schemas.xml
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
<locatingRules xmlns="http://thaiopensource.com/ns/locating-rules/1.0">
|
||||||
|
<typeId id="XHTML" uri="qtmstr-xhtml.rnc" />
|
||||||
|
</locatingRules>
|
84
emacs.d/nxhtml/etc/schema/genshi.rnc
Normal file
|
@ -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*
|
74
emacs.d/nxhtml/etc/schema/mjt.rnc
Normal file
|
@ -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
|
37
emacs.d/nxhtml/etc/schema/nxml-erb.patch
Normal file
|
@ -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)
|
31
emacs.d/nxhtml/etc/schema/old-genshi.rnc
Normal file
|
@ -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 }?
|
||||||
|
|
||||||
|
|
61
emacs.d/nxhtml/etc/schema/old-qtmstr-xhtml.rnc
Normal file
|
@ -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
|
11
emacs.d/nxhtml/etc/schema/old-xinclude.rnc
Normal file
|
@ -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 }?
|
||||||
|
|
58
emacs.d/nxhtml/etc/schema/qtmstr-xhtml-old.rnc
Normal file
|
@ -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
|
66
emacs.d/nxhtml/etc/schema/qtmstr-xhtml.rnc
Normal file
|
@ -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
|
95
emacs.d/nxhtml/etc/schema/schema-path-patch.el
Normal file
|
@ -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
|
1
emacs.d/nxhtml/etc/schema/xhtml-loader.rnc
Normal file
|
@ -0,0 +1 @@
|
||||||
|
include "../../../../../../usr/local/share/emacs/24.0.50/etc/schema/xhtml.rnc"
|
35
emacs.d/nxhtml/etc/schema/xinclude.rnc
Normal file
|
@ -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
|
25
emacs.d/nxhtml/etc/templates/rollover-2v.css
Normal file
|
@ -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;
|
||||||
|
}
|
894
emacs.d/nxhtml/etc/uts39/idnchars.txt
Normal file
|
@ -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
|
59
emacs.d/nxhtml/etc/viper-tut/0intro
Normal file
|
@ -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.
|
||||||
|
|
187
emacs.d/nxhtml/etc/viper-tut/1basics
Normal file
|
@ -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!<RETURN> . To quit and save your
|
||||||
|
changes, use 'Z''Z' . When you are editing your own files, you normally
|
||||||
|
use 'Z''Z' to quit.
|
||||||
|
|
||||||
|
:q!<RETURN> 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!<RETURN> 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.
|
269
emacs.d/nxhtml/etc/viper-tut/2moving
Normal file
|
@ -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.
|
318
emacs.d/nxhtml/etc/viper-tut/3cutpaste
Normal file
|
@ -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!<RETURN> 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!<RETURN> )
|
||||||
|
|
||||||
|
>>> 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<RETURN> 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<RETURN> 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<RETURN> WRITE contents of the file (without quitting)
|
||||||
|
(type a colon, type w , then press the RETURN key)
|
||||||
|
|
||||||
|
:e filename<RETURN> 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.
|
180
emacs.d/nxhtml/etc/viper-tut/4inserting
Normal file
|
@ -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.
|
229
emacs.d/nxhtml/etc/viper-tut/5tricks
Normal file
|
@ -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'<RETURN> 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'<RETURN> 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.
|
49
emacs.d/nxhtml/etc/viper-tut/README
Normal file
|
@ -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
|
131
emacs.d/nxhtml/etc/viper-tut/outline
Normal file
|
@ -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)
|
150
emacs.d/nxhtml/nxhtml-base.el
Normal file
|
@ -0,0 +1,150 @@
|
||||||
|
;;; nxhtml-base.el --- The very, very basic vars...
|
||||||
|
;;
|
||||||
|
;; Author: Lennart Borgman (lennart O borgman A gmail O com)
|
||||||
|
;; Created: 2010-01-13 Wed
|
||||||
|
;; Version:
|
||||||
|
;; Last-Updated:
|
||||||
|
;; URL:
|
||||||
|
;; Keywords:
|
||||||
|
;; Compatibility:
|
||||||
|
;;
|
||||||
|
;; Features that might be required by this library:
|
||||||
|
;;
|
||||||
|
;; None
|
||||||
|
;;
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;;
|
||||||
|
;;; Commentary:
|
||||||
|
;;
|
||||||
|
;; Things that always must be loaded and that are often necessary when
|
||||||
|
;; byte compiling.
|
||||||
|
;;
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;;
|
||||||
|
;;; 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 3, 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:
|
||||||
|
|
||||||
|
;;(eval-when-compile (require 'web-vcs nil t))
|
||||||
|
(eval-when-compile (require 'flymake-js nil t))
|
||||||
|
(eval-when-compile (require 'flymake-css nil t))
|
||||||
|
(eval-when-compile (require 'flymake-java-1 nil t))
|
||||||
|
|
||||||
|
(defconst nxhtml-menu:version "2.08")
|
||||||
|
(setq message-log-max t)
|
||||||
|
(setq debug-on-error t)
|
||||||
|
|
||||||
|
(defconst nxhtml-install-dir
|
||||||
|
(file-name-directory (or load-file-name
|
||||||
|
(when (boundp 'bytecomp-filename) bytecomp-filename)
|
||||||
|
buffer-file-name))
|
||||||
|
"Installation directory for nXhtml.")
|
||||||
|
|
||||||
|
(define-minor-mode nxhtml-autoload-web
|
||||||
|
"If on download elisp files from web when they are needed.
|
||||||
|
If t then during `require' nXhtml elisp files can be downloaded
|
||||||
|
from the nXhtml repository on the web. This will currently
|
||||||
|
download the development sources, latest version.
|
||||||
|
|
||||||
|
Other files that are used by a command may also be downloaded.
|
||||||
|
|
||||||
|
Note that files are not updated automatically. You have to use
|
||||||
|
`nxhtml-update-existing-files' for that."
|
||||||
|
:global t
|
||||||
|
;;:lighter (propertize " nX" 'face 'font-lock-comment-face)
|
||||||
|
:lighter " nX"
|
||||||
|
:group 'nxhtml)
|
||||||
|
|
||||||
|
(defun nxhtml-autoload (fun src &optional docstring interactive type)
|
||||||
|
"Generalized `autoload'. May setup autoload from the web.
|
||||||
|
If `nxhtml-autoload-web' is t then setup autoloading from the web.
|
||||||
|
Otherwise setup for normal local autoloading."
|
||||||
|
(if nxhtml-autoload-web
|
||||||
|
(progn
|
||||||
|
;; Do not require this until we really need it.
|
||||||
|
(require 'web-autoload)
|
||||||
|
(web-autoload fun src docstring interactive type))
|
||||||
|
(let ((file src))
|
||||||
|
(when (listp file)
|
||||||
|
(setq file (file-name-nondirectory (nth 2 file))))
|
||||||
|
(autoload fun file docstring interactive type))))
|
||||||
|
|
||||||
|
;; Fix-me: web autoload defcustoms.
|
||||||
|
;;
|
||||||
|
;; I have no good idea how to fix this. It looks like I have to
|
||||||
|
;; defadvice `custom-load-symbol'. I thought that should not be
|
||||||
|
;; necessary since it does (require load) on line 605 but the web
|
||||||
|
;; autoload does not start. Why? Hm, you never know since it is inside
|
||||||
|
;; a (condition-case nil ...).
|
||||||
|
;;
|
||||||
|
;; Ah, found it. The require is only done if custom loads contains a
|
||||||
|
;; symbol, not a string. So I changed this to a symbol instead in
|
||||||
|
;; nxhtml-loaddefs.el. Maybe `load' instead of `require' should be
|
||||||
|
;; advised?
|
||||||
|
|
||||||
|
;; What a hell is this below? Have things been rewritten in custom or
|
||||||
|
;; did I mix somethintg?
|
||||||
|
(defun nxhtml-custom-autoload (symbol load &optional noset)
|
||||||
|
"Like `custom-autoload', but also run :set for defcustoms etc."
|
||||||
|
;; Fix-me: is-boundp is currently always t because of the order in
|
||||||
|
;; loaddefs. Hm, so this worked just by chance...
|
||||||
|
(let* ((is-boundp (prog1 (boundp symbol)
|
||||||
|
(custom-autoload symbol load noset)))
|
||||||
|
(standard (get symbol 'standard-value))
|
||||||
|
(saved (get symbol 'saved-value))
|
||||||
|
;; Fix-me: property custom-set etc are not available
|
||||||
|
(custom-set (get symbol 'custom-set))
|
||||||
|
(custom-initialize (get symbol 'custom-initialize))
|
||||||
|
(set (or custom-set 'custom-set-default))) ;; Fix-me: initialize
|
||||||
|
(setq custom-set t) ;; Not available here
|
||||||
|
(when (or custom-initialize
|
||||||
|
(and saved
|
||||||
|
(not (equal (car saved) (symbol-value symbol)))
|
||||||
|
custom-set))
|
||||||
|
(funcall set symbol (car saved))
|
||||||
|
(custom-load-symbol symbol))))
|
||||||
|
|
||||||
|
(defun flymake-init-load-flymakemsg ()
|
||||||
|
(require 'flymakemsg))
|
||||||
|
|
||||||
|
(define-minor-mode nxhtml-flymake-setup
|
||||||
|
"Let nXhtml add some addtions to flymake.
|
||||||
|
This adds support for CSS and JavaScript files.
|
||||||
|
|
||||||
|
It also adds showing of errors in minibuffer when point is on
|
||||||
|
them.
|
||||||
|
|
||||||
|
If you turn this off you must restart Emacs for it to take
|
||||||
|
effect."
|
||||||
|
:group 'nxhtml
|
||||||
|
:group 'flymake
|
||||||
|
(when nxhtml-flymake-setup
|
||||||
|
(flymake-js-load)
|
||||||
|
(flymake-css-load)
|
||||||
|
(flymake-java-1-load)
|
||||||
|
(add-hook 'flymake-mode-hook 'flymake-init-load-flymakemsg)))
|
||||||
|
|
||||||
|
|
||||||
|
(provide 'nxhtml-base)
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;;; nxhtml-base.el ends here
|
4502
emacs.d/nxhtml/nxhtml-loaddefs.el
Normal file
689
emacs.d/nxhtml/nxhtml-web-vcs.el
Normal file
|
@ -0,0 +1,689 @@
|
||||||
|
;;; nxhtml-web-vcs.el --- nXhtml things for web-vcs.el
|
||||||
|
;;
|
||||||
|
;; Author: Lennart Borgman (lennart O borgman A gmail O com)
|
||||||
|
;; Created: 2010-01-13 Wed
|
||||||
|
;; Version:
|
||||||
|
;; Last-Updated:
|
||||||
|
;; URL:
|
||||||
|
;; Keywords:
|
||||||
|
;; Compatibility:
|
||||||
|
;;
|
||||||
|
;; Features that might be required by this library:
|
||||||
|
;;
|
||||||
|
;; None
|
||||||
|
;;
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;;
|
||||||
|
;;; Commentary:
|
||||||
|
;;
|
||||||
|
;;
|
||||||
|
;;
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;;
|
||||||
|
;;; 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 3, 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:
|
||||||
|
|
||||||
|
(eval-when-compile (require 'cl))
|
||||||
|
(eval-when-compile (require 'nxhtml-base nil t))
|
||||||
|
;;(eval-when-compile (require 'nxhtmlmaint nil t))
|
||||||
|
(eval-when-compile (require 'web-vcs nil t))
|
||||||
|
|
||||||
|
(defvar nxhtml-web-vcs-file (or load-file-name
|
||||||
|
(when (boundp 'bytecomp-filename) bytecomp-filename)
|
||||||
|
buffer-file-name)
|
||||||
|
"This file.")
|
||||||
|
|
||||||
|
(defun nxhtml-require-base ()
|
||||||
|
(require 'nxhtml-base nil t)
|
||||||
|
(unless (featurep 'nxhtml-base)
|
||||||
|
;; At startup, need to load it by hand.
|
||||||
|
(let ((load-path load-path))
|
||||||
|
(add-to-list 'load-path (file-name-directory nxhtml-web-vcs-file))
|
||||||
|
(require 'nxhtml-base))))
|
||||||
|
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;;; Repository URL
|
||||||
|
|
||||||
|
|
||||||
|
;;(nxhtml-default-download-directory)
|
||||||
|
(defun nxhtml-default-download-directory ()
|
||||||
|
(let* ((ur (expand-file-name "" "~"))
|
||||||
|
(ur-len (length ur))
|
||||||
|
(full (if (and (boundp 'nxhtml-install-dir)
|
||||||
|
nxhtml-install-dir)
|
||||||
|
nxhtml-install-dir
|
||||||
|
(file-name-as-directory
|
||||||
|
(expand-file-name ""
|
||||||
|
(web-vcs-default-download-directory)))))
|
||||||
|
(full-len (length full)))
|
||||||
|
(if (and (> full-len ur-len)
|
||||||
|
(string= ur (substring full 0 ur-len)))
|
||||||
|
(concat "~" (substring full ur-len))
|
||||||
|
full)))
|
||||||
|
|
||||||
|
|
||||||
|
(defun nxhtml-web-vcs-read-dl-dir (prompt)
|
||||||
|
"Return current nXhtml install dir or read dir."
|
||||||
|
(or (and (boundp 'nxhtml-install-dir)
|
||||||
|
nxhtml-install-dir)
|
||||||
|
(let* ((pr (concat
|
||||||
|
"A directory named 'nxhtml' will be created below the root you give."
|
||||||
|
"\n"
|
||||||
|
prompt))
|
||||||
|
(root (read-directory-name pr (nxhtml-default-download-directory))))
|
||||||
|
(when root
|
||||||
|
(expand-file-name "nxhtml" root)))))
|
||||||
|
|
||||||
|
;;(call-interactively 'nxhtml-setup-install)
|
||||||
|
;; (read-key "Prompt: ")
|
||||||
|
;; (y-or-n-p "Prompt")
|
||||||
|
;;;###autoload
|
||||||
|
(defun nxhtml-setup-install (way)
|
||||||
|
"Setup and start nXhtml installation.
|
||||||
|
|
||||||
|
This is for installation and updating directly from the nXhtml
|
||||||
|
development sources.
|
||||||
|
|
||||||
|
There are two different ways to install:
|
||||||
|
|
||||||
|
(1) Download all at once: `nxhtml-setup-download-all'
|
||||||
|
(2) Automatically download part by part: `nxhtml-setup-auto-download'
|
||||||
|
|
||||||
|
You can convert between those ways by calling this function again.
|
||||||
|
You can also do this by setting the option `nxhtml-autoload-web' yourself.
|
||||||
|
|
||||||
|
When you have nXhtml installed you can update it:
|
||||||
|
|
||||||
|
(3) Update new files in nXhtml: `nxhtml-update-existing-files'
|
||||||
|
|
||||||
|
To learn more about nXhtml visit its home page at URL
|
||||||
|
`http://www.emacswiki.com/NxhtmlMode/'.
|
||||||
|
|
||||||
|
If you want to test auto download \(but not use it further) there
|
||||||
|
is a special function for that, you answer T here:
|
||||||
|
|
||||||
|
(T) Test automatic download part by part: `nxhtml-setup-test-auto-download'
|
||||||
|
|
||||||
|
======
|
||||||
|
*Note*
|
||||||
|
If you want to download a zip file with latest released version instead then
|
||||||
|
please see URL `http://ourcomments.org/Emacs/nXhtml/doc/nxhtml.html'."
|
||||||
|
(interactive (let ((curr-cfg (current-window-configuration)))
|
||||||
|
(describe-function 'nxhtml-setup-install)
|
||||||
|
(select-window (get-buffer-window (help-buffer)))
|
||||||
|
(delete-other-windows)
|
||||||
|
(list
|
||||||
|
(let* ((key nil)
|
||||||
|
(has-nxhtml (and (boundp 'nxhtml-install-dir) nxhtml-install-dir))
|
||||||
|
(current-way (if has-nxhtml
|
||||||
|
(if (and (boundp 'nxhtml-autoload-web)
|
||||||
|
nxhtml-autoload-web)
|
||||||
|
"Your current setup is to download part by part from the web."
|
||||||
|
"Your current setup it to download all of nXhtml at once.")
|
||||||
|
"(You have not currently installed nXhtml.)"))
|
||||||
|
(prompt (concat "Setup nXhtml install."
|
||||||
|
"\n" current-way
|
||||||
|
"\n"
|
||||||
|
"\n(1) Download whole at once, or (2) part by part as needed"
|
||||||
|
(if has-nxhtml "\n(3) Update your existing nXhtml" "")
|
||||||
|
"\n(T) For temporary testing downloading part by part"
|
||||||
|
"\n"
|
||||||
|
"\n(? for help, q to quit): "))
|
||||||
|
(allowed-keys (if has-nxhtml
|
||||||
|
'(?1 ?2 ?3 ?T ?q 7)
|
||||||
|
'(?1 ?2 ?T ?q 7)))
|
||||||
|
(please nil))
|
||||||
|
(while (not (member key allowed-keys))
|
||||||
|
(if (not (member key '(??)))
|
||||||
|
(when key
|
||||||
|
(unless please
|
||||||
|
(setq prompt (concat "Please answer with one of the alternatives.\n\n"
|
||||||
|
prompt))
|
||||||
|
(setq please t)))
|
||||||
|
(describe-function 'nxhtml-setup-install)
|
||||||
|
(select-window (get-buffer-window (help-buffer)))
|
||||||
|
(delete-other-windows))
|
||||||
|
(setq key (web-vcs-read-key prompt))
|
||||||
|
;;(message "key = %S" key) (sit-for 1)
|
||||||
|
)
|
||||||
|
(case key
|
||||||
|
(7 (set-window-configuration curr-cfg)
|
||||||
|
nil)
|
||||||
|
(?1 'whole)
|
||||||
|
(?2 'part-by-part)
|
||||||
|
(?3 'update-existing)
|
||||||
|
(?T 'test-part-by-part)
|
||||||
|
)))))
|
||||||
|
(message "")
|
||||||
|
(case way
|
||||||
|
(whole (call-interactively 'nxhtml-setup-download-all))
|
||||||
|
(part-by-part (call-interactively 'nxhtml-setup-auto-download))
|
||||||
|
(update-existing (call-interactively 'nxhtml-update-existing-files))
|
||||||
|
(test-part-by-part (call-interactively 'nxhtml-setup-test-auto-download))
|
||||||
|
((eq nil way) nil)
|
||||||
|
(t (error "Unknown way = %S" way))))
|
||||||
|
|
||||||
|
(defvar nxhtml-basic-files '(
|
||||||
|
"nxhtml-base.el"
|
||||||
|
"nxhtml-loaddefs.el"
|
||||||
|
"web-autoload.el"
|
||||||
|
"etc/schema/schema-path-patch.el"
|
||||||
|
"nxhtml/nxhtml-autoload.el"
|
||||||
|
"autostart.el"
|
||||||
|
))
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(defun nxhtml-setup-auto-download (dl-dir)
|
||||||
|
"Set up to autoload nXhtml files from the web.
|
||||||
|
|
||||||
|
This function will download some initial files and then setup to
|
||||||
|
download the rest when you need them.
|
||||||
|
|
||||||
|
Files will be downloaded under the directory root you specify in
|
||||||
|
DL-DIR.
|
||||||
|
|
||||||
|
Note that files will not be upgraded automatically. The auto
|
||||||
|
downloading is just for files you are missing. (This may change a
|
||||||
|
bit in the future.) If you want to upgrade those files that you
|
||||||
|
have downloaded you can just call `nxhtml-update-existing-files'.
|
||||||
|
|
||||||
|
You can easily switch between this mode of downloading or
|
||||||
|
downloading the whole of nXhtml by once. To switch just call the
|
||||||
|
command `nxhtml-setup-install'.
|
||||||
|
|
||||||
|
See also the command `nxhtml-setup-download-all'.
|
||||||
|
|
||||||
|
Note: If your nXhtml is to old you can't use this function
|
||||||
|
directly. You have to upgrade first, se the function
|
||||||
|
above. Version 2.07 or above is good for this."
|
||||||
|
(interactive (progn
|
||||||
|
(describe-function 'nxhtml-setup-auto-download)
|
||||||
|
(select-window (get-buffer-window (help-buffer)))
|
||||||
|
(delete-other-windows)
|
||||||
|
(nxhtml-check-convert-to-part-by-part)
|
||||||
|
(list
|
||||||
|
(progn
|
||||||
|
(when (and (boundp 'nxhtml-autoload-web)
|
||||||
|
(not nxhtml-autoload-web))
|
||||||
|
(unless (yes-or-no-p "Convert to updating nXhtml part by part? ")
|
||||||
|
(throw 'command-level nil)))
|
||||||
|
(nxhtml-web-vcs-read-dl-dir "Download nXhtml part by part to directory: ")))))
|
||||||
|
(catch 'command-level
|
||||||
|
(if (not dl-dir)
|
||||||
|
(unless (with-no-warnings (called-interactively-p))
|
||||||
|
(error "dl-dir should be a directory"))
|
||||||
|
(nxhtml-check-convert-to-part-by-part)
|
||||||
|
(when (and (boundp 'nxhtml-install-dir)
|
||||||
|
nxhtml-install-dir)
|
||||||
|
(unless (string= (file-truename dl-dir)
|
||||||
|
(file-truename nxhtml-install-dir))
|
||||||
|
(error "Download dir must be same as nxhtml-install-dir=%S" nxhtml-install-dir)))
|
||||||
|
(let* (;; Need some files:
|
||||||
|
(web-vcs-el-src (concat (file-name-sans-extension web-vcs-el-this) ".el"))
|
||||||
|
(web-vcs-el (expand-file-name (file-name-nondirectory web-vcs-el-src)
|
||||||
|
dl-dir))
|
||||||
|
(vcs 'lp)
|
||||||
|
(base-url (nxhtml-download-root-url nil))
|
||||||
|
(byte-comp (if (boundp 'web-autoload-autocompile)
|
||||||
|
web-autoload-autocompile
|
||||||
|
t))
|
||||||
|
(has-nxhtml (and (boundp 'nxhtml-install-dir)
|
||||||
|
nxhtml-install-dir))
|
||||||
|
(web-vcs-folder-cache nil))
|
||||||
|
(setq nxhtml-install-dir dl-dir)
|
||||||
|
(let ((root (file-name-directory dl-dir)))
|
||||||
|
(unless (file-exists-p root)
|
||||||
|
(unless (yes-or-no-p (format "Directory %S does not exist, create it? " root))
|
||||||
|
(error "Aborted by user"))))
|
||||||
|
(make-directory dl-dir t)
|
||||||
|
(setq message-log-max t)
|
||||||
|
(view-echo-area-messages)
|
||||||
|
(message "")
|
||||||
|
(message "")
|
||||||
|
(web-vcs-message-with-face 'web-vcs-green "==== Starting nXhtml part by part state ====")
|
||||||
|
(message "has-nxhtml=%s" has-nxhtml)
|
||||||
|
;; Fix-me: First copy this file and web-vcs.el to its destination:
|
||||||
|
(unless (string= (file-truename dl-dir)
|
||||||
|
(file-truename (file-name-directory nxhtml-web-vcs-file)))
|
||||||
|
(dolist (f (list web-vcs-el-src nxhtml-web-vcs-file))
|
||||||
|
(copy-file f (expand-file-name (file-name-nondirectory f) dl-dir)
|
||||||
|
'ok-overwrite)))
|
||||||
|
(when byte-comp (web-vcs-byte-compile-newer-file web-vcs-el t))
|
||||||
|
;; Get basic file list:
|
||||||
|
(catch 'web-autoload-comp-restart
|
||||||
|
;;(let ((file-mask (regexp-opt nxhtml-basic-files)))
|
||||||
|
;; (web-vcs-get-missing-matching-files vcs base-url dl-dir file-mask))
|
||||||
|
(dolist (f nxhtml-basic-files)
|
||||||
|
(web-vcs-get-missing-matching-files vcs base-url dl-dir f))
|
||||||
|
;; Autostart.el has not run yet, add download dir to load-path.
|
||||||
|
(let ((load-path (cons (file-name-directory web-vcs-el) load-path)))
|
||||||
|
(when byte-comp
|
||||||
|
(dolist (file nxhtml-basic-files)
|
||||||
|
(let ((el-file (expand-file-name file dl-dir)))
|
||||||
|
(web-vcs-byte-compile-newer-file el-file nil)))))
|
||||||
|
(let ((autostart-file (expand-file-name "autostart" dl-dir)))
|
||||||
|
;;(ad-deactivate 'require)
|
||||||
|
(web-vcs-set&save-option 'nxhtml-autoload-web t)
|
||||||
|
(web-vcs-log nil nil "* nXhtml: Download Part by Part as Needed\n")
|
||||||
|
(load autostart-file)
|
||||||
|
(unless (ad-is-active 'require) (ad-activate 'require))
|
||||||
|
(web-vcs-log-save)
|
||||||
|
(web-vcs-message-with-face 'web-vcs-green "==== Basic files for nXhtml part by part are now installed ====")
|
||||||
|
(web-vcs-display-messages t)
|
||||||
|
(unless has-nxhtml (nxhtml-add-loading-to-custom-file autostart-file t))))))))
|
||||||
|
|
||||||
|
;;(call-interactively 'nxhtml-download)
|
||||||
|
;;;###autoload
|
||||||
|
(defun nxhtml-setup-download-all (dl-dir)
|
||||||
|
"Download or update all of nXhtml.
|
||||||
|
|
||||||
|
You can download all if nXhtml with this command.
|
||||||
|
|
||||||
|
To update existing files use `nxhtml-update-existing-files'.
|
||||||
|
|
||||||
|
If you want to download only those files you are actually using
|
||||||
|
then call `nxhtml-setup-auto-download' instead.
|
||||||
|
|
||||||
|
See the command `nxhtml-setup-install' for a convenient way to
|
||||||
|
call these commands.
|
||||||
|
|
||||||
|
For more information about auto download of nXhtml files see
|
||||||
|
`nxhtml-setup-auto-download'."
|
||||||
|
(interactive (progn
|
||||||
|
(describe-function 'nxhtml-setup-auto-download)
|
||||||
|
(select-window (get-buffer-window (help-buffer)))
|
||||||
|
(delete-other-windows)
|
||||||
|
;;(nxhtml-check-convert-to-part-by-part)
|
||||||
|
(list
|
||||||
|
(nxhtml-web-vcs-read-dl-dir "Download whole nXhtml to directory: "))))
|
||||||
|
|
||||||
|
(let ((root (file-name-directory dl-dir)))
|
||||||
|
(unless (file-exists-p root)
|
||||||
|
(unless (yes-or-no-p (format "Directory %S does not exist, create it? " root))
|
||||||
|
(error "Aborted by user"))))
|
||||||
|
(make-directory dl-dir t)
|
||||||
|
(let ((msg (concat "Downloading nXhtml through Launchpad web interface will take rather long\n"
|
||||||
|
"time (5-15 minutes) so you may want to do it in a separate Emacs session.\n\n"
|
||||||
|
"Do you want to download using this Emacs session? "
|
||||||
|
)))
|
||||||
|
(if (not (y-or-n-p msg))
|
||||||
|
(message "Aborted")
|
||||||
|
(setq message-log-max t)
|
||||||
|
(let ((do-byte (y-or-n-p "Do you want to byte compile the files after downloading? ")))
|
||||||
|
(nxhtml-download-1 dl-dir nil do-byte)))))
|
||||||
|
|
||||||
|
|
||||||
|
(defun nxhtml-download-1 (dl-dir revision do-byte)
|
||||||
|
"Download nXhtml to directory DL-DIR.
|
||||||
|
If REVISION is nil download latest revision, otherwise the
|
||||||
|
specified one.
|
||||||
|
|
||||||
|
If DO-BYTE is non-nil byte compile nXhtml after download."
|
||||||
|
(let* ((has-nxhtml (and (boundp 'nxhtml-install-dir)
|
||||||
|
nxhtml-install-dir))
|
||||||
|
(base-url nxhtml-web-vcs-base-url)
|
||||||
|
(files-url (concat base-url "files/"))
|
||||||
|
;;(revs-url (concat base-url "changes/"))
|
||||||
|
(rev-part (if revision (number-to-string revision) "head%3A/"))
|
||||||
|
(full-root-url (concat files-url rev-part))
|
||||||
|
(web-vcs-folder-cache nil)
|
||||||
|
(web-autoload-paranoid nil))
|
||||||
|
;;(nxhtml-require-base)
|
||||||
|
(when (web-vcs-get-files-from-root 'lp full-root-url dl-dir)
|
||||||
|
(web-vcs-display-messages t)
|
||||||
|
(web-vcs-log nil nil "* nXhtml: Download All\n")
|
||||||
|
(web-vcs-set&save-option 'nxhtml-autoload-web nil)
|
||||||
|
(message "")
|
||||||
|
(web-vcs-message-with-face 'web-vcs-green "==== Starting downloading whole nXhtml ====")
|
||||||
|
(let ((autostart-file (expand-file-name "autostart" dl-dir)))
|
||||||
|
(load autostart-file)
|
||||||
|
(web-vcs-log-save)
|
||||||
|
(web-vcs-message-with-face 'web-vcs-green "==== All files for nXhtml are now installed ====")
|
||||||
|
(nxhtmlmaint-byte-recompile)
|
||||||
|
(unless has-nxhtml (nxhtml-add-loading-to-custom-file autostart-file nil))))))
|
||||||
|
|
||||||
|
(defun nxhtml-check-convert-to-part-by-part ()
|
||||||
|
(when (and (boundp 'nxhtml-install-dir)
|
||||||
|
nxhtml-install-dir)
|
||||||
|
(unless (and (boundp 'nxhtml-autoload-web)
|
||||||
|
nxhtml-autoload-web)
|
||||||
|
(if (not (boundp 'nxhtml-menu:version))
|
||||||
|
(error "nxhtml-install-dir set but no version found")
|
||||||
|
(unless (string-match "[\.0-9]+" nxhtml-menu:version)
|
||||||
|
(error "Can't find current version nxhtml-menu:version=%S" nxhtml-menu:version))
|
||||||
|
(let* ((ver-str (match-string 0 nxhtml-menu:version))
|
||||||
|
(ver-num (string-to-number ver-str)))
|
||||||
|
(when (< ver-num 2.07)
|
||||||
|
(web-vcs-message-with-face 'web-vcs-red "Too old nXhtml for download part by part.")
|
||||||
|
(throw 'command-level nil)))))))
|
||||||
|
|
||||||
|
|
||||||
|
;;(directory-files default-directory nil "\\el$")
|
||||||
|
;;(directory-files default-directory nil "[^#~]$")
|
||||||
|
;;;###autoload
|
||||||
|
(defun nxhtml-update-existing-files ()
|
||||||
|
"Update existing nXhtml files from the development sources.
|
||||||
|
Only files you already have will be updated.
|
||||||
|
|
||||||
|
Note that this works both if you have setup nXhtml to auto
|
||||||
|
download files as you need them or if you have downloaded all of
|
||||||
|
nXhtml at once.
|
||||||
|
|
||||||
|
For more information about installing and updating nXhtml see the
|
||||||
|
command `nxhtml-setup-install'."
|
||||||
|
;; Fix-me: download new files too if you are not auto downloading.
|
||||||
|
(interactive)
|
||||||
|
(when (y-or-n-p "Do you want to update your nXhtml files? ")
|
||||||
|
(message "")
|
||||||
|
(web-vcs-display-messages t)
|
||||||
|
(web-vcs-message-with-face 'web-vcs-yellow "*\nStarting updating your nXhtml files.\n*\n")
|
||||||
|
(message nil)
|
||||||
|
(web-vcs-clear-folder-cache)
|
||||||
|
(let ((vcs 'lp)
|
||||||
|
(base-url (nxhtml-download-root-url nil))
|
||||||
|
(dl-dir nxhtml-install-dir)
|
||||||
|
web-vcs-folder-cache)
|
||||||
|
(setq dl-dir (file-name-as-directory dl-dir))
|
||||||
|
(web-vcs-update-existing-files vcs base-url dl-dir dl-dir)
|
||||||
|
(web-vcs-clear-folder-cache))
|
||||||
|
(display-buffer (get-buffer-create "*Compile-Log*"))
|
||||||
|
(nxhtmlmaint-byte-recompile)
|
||||||
|
(web-vcs-log-save)
|
||||||
|
(web-vcs-message-with-face 'web-vcs-yellow "*\nFinished updating your nXhtml files.\n*\n")
|
||||||
|
(message nil)))
|
||||||
|
|
||||||
|
|
||||||
|
;;(nxhtml-maybe-download-files (expand-file-name "nxhtml/doc/img/" nxhtml-install-dir) nil)
|
||||||
|
;;;###autoload
|
||||||
|
(defun nxhtml-get-missing-files (sub-dir file-name-list)
|
||||||
|
(let (file-mask
|
||||||
|
(root-url (nxhtml-download-root-url nil))
|
||||||
|
files-regexp
|
||||||
|
(full-dir (expand-file-name sub-dir nxhtml-install-dir))
|
||||||
|
miss-names)
|
||||||
|
(if file-name-list
|
||||||
|
(progn
|
||||||
|
(dolist (f file-name-list)
|
||||||
|
(let ((full-f (expand-file-name f full-dir)))
|
||||||
|
(unless (file-exists-p full-f)
|
||||||
|
(setq miss-names (cons f miss-names)))))
|
||||||
|
(setq files-regexp (regexp-opt miss-names)))
|
||||||
|
(setq files-regexp ".*"))
|
||||||
|
;;(unless (file-exists-p full-dir) (make-directory full-dir t))
|
||||||
|
(setq file-mask
|
||||||
|
(concat (file-relative-name (file-name-as-directory full-dir)
|
||||||
|
nxhtml-install-dir)
|
||||||
|
files-regexp))
|
||||||
|
(let ((web-vcs-folder-cache nil))
|
||||||
|
(web-vcs-get-missing-matching-files 'lp root-url nxhtml-install-dir
|
||||||
|
file-mask))))
|
||||||
|
|
||||||
|
;; Fix-me: Does not work, Emacs Bug
|
||||||
|
;; Maybe use wget? http://gnuwin32.sourceforge.net/packages/wget.htm
|
||||||
|
;; http://emacsbugs.donarmstrong.com/cgi-bin/bugreport.cgi?bug=5103
|
||||||
|
;; (nxhtml-get-release-revision)
|
||||||
|
(defun nxhtml-get-release-revision ()
|
||||||
|
"Get revision number for last release."
|
||||||
|
(let* ((all-rev-url "http://code.launchpad.net/%7Enxhtml/nxhtml/main")
|
||||||
|
(url-buf (url-retrieve-synchronously all-rev-url))
|
||||||
|
(vcs-rec (or (assq 'lp web-vcs-links-regexp)
|
||||||
|
(error "Does not know web-vcs 'lp")))
|
||||||
|
(rel-ver-regexp (nth 6 vcs-rec))
|
||||||
|
)
|
||||||
|
(message "%S" url-buf)
|
||||||
|
(with-current-buffer url-buf
|
||||||
|
(when (re-search-forward rel-ver-regexp nil t)
|
||||||
|
(match-string 1)))))
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(defun nxhtml-byte-compile-file (file &optional load)
|
||||||
|
(let ((extra-load-path (when nxhtml-install-dir
|
||||||
|
(mapcar (lambda (p)
|
||||||
|
(file-name-as-directory
|
||||||
|
(expand-file-name p nxhtml-install-dir)))
|
||||||
|
'("tests" "related" "nxhtml" "util" ".")))))
|
||||||
|
;; (message "nxhtml-byte-compile-file:extra-load-path=%s" extra-load-path)
|
||||||
|
(web-vcs-byte-compile-file file load extra-load-path)))
|
||||||
|
|
||||||
|
;; fix-me: change web-vcs-byte-compile-file instead
|
||||||
|
;;;###autoload
|
||||||
|
(defun nxhtml-byte-recompile-file (file &optional load)
|
||||||
|
"Byte recompile FILE file if necessary.
|
||||||
|
For more information see `nxhtml-byte-compile-file'.
|
||||||
|
Loading is done if recompiled and LOAD is t."
|
||||||
|
(interactive (list (buffer-file-name)
|
||||||
|
t))
|
||||||
|
(let ((elc-file (byte-compile-dest-file file)))
|
||||||
|
(if (file-newer-than-file-p file elc-file)
|
||||||
|
(nxhtml-byte-compile-file file load)
|
||||||
|
(message "Byte compilation of this file is up to date."))))
|
||||||
|
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;;; Add to custom file
|
||||||
|
|
||||||
|
|
||||||
|
(defvar nxhtml-handheld-wincfg nil)
|
||||||
|
(defun nxhtml-handheld-restore-wincg ()
|
||||||
|
(when nxhtml-handheld-wincfg
|
||||||
|
(set-window-configuration nxhtml-handheld-wincfg)
|
||||||
|
(setq nxhtml-handheld-wincfg nil)))
|
||||||
|
|
||||||
|
;;(nxhtml-handheld-add-loading-to-custom-file "TEST-ME")
|
||||||
|
(defun nxhtml-handheld-add-loading-to-custom-file (file-to-load)
|
||||||
|
(setq nxhtml-handheld-wincfg (current-window-configuration))
|
||||||
|
(delete-other-windows)
|
||||||
|
(let ((info-buf (get-buffer-create "Information about how to add nXhtml to (custom-file)"))
|
||||||
|
(load-str (format "(load %S)" file-to-load)))
|
||||||
|
(with-current-buffer info-buf
|
||||||
|
(add-hook 'kill-buffer-hook 'nxhtml-handheld-restore-wincg nil t)
|
||||||
|
(insert "Insert the following line to (custom-file), ie the file in the other window:\n\n")
|
||||||
|
(let ((here (point)))
|
||||||
|
(insert " "
|
||||||
|
(propertize load-str 'face 'secondary-selection)
|
||||||
|
"\n")
|
||||||
|
(copy-region-as-kill here (point))
|
||||||
|
(insert "\nThe line above is in the clipboard so you can just paste it where you want it.\n")
|
||||||
|
(insert "When ready kill this buffer.")
|
||||||
|
(goto-char here))
|
||||||
|
(setq buffer-read-only t)
|
||||||
|
(set-buffer-modified-p nil))
|
||||||
|
(set-window-buffer (selected-window) info-buf)
|
||||||
|
(find-file-other-window (custom-file))))
|
||||||
|
|
||||||
|
;; (nxhtml-add-loading-to-custom-file "test-file")
|
||||||
|
(defun nxhtml-add-loading-to-custom-file (file-to-load part-by-part)
|
||||||
|
(message "")
|
||||||
|
(require 'cus-edit)
|
||||||
|
(if (not (condition-case nil (custom-file) (error nil)))
|
||||||
|
(progn
|
||||||
|
(message "\n\n")
|
||||||
|
(web-vcs-message-with-face
|
||||||
|
'web-vcs-red
|
||||||
|
(concat "Since you have started this Emacs session without running your init files"
|
||||||
|
"\nthey are unknown and the installation can not add the statement below."
|
||||||
|
"\nTo finish the setup of nXhtml you must add"
|
||||||
|
"\n\n (load %S)"
|
||||||
|
"\n\nto your custom-file if you have not done it yet."
|
||||||
|
"\nYou must also customize the variable `nxhtml-autoload-web' to tell that"
|
||||||
|
(if part-by-part
|
||||||
|
"\nyou want to download nXhml files as you need them."
|
||||||
|
"\nyou do not want to allow automatic downloading of nXhtml files."
|
||||||
|
)
|
||||||
|
"\n")
|
||||||
|
file-to-load)
|
||||||
|
(message "")
|
||||||
|
(web-vcs-display-messages t))
|
||||||
|
(let ((prompt (concat "Basic setup of nXhtml is done, but it must be loaded from (custom-file)."
|
||||||
|
"\nShould I add loading of nXhtml to (custom-file) for you? ")))
|
||||||
|
(if (yes-or-no-p prompt)
|
||||||
|
(nxhtml-add-loading-to-custom-file-auto file-to-load)
|
||||||
|
(if (yes-or-no-p "Should I guide you through how to do it? ")
|
||||||
|
(nxhtml-handheld-add-loading-to-custom-file file-to-load)
|
||||||
|
(web-vcs-message-with-face 'web-vcs-green
|
||||||
|
"OK. You need to add (load %S) to your init file" file-to-load))))))
|
||||||
|
|
||||||
|
;; Fix-me: really do this? Is it safe enough?
|
||||||
|
(defun nxhtml-add-loading-to-custom-file-auto (file-to-load)
|
||||||
|
(unless (file-name-absolute-p file-to-load)
|
||||||
|
(error "nxhtml-add-loading-to-custom-file: Not abs file name: %S" file-to-load))
|
||||||
|
(let ((old-buf (find-buffer-visiting (custom-file)))
|
||||||
|
(full-to-load (expand-file-name file-to-load)))
|
||||||
|
(with-current-buffer (or old-buf (find-file-noselect (custom-file)))
|
||||||
|
(save-restriction
|
||||||
|
(widen)
|
||||||
|
(catch 'done
|
||||||
|
(while (progn
|
||||||
|
(while (progn (skip-chars-forward " \t\n\^l")
|
||||||
|
(looking-at ";"))
|
||||||
|
(forward-line 1))
|
||||||
|
(not (eobp)))
|
||||||
|
(let ((start (point))
|
||||||
|
(form (read (current-buffer))))
|
||||||
|
(when (eq (nth 0 form) 'load)
|
||||||
|
(let* ((form-file (nth 1 form))
|
||||||
|
(full-form-file (expand-file-name form-file)))
|
||||||
|
(when (string= full-form-file full-to-load)
|
||||||
|
(throw 'done nil))
|
||||||
|
(when (and (string= (file-name-nondirectory full-form-file)
|
||||||
|
(file-name-nondirectory full-to-load))
|
||||||
|
(not (string= full-form-file full-to-load)))
|
||||||
|
(if (yes-or-no-p "Replace current nXhtml loading in (custom-file)? ")
|
||||||
|
(progn
|
||||||
|
(goto-char start) ;; at form start now
|
||||||
|
(forward-char (length "(load "))
|
||||||
|
(skip-chars-forward " \t\n\^l") ;; at start of string
|
||||||
|
(setq start (point))
|
||||||
|
(setq form (read (current-buffer)))
|
||||||
|
(delete-region start (point))
|
||||||
|
(insert (format "%S" full-to-load))
|
||||||
|
(basic-save-buffer))
|
||||||
|
(web-vcs-message-with-face 'web-vcs-red "Can't continue then")
|
||||||
|
(web-vcs-display-messages t)
|
||||||
|
(throw 'command-level nil)))))))
|
||||||
|
;; At end of file
|
||||||
|
(insert (format "\n(load %S)\n" file-to-load))
|
||||||
|
(basic-save-buffer))
|
||||||
|
(unless old-buf (kill-buffer old-buf))))))
|
||||||
|
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;;;;;; Start Testing function
|
||||||
|
(defun emacs-Q-no-nxhtml (&rest args)
|
||||||
|
(let* ((old-env-load-path (getenv "EMACSLOADPATH"))
|
||||||
|
sub-env-load-path
|
||||||
|
(elp-list (or (when old-env-load-path
|
||||||
|
;;(split-string old-env-load-path ";"))
|
||||||
|
(split-string old-env-load-path path-separator))
|
||||||
|
load-path))
|
||||||
|
(sub-elp-list nil)
|
||||||
|
ret
|
||||||
|
(this-emacs-exe (locate-file invocation-name
|
||||||
|
(list invocation-directory)
|
||||||
|
exec-suffixes)))
|
||||||
|
(dolist (p elp-list)
|
||||||
|
(when (file-exists-p p)
|
||||||
|
(unless (string= nxhtml-install-dir p)
|
||||||
|
(let* ((dir (file-name-directory p))
|
||||||
|
(last (file-name-nondirectory p))
|
||||||
|
(last-dir (file-name-nondirectory
|
||||||
|
(directory-file-name dir))))
|
||||||
|
(unless (and (string= "nxhtml" last-dir)
|
||||||
|
(member last '("util" "test" "nxhtml" "related" "alt")))
|
||||||
|
(setq sub-elp-list (cons p sub-elp-list)))))))
|
||||||
|
;;(setq sub-env-load-path (mapconcat 'identity (reverse sub-elp-list) ";"))
|
||||||
|
(setq sub-env-load-path (mapconcat 'identity (reverse sub-elp-list) path-separator))
|
||||||
|
(setenv "EMACSLOADPATH" sub-env-load-path)
|
||||||
|
(setq ret (apply 'call-process this-emacs-exe nil 0 nil "-Q" args))
|
||||||
|
(setenv "EMACSLOADPATH" old-env-load-path)
|
||||||
|
ret))
|
||||||
|
|
||||||
|
;; (call-interactively-p 'nxhtml-setup-test-auto-download)
|
||||||
|
;; (nxhtml-setup-test-auto-download "c:/test2/")
|
||||||
|
(defun nxhtml-setup-test-auto-download (test-dir)
|
||||||
|
"Test autoload in a new emacs, started with 'emacs -Q'.
|
||||||
|
You can choose where to download the files and just delete them
|
||||||
|
when you have tested enough."
|
||||||
|
(interactive (list (read-directory-name "Directory for test of auto download of nXhtml: ")))
|
||||||
|
(let ((this-dir (file-name-directory web-vcs-el-this))
|
||||||
|
(this-name (file-name-nondirectory web-vcs-el-this))
|
||||||
|
that-file)
|
||||||
|
(when (and (file-exists-p test-dir)
|
||||||
|
(not (y-or-n-p (format "Directory %S exists, really test there? " test-dir))))
|
||||||
|
(error "Aborted"))
|
||||||
|
(unless (file-exists-p test-dir) (make-directory test-dir))
|
||||||
|
(setq that-file (expand-file-name this-name test-dir))
|
||||||
|
(when (file-exists-p that-file) (delete-file that-file))
|
||||||
|
(copy-file web-vcs-el-this that-file)
|
||||||
|
(emacs-Q-no-nxhtml "-l" that-file "-f" "nxhtml-setup-test-auto-download-do-it-here")))
|
||||||
|
|
||||||
|
(defun nxhtml-setup-test-auto-download-do-it-here ()
|
||||||
|
"Helper for `nxhtml-setup-test-auto-down-load'."
|
||||||
|
(let ((this-dir (file-name-directory web-vcs-el-this)))
|
||||||
|
(nxhtml-setup-auto-download this-dir)))
|
||||||
|
|
||||||
|
(defun web-vcs-check-if-modified ()
|
||||||
|
(let (
|
||||||
|
(t1 (format-time-string "%Y-%m-%dT%T%z" (date-to-time "2010-01-01 18:20")))
|
||||||
|
(t2 (format-time-string "%Y-%m-%dT%T%z" (date-to-time "Mon, 28 Dec 2009 08:57:44 GMT")))
|
||||||
|
(url-request-extra-headers
|
||||||
|
(list
|
||||||
|
(cons "If-Modified-Since"
|
||||||
|
(format-time-string
|
||||||
|
;;"%Y-%m-%dT%T%z"
|
||||||
|
"%a, %e %b %Y %H:%M:%S GMT"
|
||||||
|
(nth 5 (file-attributes "c:/test/temp.el" )))
|
||||||
|
)))
|
||||||
|
xb)
|
||||||
|
(setq xb (url-retrieve-synchronously "http://www.emacswiki.org/emacs/download/anything.el"))
|
||||||
|
(switch-to-buffer xb)
|
||||||
|
))
|
||||||
|
;; (emacs-Q-no-nxhtml "web-vcs.el" "-l" "c:/test/d27/web-autostart.el")
|
||||||
|
;; (emacs-Q-no-nxhtml "web-vcs.el" "-l" "c:/test/d27/autostart.el")
|
||||||
|
;; (emacs-Q-no-nxhtml "web-vcs.el" "-f" "eval-buffer" "-f" "nxhtml-temp-setup-auto-download")
|
||||||
|
;; (emacs-Q-no-nxhtml "-l" "c:/test/d27/web-vcs" "-l" "c:/test/d27/nxhtml-web-vcs" "-f" "nxhtml-temp-setup-auto-download")
|
||||||
|
;; (emacs-Q-no-nxhtml "-l" "c:/test/d27/nxhtml-web-vcs" "-f" "nxhtml-temp-setup-auto-download")
|
||||||
|
;; (emacs-Q-no-nxhtml "--geometry=200x50+100+100" "-l" "c:/test/d27/web-vcs" "-f" "web-vcs-nxhtml")
|
||||||
|
(defun nxhtml-temp-setup-auto-download ()
|
||||||
|
;;(when (fboundp 'w32-send-sys-command) (w32-send-sys-command #xf030) (sit-for 2))
|
||||||
|
(set-frame-size (selected-frame)
|
||||||
|
(/ 1024 (frame-char-width))
|
||||||
|
(/ 512 (frame-char-height))
|
||||||
|
)
|
||||||
|
(tool-bar-mode -1)
|
||||||
|
(set-frame-position (selected-frame) 100 50)
|
||||||
|
(when (y-or-n-p "Do nXhtml? ")
|
||||||
|
(view-echo-area-messages)
|
||||||
|
(setq truncate-lines t)
|
||||||
|
(split-window-horizontally)
|
||||||
|
(let ((load-path (cons default-directory load-path)))
|
||||||
|
(require 'web-vcs))
|
||||||
|
;(nxhtml-setup-auto-download "c:/test/d27")
|
||||||
|
(call-interactively 'nxhtml-setup-auto-download)
|
||||||
|
))
|
||||||
|
;;;;;; End Testing function
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
|
|
||||||
|
(provide 'nxhtml-web-vcs)
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;;; nxhtml-web-vcs.el ends here
|
17
emacs.d/nxhtml/nxhtml/ChangeLog
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
2006-04-26 <lennart.borgman.073@student.lu.se>
|
||||||
|
|
||||||
|
* nxhtml.el (nxhtml-insert-skeleton-if-empty)
|
||||||
|
(nxhtml-insert-frame-skeleton): New functions.
|
||||||
|
|
||||||
|
2006-04-25 <lennart.borgman.073@student.lu.se>
|
||||||
|
|
||||||
|
* nxhtml.el (nxhtml-coding-systems-complete)
|
||||||
|
(nxhtml-script-url-predicate, nxhtml-script-completion-pattern)
|
||||||
|
(nxhtml-image-url-predicate, nxhtml-image-completion-pattern)
|
||||||
|
(nxhtml-mailto-predicate, nxhtml-predicate-error)
|
||||||
|
(nxhtml-in-xml-attribute-value-regex)
|
||||||
|
(nxhtml-read-mail-url-history, nxhtml-read-web-url-history)
|
||||||
|
(nxhtml-read-url-history, nxhtml-read-url-type)
|
||||||
|
(nxhtml-read-url-type-help, nxhtml-read-url)
|
||||||
|
(rng-complete-attribute-value): New entries for completion.
|
||||||
|
|
71
emacs.d/nxhtml/nxhtml/doc/demo.html
Normal file
|
@ -0,0 +1,71 @@
|
||||||
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
|
||||||
|
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<title>nXhtml Short Tour</title>
|
||||||
|
<script type="text/javascript" src="js/smoothgallery/scripts/mootools.js"></script>
|
||||||
|
<script type="text/javascript" src="js/smoothgallery/scripts/jd.gallery.js"></script>
|
||||||
|
<link rel="stylesheet" href="js/smoothgallery/css/layout.css" type="text/css" media="screen"/>
|
||||||
|
<link rel="stylesheet" href="js/smoothgallery/css/jd.gallery.css" type="text/css" media="screen"/>
|
||||||
|
<style type="text/css" media="screen">
|
||||||
|
/* <![CDATA[ */
|
||||||
|
#myGallery {
|
||||||
|
width: 660px;
|
||||||
|
height: 500px;
|
||||||
|
}
|
||||||
|
/* ]] */
|
||||||
|
</style>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<script type="text/javascript">
|
||||||
|
function startGallery() {
|
||||||
|
var myGallery = new gallery($('myGallery'), {
|
||||||
|
timed: true,
|
||||||
|
delay: 5000,
|
||||||
|
embedLinks: false,
|
||||||
|
showArrows: true,
|
||||||
|
showCarousel: true,
|
||||||
|
showInfopane: true,
|
||||||
|
showDescription: true,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
window.onDomReady(startGallery);
|
||||||
|
</script>
|
||||||
|
<div id="myGallery"><!-- SmoothGallery -->
|
||||||
|
|
||||||
|
<div class="imageElement">
|
||||||
|
<h3>Popup completion</h3>
|
||||||
|
<p>nXhtml can use popup style completion too (for XHTML)</p>
|
||||||
|
<a href="#" title="open image" class="open"></a>
|
||||||
|
<img src="img/popup-compl.png" class="full" alt="Popup completion" />
|
||||||
|
<img src="img/popup-compl.png" class="thumbnail" alt="Popup completion (thumbnail)" />
|
||||||
|
<div>
|
||||||
|
<p>
|
||||||
|
more about popup
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
more about popup
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="imageElement">
|
||||||
|
<h3>Emacs style completion</h3>
|
||||||
|
<p>Emacs default style for completion uses the minibuffer and an Emacs window</p>
|
||||||
|
<a href="#" title="open image" class="open"></a>
|
||||||
|
<img src="img/emacs-style-completion.png" class="full" alt="Emacs style completion" />
|
||||||
|
<img src="img/emacs-style-completion.png" class="thumbnail" alt="Emacs style completion (thumbnail)" />
|
||||||
|
<div>du</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="DescriptionDiv"
|
||||||
|
style="
|
||||||
|
text-align: center;
|
||||||
|
">
|
||||||
|
desc div
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
39
emacs.d/nxhtml/nxhtml/doc/html2xhtml.html
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||||
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<title>
|
||||||
|
How to Convert to XHTML
|
||||||
|
</title>
|
||||||
|
<link href="nxhtml.css" rel="StyleSheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>
|
||||||
|
How to Convert to XHTML
|
||||||
|
</h1>
|
||||||
|
<p>
|
||||||
|
With nxhtml-mode you can edit XHTML documents, but not HTML
|
||||||
|
dito. So what do you do with your old HTML documents? The
|
||||||
|
answer is simple: You convert them to XHTML! There is today
|
||||||
|
not many reasons not to convert them to XHTML. You may say
|
||||||
|
"but what about old browsers?". Most users just do not have
|
||||||
|
old browsers today. Old browsers are too dangerous to use on the
|
||||||
|
Internet.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
You can convert the documents easily from within nxhtml-mode
|
||||||
|
with <a href= "http://tidy.sourceforge.net/">Tidy</a>. However
|
||||||
|
Tidy does not come with nxhtml, you have to install it yourself.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
When Tidy is called from Emacs you can do a whole directory tree
|
||||||
|
at once. When a buffer is in nxhtml-mode (and tidy.el is found)
|
||||||
|
there is an entry on the menus called <b>Tidy</b> from which you
|
||||||
|
can access tidy and set the options for it. Note especially the
|
||||||
|
<b>Quick Options Settings</b> where you can set options for
|
||||||
|
converting to XHTML easily.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
424
emacs.d/nxhtml/nxhtml/doc/htmlfontify-example.html
Normal file
|
@ -0,0 +1,424 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
|
||||||
|
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<title></title>
|
||||||
|
<style type="text/css"><!--
|
||||||
|
body { font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; color: rgb(0, 0, 0); font-size: 10pt; text-decoration: none; }
|
||||||
|
--></style>
|
||||||
|
<style type="text/css"><!--
|
||||||
|
body { font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; color: rgb(0, 0, 0); font-size: 10pt; text-decoration: none; }
|
||||||
|
span.default { font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; color: rgb(0, 0, 0); font-size: 10pt; text-decoration: none; }
|
||||||
|
span.default a { font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; color: rgb(0, 0, 0); font-size: 10pt; text-decoration: underline; }
|
||||||
|
span.comment-face-1419 { color: rgb(178, 34, 34); font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; font-size: 10pt; text-decoration: none; }
|
||||||
|
span.comment-face-1419 a { color: rgb(178, 34, 34); font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; font-size: 10pt; text-decoration: underline; }
|
||||||
|
span.comment-delimiter-face-1418 { color: rgb(178, 34, 34); font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; font-size: 10pt; text-decoration: none; }
|
||||||
|
span.comment-delimiter-face-1418 a { color: rgb(178, 34, 34); font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; font-size: 10pt; text-decoration: underline; }
|
||||||
|
--></style><style type="text/css"><!--
|
||||||
|
body { font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; color: rgb(0, 0, 0); font-size: 10pt; text-decoration: none; }
|
||||||
|
span.default { font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; color: rgb(0, 0, 0); font-size: 10pt; text-decoration: none; }
|
||||||
|
span.default a { font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; color: rgb(0, 0, 0); font-size: 10pt; text-decoration: underline; }
|
||||||
|
span.help-argument-name-1420 { color: rgb(0, 0, 255); font-style: italic; font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-size: 10pt; text-decoration: none; }
|
||||||
|
span.help-argument-name-1420 a { color: rgb(0, 0, 255); font-style: italic; font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-size: 10pt; text-decoration: underline; }
|
||||||
|
span.button-0004 { text-decoration: underline; font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; color: rgb(0, 0, 0); font-size: 10pt; }
|
||||||
|
span.button-0004 a { text-decoration: underline; font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; color: rgb(0, 0, 0); font-size: 10pt; }
|
||||||
|
--></style><style type="text/css"><!--
|
||||||
|
body { font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; color: rgb(0, 0, 0); font-size: 10pt; text-decoration: none; }
|
||||||
|
span.default { font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; color: rgb(0, 0, 0); font-size: 10pt; text-decoration: none; }
|
||||||
|
span.default a { font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; color: rgb(0, 0, 0); font-size: 10pt; text-decoration: underline; }
|
||||||
|
span.completion-tooltip-face-1437 { color: rgb(0, 0, 0); background: rgb(255, 255, 255); font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; font-size: 10pt; text-decoration: none; }
|
||||||
|
span.completion-tooltip-face-1437 a { color: rgb(0, 0, 0); background: rgb(255, 255, 255); font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; font-size: 10pt; text-decoration: underline; }
|
||||||
|
span.completion-dynamic-face-1436 { color: rgb(0, 0, 0); background: rgb(255, 165, 0); font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; font-size: 10pt; text-decoration: none; }
|
||||||
|
span.completion-dynamic-face-1436 a { color: rgb(0, 0, 0); background: rgb(255, 165, 0); font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; font-size: 10pt; text-decoration: underline; }
|
||||||
|
span.compilation-warning-1435 { color: rgb(255, 165, 0); font-weight: 700; font-family: outline-courier new; font-stretch: normal; font-style: normal; font-size: 10pt; text-decoration: none; }
|
||||||
|
span.compilation-warning-1435 a { color: rgb(255, 165, 0); font-weight: 700; font-family: outline-courier new; font-stretch: normal; font-style: normal; font-size: 10pt; text-decoration: underline; }
|
||||||
|
span.compilation-line-number-1434 { color: rgb(184, 134, 11); font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; font-size: 10pt; text-decoration: none; }
|
||||||
|
span.compilation-line-number-1434 a { color: rgb(184, 134, 11); font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; font-size: 10pt; text-decoration: underline; }
|
||||||
|
span.compilation-info-1433 { color: rgb(0, 205, 0); font-weight: 700; font-family: outline-courier new; font-stretch: normal; font-style: normal; font-size: 10pt; text-decoration: none; }
|
||||||
|
span.compilation-info-1433 a { color: rgb(0, 205, 0); font-weight: 700; font-family: outline-courier new; font-stretch: normal; font-style: normal; font-size: 10pt; text-decoration: underline; }
|
||||||
|
span.compilation-error-1430 { color: rgb(255, 0, 0); font-weight: 700; font-family: outline-courier new; font-stretch: normal; font-style: normal; font-size: 10pt; text-decoration: none; }
|
||||||
|
span.compilation-error-1430 a { color: rgb(255, 0, 0); font-weight: 700; font-family: outline-courier new; font-stretch: normal; font-style: normal; font-size: 10pt; text-decoration: underline; }
|
||||||
|
span.compilation-column-number-1429 { color: rgb(34, 139, 34); font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; font-size: 10pt; text-decoration: none; }
|
||||||
|
span.compilation-column-number-1429 a { color: rgb(34, 139, 34); font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; font-size: 10pt; text-decoration: underline; }
|
||||||
|
span.comint-highlight-prompt-1428 { color: rgb(0, 0, 139); font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; font-size: 10pt; text-decoration: none; }
|
||||||
|
span.comint-highlight-prompt-1428 a { color: rgb(0, 0, 139); font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; font-size: 10pt; text-decoration: underline; }
|
||||||
|
span.button-0004 { text-decoration: underline; font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; color: rgb(0, 0, 0); font-size: 10pt; }
|
||||||
|
span.button-0004 a { text-decoration: underline; font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; color: rgb(0, 0, 0); font-size: 10pt; }
|
||||||
|
--></style><style type="text/css"><!--
|
||||||
|
body { font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; color: rgb(0, 0, 0); font-size: 10pt; text-decoration: none; }
|
||||||
|
span.default { font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; color: rgb(0, 0, 0); font-size: 10pt; text-decoration: none; }
|
||||||
|
span.default a { font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; color: rgb(0, 0, 0); font-size: 10pt; text-decoration: underline; }
|
||||||
|
span.default-0273 { color: rgb(250, 235, 215); font-size: 105%; text-decoration: none; }
|
||||||
|
span.default-0273 a { color: rgb(250, 235, 215); font-size: 105%; text-decoration: underline; }
|
||||||
|
span.default-0272 { background: rgb(250, 235, 215); font-size: 105%; text-decoration: none; }
|
||||||
|
span.default-0272 a { background: rgb(250, 235, 215); font-size: 105%; text-decoration: underline; }
|
||||||
|
span.default-0271 { color: rgb(250, 240, 230); font-size: 105%; text-decoration: none; }
|
||||||
|
span.default-0271 a { color: rgb(250, 240, 230); font-size: 105%; text-decoration: underline; }
|
||||||
|
span.default-0270 { background: rgb(250, 240, 230); font-size: 105%; text-decoration: none; }
|
||||||
|
span.default-0270 a { background: rgb(250, 240, 230); font-size: 105%; text-decoration: underline; }
|
||||||
|
span.default-0269 { color: rgb(253, 245, 230); font-size: 105%; text-decoration: none; }
|
||||||
|
span.default-0269 a { color: rgb(253, 245, 230); font-size: 105%; text-decoration: underline; }
|
||||||
|
span.default-0268 { background: rgb(253, 245, 230); font-size: 105%; text-decoration: none; }
|
||||||
|
span.default-0268 a { background: rgb(253, 245, 230); font-size: 105%; text-decoration: underline; }
|
||||||
|
span.default-0267 { color: rgb(255, 250, 240); font-size: 105%; text-decoration: none; }
|
||||||
|
span.default-0267 a { color: rgb(255, 250, 240); font-size: 105%; text-decoration: underline; }
|
||||||
|
span.default-0266 { background: rgb(255, 250, 240); font-size: 105%; text-decoration: none; }
|
||||||
|
span.default-0266 a { background: rgb(255, 250, 240); font-size: 105%; text-decoration: underline; }
|
||||||
|
span.default-0265 { color: rgb(220, 220, 220); font-size: 105%; text-decoration: none; }
|
||||||
|
span.default-0265 a { color: rgb(220, 220, 220); font-size: 105%; text-decoration: underline; }
|
||||||
|
span.default-0264 { background: rgb(220, 220, 220); font-size: 105%; text-decoration: none; }
|
||||||
|
span.default-0264 a { background: rgb(220, 220, 220); font-size: 105%; text-decoration: underline; }
|
||||||
|
span.default-0263 { color: rgb(245, 245, 245); font-size: 105%; text-decoration: none; }
|
||||||
|
span.default-0263 a { color: rgb(245, 245, 245); font-size: 105%; text-decoration: underline; }
|
||||||
|
span.default-0262 { background: rgb(245, 245, 245); font-size: 105%; text-decoration: none; }
|
||||||
|
span.default-0262 a { background: rgb(245, 245, 245); font-size: 105%; text-decoration: underline; }
|
||||||
|
span.default-0261 { color: rgb(248, 248, 255); font-size: 105%; text-decoration: none; }
|
||||||
|
span.default-0261 a { color: rgb(248, 248, 255); font-size: 105%; text-decoration: underline; }
|
||||||
|
span.default-0260 { background: rgb(248, 248, 255); font-size: 105%; text-decoration: none; }
|
||||||
|
span.default-0260 a { background: rgb(248, 248, 255); font-size: 105%; text-decoration: underline; }
|
||||||
|
span.default-0259 { color: rgb(255, 250, 250); font-size: 105%; text-decoration: none; }
|
||||||
|
span.default-0259 a { color: rgb(255, 250, 250); font-size: 105%; text-decoration: underline; }
|
||||||
|
span.default-0258 { background: rgb(255, 250, 250); font-size: 105%; text-decoration: none; }
|
||||||
|
span.default-0258 a { background: rgb(255, 250, 250); font-size: 105%; text-decoration: underline; }
|
||||||
|
--></style><style type="text/css"><!--
|
||||||
|
body { font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; color: rgb(0, 0, 0); font-size: 10pt; text-decoration: none; }
|
||||||
|
span.default { font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; color: rgb(0, 0, 0); font-size: 10pt; text-decoration: none; }
|
||||||
|
span.default a { font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; color: rgb(0, 0, 0); font-size: 10pt; text-decoration: underline; }
|
||||||
|
span.default-1432 { text-decoration: underline; color: rgb(176, 48, 96); font-weight: 700; font-size: 164%; }
|
||||||
|
span.default-1432 a { text-decoration: underline; color: rgb(176, 48, 96); font-weight: 700; font-size: 164%; }
|
||||||
|
span.default-1431 { color: rgb(176, 48, 96); font-weight: 700; font-size: 164%; text-decoration: none; }
|
||||||
|
span.default-1431 a { color: rgb(176, 48, 96); font-weight: 700; font-size: 164%; text-decoration: underline; }
|
||||||
|
--></style><style type="text/css"><!--
|
||||||
|
body { font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; color: rgb(0, 0, 0); font-size: 10pt; text-decoration: none; }
|
||||||
|
span.default { font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; color: rgb(0, 0, 0); font-size: 10pt; text-decoration: none; }
|
||||||
|
span.default a { font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; color: rgb(0, 0, 0); font-size: 10pt; text-decoration: underline; }
|
||||||
|
span.custom-button-0022 { border-width: 1px; border-style: outset; color: rgb(0, 0, 0); background: rgb(211, 211, 211); font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; font-size: 10pt; text-decoration: none; }
|
||||||
|
span.custom-button-0022 a { border-width: 1px; border-style: outset; color: rgb(0, 0, 0); background: rgb(211, 211, 211); font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; font-size: 10pt; text-decoration: underline; }
|
||||||
|
span.bold-0248 { background: rgb(173, 255, 47); font-weight: 700; font-family: outline-courier new; font-stretch: normal; font-style: normal; color: rgb(0, 0, 0); font-size: 10pt; text-decoration: none; }
|
||||||
|
span.bold-0248 a { background: rgb(173, 255, 47); font-weight: 700; font-family: outline-courier new; font-stretch: normal; font-style: normal; color: rgb(0, 0, 0); font-size: 10pt; text-decoration: underline; }
|
||||||
|
--></style><style type="text/css"><!--
|
||||||
|
body { font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; color: rgb(0, 0, 0); font-size: 10pt; text-decoration: none; }
|
||||||
|
span.default { font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; color: rgb(0, 0, 0); font-size: 10pt; text-decoration: none; }
|
||||||
|
span.default a { font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; color: rgb(0, 0, 0); font-size: 10pt; text-decoration: underline; }
|
||||||
|
span.match-1438 { background: rgb(255, 255, 0); font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; color: rgb(0, 0, 0); font-size: 10pt; text-decoration: none; }
|
||||||
|
span.match-1438 a { background: rgb(255, 255, 0); font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; color: rgb(0, 0, 0); font-size: 10pt; text-decoration: underline; }
|
||||||
|
span.underline-1413 { color: rgb(184, 134, 11); font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; text-decoration: underline; font-size: 10pt; }
|
||||||
|
span.underline-1413 a { color: rgb(184, 134, 11); font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; text-decoration: underline; font-size: 10pt; }
|
||||||
|
span.underline-0219 { text-decoration: underline; font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; color: rgb(0, 0, 0); font-size: 10pt; }
|
||||||
|
span.underline-0219 a { text-decoration: underline; font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; color: rgb(0, 0, 0); font-size: 10pt; }
|
||||||
|
span.underline-1412 { color: rgb(0, 205, 0); font-weight: 700; font-family: outline-courier new; font-stretch: normal; font-style: normal; text-decoration: underline; font-size: 10pt; }
|
||||||
|
span.underline-1412 a { color: rgb(0, 205, 0); font-weight: 700; font-family: outline-courier new; font-stretch: normal; font-style: normal; text-decoration: underline; font-size: 10pt; }
|
||||||
|
--></style><style type="text/css"><!--
|
||||||
|
body { font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; color: rgb(0, 0, 0); font-size: 10pt; text-decoration: none; }
|
||||||
|
span.default { font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; color: rgb(0, 0, 0); font-size: 10pt; text-decoration: none; }
|
||||||
|
span.default a { font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; color: rgb(0, 0, 0); font-size: 10pt; text-decoration: underline; }
|
||||||
|
span.comment-face-1419 { color: rgb(178, 34, 34); font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; font-size: 10pt; text-decoration: none; }
|
||||||
|
span.comment-face-1419 a { color: rgb(178, 34, 34); font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; font-size: 10pt; text-decoration: underline; }
|
||||||
|
span.comment-delimiter-face-1418 { color: rgb(178, 34, 34); font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; font-size: 10pt; text-decoration: none; }
|
||||||
|
span.comment-delimiter-face-1418 a { color: rgb(178, 34, 34); font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; font-size: 10pt; text-decoration: underline; }
|
||||||
|
span.string-face-1441 { color: rgb(188, 143, 143); font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; font-size: 10pt; text-decoration: none; }
|
||||||
|
span.string-face-1441 a { color: rgb(188, 143, 143); font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; font-size: 10pt; text-decoration: underline; }
|
||||||
|
span.match-1438 { background: rgb(255, 255, 0); font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; color: rgb(0, 0, 0); font-size: 10pt; text-decoration: none; }
|
||||||
|
span.match-1438 a { background: rgb(255, 255, 0); font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; color: rgb(0, 0, 0); font-size: 10pt; text-decoration: underline; }
|
||||||
|
span.keyword-face-1440 { color: rgb(160, 32, 240); font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; font-size: 10pt; text-decoration: none; }
|
||||||
|
span.keyword-face-1440 a { color: rgb(160, 32, 240); font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; font-size: 10pt; text-decoration: underline; }
|
||||||
|
span.underline-1439 { text-decoration: underline; font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; color: rgb(0, 0, 0); font-size: 10pt; }
|
||||||
|
span.underline-1439 a { text-decoration: underline; font-family: outline-courier new; font-stretch: normal; font-weight: 500; font-style: normal; color: rgb(0, 0, 0); font-size: 10pt; }
|
||||||
|
--></style>
|
||||||
|
</head>
|
||||||
|
<body style="background: #000000; color: #ff9900; padding:2em; margin:4em; margin-top:2em;">
|
||||||
|
|
||||||
|
<h1>Example of htmlfontify.el output</h1>
|
||||||
|
|
||||||
|
<p style="font-size: 1.3em; width: 35em;">
|
||||||
|
The following is an example of the output you can get with htmlfontify.el.
|
||||||
|
The version used here is shipped with <a href="nxhtml.html" style="color: #ffbb33; ">nXhtml</a>.
|
||||||
|
(A new version from the original author is on its way.)
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<table border="0" cellpadding="0" cellspacing="0" style="border: solid rgb(0, 84, 227); width:44.800000000000004em; background:white;">
|
||||||
|
<tr>
|
||||||
|
<td style="background-color:rgb(0, 84, 227); color:rgb(255, 255, 255);border: none; padding:4px; vertical-align: middle;"><img alt="Emacs Icon (patched)" src="img/emacsP16.png" width="16" height="16" /> Emacs - Frame Dump</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align:top;"><table border="0" cellpadding="0" cellspacing="0">
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align:top;"><table border="0" cellpadding="0" cellspacing="0">
|
||||||
|
<tr><td style="vertical-align:top;"><div style="width:22.514999999999997em; height:15.079999999999998em; border: 1px solid rgb(212, 208, 200); overflow:auto; padding:4px;">
|
||||||
|
|
||||||
|
<pre><span class="comment-delimiter-face-1418">;; </span><span class="comment-face-1419">This buffer is for notes you don't want to save, and for Lisp evaluation.
|
||||||
|
</span><span class="comment-delimiter-face-1418">;; </span><span class="comment-face-1419">If you want to create a file, visit that file with C-x C-f,
|
||||||
|
</span><span class="comment-delimiter-face-1418">;; </span><span class="comment-face-1419">then enter the text in that file's own buffer.
|
||||||
|
</span>
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div style="width:22.515em; color:rgb(51, 51, 51); background:rgb(229, 229, 229); white-space:pre; overflow:hidden; font-family:monospace;">-- (Unix)-- <b>*scratch*</b> (Lisp Interaction Abbrev hs) --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</div></td>
|
||||||
|
<td style="vertical-align:top;"><div style="width:23.084999999999997em; height:15.079999999999998em; border: 1px solid rgb(212, 208, 200); overflow:auto; padding:4px;">
|
||||||
|
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
// <![CDATA[
|
||||||
|
|
||||||
|
function getObj(name) {
|
||||||
|
if (document.getElementById) {
|
||||||
|
this.obj = document.getElementById(name);
|
||||||
|
this.style = document.getElementById(name).style;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function hfy_toggle_display(name) {
|
||||||
|
var x = new getObj("hfy_invis_" + name);
|
||||||
|
var flag = x.style.display == 'inline';
|
||||||
|
x.style.display = (flag) ? 'none' : 'inline'
|
||||||
|
}
|
||||||
|
|
||||||
|
// ]]>
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<pre>cadr is a compiled Lisp function in `<span class="button-0004">subr.el</span>'.
|
||||||
|
(cadr <span class="help-argument-name-1420">x</span>)
|
||||||
|
|
||||||
|
Return the car of the cdr of <span class="help-argument-name-1420">x</span>.
|
||||||
|
|
||||||
|
<span class="button-0004">[back]</span>
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div style="width:23.085em; color:rgb(51, 51, 51); background:rgb(229, 229, 229); white-space:pre; overflow:hidden; font-family:monospace;">-- (Unix)%% <b>*Help*</b> (Help View Abbrev) --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</div></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align:top;"><table border="0" cellpadding="0" cellspacing="0">
|
||||||
|
<tr><td style="vertical-align:top;"><div style="width:22.514999999999997em; height:12.76em; border: 1px solid rgb(212, 208, 200); overflow:auto; padding:4px;">
|
||||||
|
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
// <![CDATA[
|
||||||
|
|
||||||
|
function getObj(name) {
|
||||||
|
if (document.getElementById) {
|
||||||
|
this.obj = document.getElementById(name);
|
||||||
|
this.style = document.getElementById(name).style;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function hfy_toggle_display(name) {
|
||||||
|
var x = new getObj("hfy_invis_" + name);
|
||||||
|
var flag = x.style.display == 'inline';
|
||||||
|
x.style.display = (flag) ? 'none' : 'inline'
|
||||||
|
}
|
||||||
|
|
||||||
|
// ]]>
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<pre><span class="button-0004">comint-highlight-prompt</span> <span class="comint-highlight-prompt-1428">abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ</span>
|
||||||
|
<span class="button-0004">compilation-column-number</span> <span class="compilation-column-number-1429">abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ</span>
|
||||||
|
<span class="button-0004">compilation-error</span> <span class="compilation-error-1430">abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ</span>
|
||||||
|
<span class="button-0004">compilation-info</span> <span class="compilation-info-1433">abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ</span>
|
||||||
|
<span class="button-0004">compilation-line-number</span> <span class="compilation-line-number-1434">abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ</span>
|
||||||
|
<span class="button-0004">compilation-warning</span> <span class="compilation-warning-1435">abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ</span>
|
||||||
|
<span class="button-0004">completion-dynamic-face</span> <span class="completion-dynamic-face-1436">abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ</span>
|
||||||
|
<span class="button-0004">completion-tooltip-face</span> <span class="completion-tooltip-face-1437">abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ</span>
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
|
||||||
|
<div style="margin-top:2em; color: red; text-align: center; "> Truncated to line 11 - 19! </div>
|
||||||
|
</div>
|
||||||
|
<div style="width:22.515em; color:rgb(0, 0, 0); background:rgb(191, 191, 191); white-space:pre; overflow:hidden; font-family:monospace;">-- (Unix)%% <b>*Faces*</b> (Help View Abbrev) --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</div></td>
|
||||||
|
<td style="vertical-align:top;"><div style="width:23.084999999999997em; height:12.76em; border: 1px solid rgb(212, 208, 200); overflow:auto; padding:4px;">
|
||||||
|
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
// <![CDATA[
|
||||||
|
|
||||||
|
function getObj(name) {
|
||||||
|
if (document.getElementById) {
|
||||||
|
this.obj = document.getElementById(name);
|
||||||
|
this.style = document.getElementById(name).style;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function hfy_toggle_display(name) {
|
||||||
|
var x = new getObj("hfy_invis_" + name);
|
||||||
|
var flag = x.style.display == 'inline';
|
||||||
|
x.style.display = (flag) ? 'none' : 'inline'
|
||||||
|
}
|
||||||
|
|
||||||
|
// ]]>
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<pre><span class="default-0258">snow </span><span class="default-0259"> snow </span>#fffafa
|
||||||
|
<span class="default-0260">ghost white </span><span class="default-0261"> GhostWhite </span>#f8f8ff
|
||||||
|
<span class="default-0262">white smoke </span><span class="default-0263"> WhiteSmoke </span>#f5f5f5
|
||||||
|
<span class="default-0264">gainsboro </span><span class="default-0265"> gainsboro </span>#dcdcdc
|
||||||
|
<span class="default-0266">floral white </span><span class="default-0267"> FloralWhite </span>#fffaf0
|
||||||
|
<span class="default-0268">old lace </span><span class="default-0269"> OldLace </span>#fdf5e6
|
||||||
|
<span class="default-0270">linen </span><span class="default-0271"> linen </span>#faf0e6
|
||||||
|
<span class="default-0272">antique white </span><span class="default-0273"> AntiqueWhite </span>#faebd7
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
|
||||||
|
<div style="margin-top:2em; color: red; text-align: center; "> Truncated to line 1 - 9! </div>
|
||||||
|
</div>
|
||||||
|
<div style="width:23.085em; color:rgb(51, 51, 51); background:rgb(229, 229, 229); white-space:pre; overflow:hidden; font-family:monospace;">-- (Unix)%% <b>*Colors*</b> (Help View Abbrev) --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</div></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align:top;"><div style="width:47.025em; height:12.76em; border: 1px solid rgb(212, 208, 200); overflow:auto; padding:4px;">
|
||||||
|
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
// <![CDATA[
|
||||||
|
|
||||||
|
function getObj(name) {
|
||||||
|
if (document.getElementById) {
|
||||||
|
this.obj = document.getElementById(name);
|
||||||
|
this.style = document.getElementById(name).style;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function hfy_toggle_display(name) {
|
||||||
|
var x = new getObj("hfy_invis_" + name);
|
||||||
|
var flag = x.style.display == 'inline';
|
||||||
|
x.style.display = (flag) ? 'none' : 'inline'
|
||||||
|
}
|
||||||
|
|
||||||
|
// ]]>
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<pre><span class="default-1431">________________________
|
||||||
|
</span><span class="default-1432">Program and Value Search</span>
|
||||||
|
|
||||||
|
When you use Emacs on MS Windows you sometimes want to fetch values
|
||||||
|
and program locations from MS Windows. Many of these values are
|
||||||
|
stored in the MS Windows Registry. Since Emacs is written to be used
|
||||||
|
on many platforms (with the emphasis on GPL platforms) the effort to
|
||||||
|
let Emacs read the Registry directly has not been made. Below you can
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
|
||||||
|
<div style="margin-top:2em; color: red; text-align: center; "> Truncated to line 29 - 37! </div>
|
||||||
|
</div>
|
||||||
|
<div style="width:47.025em; color:rgb(51, 51, 51); background:rgb(229, 229, 229); white-space:pre; overflow:hidden; font-family:monospace;">-- (Unix)** <b>*Customize EmacsW32*</b> (Custom Abbrev) --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</div></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align:top;"><div style="width:47.025em; height:12.76em; border: 1px solid rgb(212, 208, 200); overflow:auto; padding:4px;">
|
||||||
|
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
// <![CDATA[
|
||||||
|
|
||||||
|
function getObj(name) {
|
||||||
|
if (document.getElementById) {
|
||||||
|
this.obj = document.getElementById(name);
|
||||||
|
this.style = document.getElementById(name).style;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function hfy_toggle_display(name) {
|
||||||
|
var x = new getObj("hfy_invis_" + name);
|
||||||
|
var flag = x.style.display == 'inline';
|
||||||
|
x.style.display = (flag) ? 'none' : 'inline'
|
||||||
|
}
|
||||||
|
|
||||||
|
// ]]>
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<pre> Add quick printing to File menu (htmlize-view-print-visible): <span class="bold-0248">t</span>
|
||||||
|
Keep default print entries in File menu (w32-print-menu-show-print): <span class="bold-0248">nil</span>
|
||||||
|
Keep default ps print entries in File menu (w32-print-menu-show-ps-print): <span class="bold-0248">nil</span>
|
||||||
|
Use keyboard Window keys as Emacs META (w32-meta-style): <span class="bold-0248">w32-lr</span>
|
||||||
|
Underlined accelerators in menu bar (menuacc-active): <span class="bold-0248">t</span>
|
||||||
|
Inferior shell + path for unix style programs (w32shell-shell): <span class="bold-0248">cmd</span>
|
||||||
|
|
||||||
|
<span class="custom-button-0022"> Set all to w32 style! </span> <span class="custom-button-0022"> Reset all to default! </span> <span class="custom-button-0022"> Customize EmacsW32 ... </span>
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
|
||||||
|
<div style="margin-top:2em; color: red; text-align: center; "> Truncated to line 13 - 21! </div>
|
||||||
|
</div>
|
||||||
|
<div style="width:47.025em; color:rgb(51, 51, 51); background:rgb(229, 229, 229); white-space:pre; overflow:hidden; font-family:monospace;">-- (Unix)** <b>*Customize EmacsW32*</b> (Custom Abbrev) --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</div></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align:top;"><table border="0" cellpadding="0" cellspacing="0">
|
||||||
|
<tr><td style="vertical-align:top;"><div style="width:22.514999999999997em; height:12.76em; border: 1px solid rgb(212, 208, 200); overflow:auto; padding:4px;">
|
||||||
|
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
// <![CDATA[
|
||||||
|
|
||||||
|
function getObj(name) {
|
||||||
|
if (document.getElementById) {
|
||||||
|
this.obj = document.getElementById(name);
|
||||||
|
this.style = document.getElementById(name).style;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function hfy_toggle_display(name) {
|
||||||
|
var x = new getObj("hfy_invis_" + name);
|
||||||
|
var flag = x.style.display == 'inline';
|
||||||
|
x.style.display = (flag) ? 'none' : 'inline'
|
||||||
|
}
|
||||||
|
|
||||||
|
// ]]>
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<pre>-*- mode: grep; default-directory: "c:/emacs/p/070604/EmacsW32/nxml/util/" -*-
|
||||||
|
Grep started at Fri Dec 28 22:54:06
|
||||||
|
|
||||||
|
grep -i -nH -e "hfy-tmpfont-stack" *.el
|
||||||
|
<span class="underline-1412">htmlfontify.el</span><span class="underline-0219">:</span><span class="underline-1413">596</span><span class="underline-0219">:</span>(defvar <span class="match-1438">hfy-tmpfont-stack</span> nil
|
||||||
|
<span class="underline-1412">htmlfontify.el</span><span class="underline-0219">:</span><span class="underline-1413">999</span><span class="underline-0219">:</span> (entry (assoc key <span class="match-1438">hfy-tmpfont-stack</span>))
|
||||||
|
<span class="underline-1412">htmlfontify.el</span><span class="underline-0219">:</span><span class="underline-1413">1003</span><span class="underline-0219">:</span> (setq tag (format "%04d" (length <span class="match-1438">hfy-tmpfont-stack</span>))
|
||||||
|
<span class="underline-1412">htmlfontify.el</span><span class="underline-0219">:</span><span class="underline-1413">1005</span><span class="underline-0219">:</span> <span class="match-1438">hfy-tmpfont-stack</span> (cons entry <span class="match-1438">hfy-tmpfont-stack</span>)))
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
|
||||||
|
<div style="margin-top:2em; color: red; text-align: center; "> Truncated to line 1 - 9! </div>
|
||||||
|
</div>
|
||||||
|
<div style="width:22.515em; color:rgb(51, 51, 51); background:rgb(229, 229, 229); white-space:pre; overflow:hidden; font-family:monospace;">-- (Unix)%% <b>*grep*</b> (Grep Abbrev) --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</div></td>
|
||||||
|
<td style="vertical-align:top;"><div style="width:23.084999999999997em; height:12.76em; border: 1px solid rgb(212, 208, 200); overflow:auto; padding:4px;">
|
||||||
|
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
// <![CDATA[
|
||||||
|
|
||||||
|
function getObj(name) {
|
||||||
|
if (document.getElementById) {
|
||||||
|
this.obj = document.getElementById(name);
|
||||||
|
this.style = document.getElementById(name).style;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function hfy_toggle_display(name) {
|
||||||
|
var x = new getObj("hfy_invis_" + name);
|
||||||
|
var flag = x.style.display == 'inline';
|
||||||
|
x.style.display = (flag) ? 'none' : 'inline'
|
||||||
|
}
|
||||||
|
|
||||||
|
// ]]>
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<pre><span class="underline-1439">5 matches for "hfy-tmpfont-stack" in buffer: htmlfontify.el
|
||||||
|
</span> 596:(<span class="keyword-face-1440">defvar</span> <span class="match-1438">hfy-tmpfont-stack</span> nil
|
||||||
|
999: (entry (assoc key <span class="match-1438">hfy-tmpfont-stack</span>))
|
||||||
|
1003: (setq tag (format <span class="string-face-1441">"%04d"</span> (length <span class="match-1438">hfy-tmpfont-stack</span>))
|
||||||
|
1005: <span class="match-1438">hfy-tmpfont-stack</span> (cons entry <span class="match-1438">hfy-tmpfont-stack</span>)))
|
||||||
|
1228: <span class="comment-delimiter-face-1418">;;</span><span class="comment-face-1419">(</span><span class="match-1438">hfy-tmpfont-stack</span><span class="comment-face-1419"> nil)</span>
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div style="width:23.085em; color:rgb(51, 51, 51); background:rgb(229, 229, 229); white-space:pre; overflow:hidden; font-family:monospace;">-- (Unix)%% <b>*Occur*</b> (Occur Abbrev) --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------</div></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="padding:1px; color:rgb(0,0,0); ">
|
||||||
|
<span style="background:rgb(255, 215, 0); color:rgb(0,0,0); "> M-x </span> hfyview-frame</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</body>
|
||||||
|
</html>
|
BIN
emacs.d/nxhtml/nxhtml/doc/img/Las_Medulas.jpg
Normal file
After Width: | Height: | Size: 40 KiB |
BIN
emacs.d/nxhtml/nxhtml/doc/img/Toco_toucan.jpg
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
emacs.d/nxhtml/nxhtml/doc/img/bacchante2.jpg
Normal file
After Width: | Height: | Size: 66 KiB |
BIN
emacs.d/nxhtml/nxhtml/doc/img/butterflies.jpg
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
emacs.d/nxhtml/nxhtml/doc/img/butterflies.png
Normal file
After Width: | Height: | Size: 64 KiB |
BIN
emacs.d/nxhtml/nxhtml/doc/img/butterflies.xcf
Normal file
BIN
emacs.d/nxhtml/nxhtml/doc/img/continue-play.jpg
Normal file
After Width: | Height: | Size: 43 KiB |
BIN
emacs.d/nxhtml/nxhtml/doc/img/divine2.jpg
Normal file
After Width: | Height: | Size: 68 KiB |
BIN
emacs.d/nxhtml/nxhtml/doc/img/edit-part.png
Normal file
After Width: | Height: | Size: 23 KiB |
BIN
emacs.d/nxhtml/nxhtml/doc/img/editing-web-files.png
Normal file
After Width: | Height: | Size: 7.1 KiB |
BIN
emacs.d/nxhtml/nxhtml/doc/img/editing-web-files.xcf
Normal file
BIN
emacs.d/nxhtml/nxhtml/doc/img/emacs-style-completion.png
Normal file
After Width: | Height: | Size: 23 KiB |
BIN
emacs.d/nxhtml/nxhtml/doc/img/emacsP.png
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
emacs.d/nxhtml/nxhtml/doc/img/emacsP16.png
Normal file
After Width: | Height: | Size: 694 B |
BIN
emacs.d/nxhtml/nxhtml/doc/img/embedded-css.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
emacs.d/nxhtml/nxhtml/doc/img/embedded-xhtml.png
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
emacs.d/nxhtml/nxhtml/doc/img/foldit-closed.png
Normal file
After Width: | Height: | Size: 7.7 KiB |
BIN
emacs.d/nxhtml/nxhtml/doc/img/foldit-temp-opened.png
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
emacs.d/nxhtml/nxhtml/doc/img/fun-brain-2.png
Normal file
After Width: | Height: | Size: 39 KiB |
BIN
emacs.d/nxhtml/nxhtml/doc/img/getitbuttons-1.png
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
emacs.d/nxhtml/nxhtml/doc/img/getitbuttons-1.xcf
Normal file
BIN
emacs.d/nxhtml/nxhtml/doc/img/getitbuttons-2.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
emacs.d/nxhtml/nxhtml/doc/img/getitbuttons.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
emacs.d/nxhtml/nxhtml/doc/img/getitbuttons.xcf
Normal file
BIN
emacs.d/nxhtml/nxhtml/doc/img/giraffe.jpg
Normal file
After Width: | Height: | Size: 20 KiB |
BIN
emacs.d/nxhtml/nxhtml/doc/img/healthy_feet2.jpg
Normal file
After Width: | Height: | Size: 24 KiB |
BIN
emacs.d/nxhtml/nxhtml/doc/img/itsalltext-pref.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
emacs.d/nxhtml/nxhtml/doc/img/links-appmenu.png
Normal file
After Width: | Height: | Size: 7 KiB |
BIN
emacs.d/nxhtml/nxhtml/doc/img/nxml-where.png
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
emacs.d/nxhtml/nxhtml/doc/img/php-in-nxhtml-2.png
Normal file
After Width: | Height: | Size: 23 KiB |
BIN
emacs.d/nxhtml/nxhtml/doc/img/php-in-nxhtml.png
Normal file
After Width: | Height: | Size: 22 KiB |
BIN
emacs.d/nxhtml/nxhtml/doc/img/php-in-php.png
Normal file
After Width: | Height: | Size: 21 KiB |
BIN
emacs.d/nxhtml/nxhtml/doc/img/php-in-xhtml.png
Normal file
After Width: | Height: | Size: 21 KiB |
BIN
emacs.d/nxhtml/nxhtml/doc/img/popup-compl.png
Normal file
After Width: | Height: | Size: 8.5 KiB |
BIN
emacs.d/nxhtml/nxhtml/doc/img/raindrops2.jpg
Normal file
After Width: | Height: | Size: 36 KiB |
BIN
emacs.d/nxhtml/nxhtml/doc/img/region-selected-after.png
Normal file
After Width: | Height: | Size: 3 KiB |
BIN
emacs.d/nxhtml/nxhtml/doc/img/region-selected-completion.png
Normal file
After Width: | Height: | Size: 27 KiB |
BIN
emacs.d/nxhtml/nxhtml/doc/img/region-selected.png
Normal file
After Width: | Height: | Size: 3.6 KiB |
BIN
emacs.d/nxhtml/nxhtml/doc/img/rembrandt-self-portrait.jpg
Normal file
After Width: | Height: | Size: 51 KiB |
BIN
emacs.d/nxhtml/nxhtml/doc/img/style-in-nxhtml.png
Normal file
After Width: | Height: | Size: 19 KiB |
BIN
emacs.d/nxhtml/nxhtml/doc/img/use-nXhtml-trans.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
emacs.d/nxhtml/nxhtml/doc/img/use-nXhtml-trans2.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
emacs.d/nxhtml/nxhtml/doc/img/use-nXhtml.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
emacs.d/nxhtml/nxhtml/doc/img/use-nXhtml.xcf
Normal file
BIN
emacs.d/nxhtml/nxhtml/doc/img/validation-error.png
Normal file
After Width: | Height: | Size: 2.2 KiB |
BIN
emacs.d/nxhtml/nxhtml/doc/img/volga.jpg
Normal file
After Width: | Height: | Size: 33 KiB |
BIN
emacs.d/nxhtml/nxhtml/doc/img/xml-validation-header.png
Normal file
After Width: | Height: | Size: 23 KiB |
BIN
emacs.d/nxhtml/nxhtml/doc/js/smoothgallery/css/img/carrow1.gif
Normal file
After Width: | Height: | Size: 243 B |
BIN
emacs.d/nxhtml/nxhtml/doc/js/smoothgallery/css/img/carrow2.gif
Normal file
After Width: | Height: | Size: 241 B |
BIN
emacs.d/nxhtml/nxhtml/doc/js/smoothgallery/css/img/fleche1.gif
Normal file
After Width: | Height: | Size: 1 KiB |
BIN
emacs.d/nxhtml/nxhtml/doc/js/smoothgallery/css/img/fleche1.png
Normal file
After Width: | Height: | Size: 2.6 KiB |
BIN
emacs.d/nxhtml/nxhtml/doc/js/smoothgallery/css/img/fleche2.gif
Normal file
After Width: | Height: | Size: 974 B |
BIN
emacs.d/nxhtml/nxhtml/doc/js/smoothgallery/css/img/fleche2.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
After Width: | Height: | Size: 11 KiB |