incorporate old rst docs into org

This commit is contained in:
Noam Postavsky
2013-11-26 21:22:57 -05:00
parent 695211b761
commit b194ea56b3
9 changed files with 5700 additions and 3364 deletions

499
faq.html
View File

@@ -1,189 +1,358 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<?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" lang="en" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.8.1: http://docutils.sourceforge.net/" />
<title>Frequently Asked Questions</title>
<link rel="stylesheet" href="styles.css" type="text/css" />
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
<meta name="title" content="Frequently Asked Questions"/>
<meta name="generator" content="Org-mode"/>
<meta name="generated" content="2013-11-26T21:02-0500"/>
<meta name="author" content=""/>
<meta name="description" content=""/>
<meta name="keywords" content=""/>
<style type="text/css">
<!--/*--><![CDATA[/*><!--*/
html { font-family: Times, serif; font-size: 12pt; }
.title { text-align: center; }
.todo { color: red; }
.done { color: green; }
.tag { background-color: #add8e6; font-weight:normal }
.target { }
.timestamp { color: #bebebe; }
.timestamp-kwd { color: #5f9ea0; }
.right {margin-left:auto; margin-right:0px; text-align:right;}
.left {margin-left:0px; margin-right:auto; text-align:left;}
.center {margin-left:auto; margin-right:auto; text-align:center;}
p.verse { margin-left: 3% }
pre {
border: 1pt solid #AEBDCC;
background-color: #F3F5F7;
padding: 5pt;
font-family: courier, monospace;
font-size: 90%;
overflow:auto;
}
table { border-collapse: collapse; }
td, th { vertical-align: top; }
th.right { text-align:center; }
th.left { text-align:center; }
th.center { text-align:center; }
td.right { text-align:right; }
td.left { text-align:left; }
td.center { text-align:center; }
dt { font-weight: bold; }
div.figure { padding: 0.5em; }
div.figure p { text-align: center; }
div.inlinetask {
padding:10px;
border:2px solid gray;
margin:10px;
background: #ffffcc;
}
textarea { overflow-x: auto; }
.linenr { font-size:smaller }
.code-highlighted {background-color:#ffff00;}
.org-info-js_info-navigation { border-style:none; }
#org-info-js_console-label { font-size:10px; font-weight:bold;
white-space:nowrap; }
.org-info-js_search-highlight {background-color:#ffff00; color:#000000;
font-weight:bold; }
/*]]>*/-->
</style>
<script type="text/javascript">
/*
@licstart The following is the entire license notice for the
JavaScript code in this tag.
Copyright (C) 2012-2013 Free Software Foundation, Inc.
The JavaScript code in this tag is free software: you can
redistribute it and/or modify it under the terms of the GNU
General Public License (GNU GPL) as published by the Free Software
Foundation, either version 3 of the License, or (at your option)
any later version. The code is distributed WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
As additional permission under GNU GPL version 3 section 7, you
may distribute non-source (e.g., minimized or compacted) forms of
that code without the copy of the GNU GPL normally required by
section 4, provided you include this license notice and a URL
through which recipients can access the Corresponding Source.
@licend The above is the entire license notice
for the JavaScript code in this tag.
*/
<!--/*--><![CDATA[/*><!--*/
function CodeHighlightOn(elem, id)
{
var target = document.getElementById(id);
if(null != target) {
elem.cacheClassElem = elem.className;
elem.cacheClassTarget = target.className;
target.className = "code-highlighted";
elem.className = "code-highlighted";
}
}
function CodeHighlightOff(elem, id)
{
var target = document.getElementById(id);
if(elem.cacheClassElem)
elem.className = elem.cacheClassElem;
if(elem.cacheClassTarget)
target.className = elem.cacheClassTarget;
}
/*]]>*///-->
</script>
</head>
<body>
<div class="document" id="frequently-asked-questions">
<div id="header-region" class="clear-block"></div>
<div id="wrapper">
<div id="container" class="clear-block">
<div id="header">
<div id="logo-floater">
<h1 class="title">Frequently Asked Questions</h1>
</div>
<ul class="primary-links">
<li>
<a title="" href="index.html">Intro and tutorial</a>
</li>
<li>
<a title="" href="snippet-organization.html">Howto: organize</a>
</li>
<li>
<a title="" href="snippet-expansion.html">Howto: expand</a>
</li>
<li>
<a title="" href="snippet-development.html">Howto: write </a>
</li>
<li>
<a title="" href="snippet-menu.html">Howto: menu </a>
</li>
<li>
<a title="" href="faq.html">FAQ</a>
</li>
<li>
<a title="" href="changelog.html">ChangeLog</a>
</li>
<li>
<a title="" href="http://code.google.com/p/yasnippet/downloads/list">Download</a>
</li>
</ul>
</div>
<div id="center">
<div id="squeeze">
<div class="right-corner">
<div class="left-corner">
<p>
<b>Important:</b> This documentation applies to
the <b>SVN trunk</b> of YASnippet, which you
get <a href="http://code.google.com/p/yasnippet/source/checkout">here</a>. Documentation
for other versions can be found <a title=""
href="http://code.google.com/p/yasnippet/downloads/list">here</a>.
</p>
<div class="section" id="why-is-there-an-extra-newline">
<h1>Why is there an extra newline?</h1>
<p>If you have a newline at the end of the snippet definition file, then
YASnippet will add a newline when you expanding a snippet. Please
don't add a newline at the end if you don't want it when you saving
the snippet file.</p>
<p>Note some editors will automatically add a newline for you. In Emacs,
if you set <tt class="docutils literal"><span class="pre">require-final-newline</span></tt> to <tt class="docutils literal">t</tt>, it will add the final
newline for you automatically.</p>
<div id="org-div-home-and-up" style="text-align:right;font-size:70%;white-space:nowrap;">
<a accesskey="h" href="./index.html"> UP </a>
|
<a accesskey="H" href="./index.html"> HOME </a>
</div>
<div class="section" id="why-doesn-t-tab-expand-a-snippet">
<h1>Why doesn't TAB expand a snippet?</h1>
<p>First check the mode line to see if there's <tt class="docutils literal">yas</tt>. If not, then try
<tt class="docutils literal"><span class="pre">M-x</span> <span class="pre">yas/minor-mode</span></tt> to manually turn on the minor mode and try to
<div id="preamble">
</div>
<div id="content">
<h1 class="title">Frequently Asked Questions</h1>
<div id="table-of-contents">
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#sec-1">Why is there an extra newline?</a></li>
<li><a href="#sec-2">Why doesn't TAB expand a snippet?</a></li>
<li><a href="#sec-3">Why doesn't TAB navigation work with flyspell</a></li>
<li><a href="#sec-4">How do I turn off the minor mode where in some buffers</a></li>
<li><a href="#sec-5">How do I define an abbrev key containing characters not supported by</a></li>
</ul>
</div>
</div>
<div id="outline-container-1" class="outline-2">
<h2 id="sec-1">Why is there an extra newline?</h2>
<div class="outline-text-2" id="text-1">
<p>
If you have a newline at the end of the snippet definition file, then
YASnippet will add a newline when you expanding a snippet. Please don't
add a newline at the end if you don't want it when you saving the
snippet file.
</p>
<p>
Note some editors will automatically add a newline for you. In Emacs, if
you set <code>require-final-newline</code> to <code>t</code>, it will add the final newline
for you automatically.
</p>
</div>
</div>
<div id="outline-container-2" class="outline-2">
<h2 id="sec-2">Why doesn't TAB expand a snippet?</h2>
<div class="outline-text-2" id="text-2">
<p>
First check the mode line to see if there's <code>yas</code>. If not, then try
<code>M-x yas-minor-mode</code> to manually turn on the minor mode and try to
expand the snippet again. If it works, then, you can add the following
code to your <tt class="docutils literal">.emacs</tt> <em>before</em> loading YASnippet:</p>
<div class="highlight" style="background: #f8f8f8"><pre style="line-height: 125%">(add-hook &#39;the-major-mode-hook &#39;yas/minor-mode-on)
</pre></div>
<p>where <tt class="docutils literal"><span class="pre">the-major-mode</span></tt> is the major mode in which <tt class="docutils literal"><span class="pre">yas/minor-mode</span></tt>
isn't enabled by default.</p>
<p>From YASnippet 0.6 you can also use the command <tt class="docutils literal"><span class="pre">M-x</span>
<span class="pre">yas/global-mode</span></tt> to turn on YASnippet automatically for <em>all</em> major
modes.</p>
<p>If <tt class="docutils literal"><span class="pre">yas/minor-mode</span></tt> is on but the snippet still not expanded. Then
try to see what command is bound to the <tt class="docutils literal">TAB</tt> key: press <tt class="docutils literal"><span class="pre">C-h</span> k</tt>
and then press <tt class="docutils literal">TAB</tt>. Emacs will show you the result.</p>
<p>You'll see a buffer prompted by Emacs saying that <tt class="docutils literal">TAB runs the
command ...</tt>. Alternatively, you might see <tt class="docutils literal">&lt;tab&gt; runs the command
...</tt>, note the difference between <tt class="docutils literal">TAB</tt> and <tt class="docutils literal">&lt;tab&gt;</tt> where the
latter has priority. If you see <tt class="docutils literal">&lt;tab&gt;</tt> bound to a command other
than <tt class="docutils literal">yas/expand</tt>, (e.g. in <tt class="docutils literal"><span class="pre">org-mode</span></tt>) you can try the following
code to work around:</p>
<div class="highlight" style="background: #f8f8f8"><pre style="line-height: 125%">(add-hook &#39;org-mode-hook
code to your <code>.emacs</code> <i>before</i> loading YASnippet:
</p>
<pre class="example">(add-hook 'the-major-mode-hook 'yas-minor-mode-on)
</pre>
<p>
where <code>the-major-mode</code> is the major mode in which <a href="snippet-reference.html#yas-minor-mode"><code>yas-minor-mode</code></a> isn't
enabled by default.
</p>
<p>
From YASnippet 0.6 you can also use the command <code>M-x yas-global-mode</code> to
turn on YASnippet automatically for <i>all</i> major modes.
</p>
<p>
If <a href="snippet-reference.html#yas-minor-mode"><code>yas-minor-mode</code></a> is on but the snippet still not expanded. Then try
to see what command is bound to the <code>TAB</code> key: press <code>C-h k</code> and then
press <code>TAB</code>. Emacs will show you the result.
</p>
<p>
You'll see a buffer prompted by Emacs saying that
<code>TAB runs the command ...</code>. Alternatively, you might see
<code>&lt;tab&gt; runs the command ...</code>, note the difference between <code>TAB</code> and
<code>&lt;tab&gt;</code> where the latter has priority. If you see <code>&lt;tab&gt;</code> bound to a
command other than <a href="snippet-reference.html#yas-expand"><code>yas-expand</code></a>, (e.g. in <code>org-mode</code>) you can try the
following code to work around:
</p>
<pre class="example">(add-hook 'org-mode-hook
(let ((original-command (lookup-key org-mode-map [tab])))
`(lambda ()
(setq yas/fallback-behavior
&#39;(apply ,original-command))
(local-set-key [tab] &#39;yas/expand))))
</pre></div>
<p>replace <tt class="docutils literal"><span class="pre">org-mode-hook</span></tt> and <tt class="docutils literal"><span class="pre">org-mode-map</span></tt> with the major mode
hook you are dealing with (Use <tt class="docutils literal"><span class="pre">C-h</span> m</tt> to see what major mode you
are in).</p>
<p>As an alternative, you can also try</p>
<div class="highlight" style="background: #f8f8f8"><pre style="line-height: 125%">(defun yas/advise-indent-function (function-symbol)
(eval `(defadvice ,function-symbol (around yas/try-expand-first activate)
(setq yas-fallback-behavior
'(apply ,original-command))
(local-set-key [tab] 'yas-expand))))
</pre>
<p>
replace <code>org-mode-hook</code> and <code>org-mode-map</code> with the major mode hook you
are dealing with (Use <code>C-h m</code> to see what major mode you are in).
</p>
<p>
As an alternative, you can also try
</p>
<pre class="example">(defun yas-advise-indent-function (function-symbol)
(eval `(defadvice ,function-symbol (around yas-try-expand-first activate)
,(format
&quot;Try to expand a snippet before point, then call `%s&#39; as usual&quot;
"Try to expand a snippet before point, then call `%s' as usual"
function-symbol)
(let ((yas/fallback-behavior nil))
(let ((yas-fallback-behavior nil))
(unless (and (interactive-p)
(yas/expand))
(yas-expand))
ad-do-it)))))
(yas/advise-indent-function &#39;ruby-indent-line)
</pre></div>
<p>To <em>advise</em> the modes indentation function bound to TAB, (in this case
<tt class="docutils literal"><span class="pre">ruby-indent-line</span></tt>) to first try to run <tt class="docutils literal">yas/expand</tt>.</p>
<p>If the output of <tt class="docutils literal"><span class="pre">C-h</span> k RET &lt;tab&gt;</tt> tells you that <tt class="docutils literal">&lt;tab&gt;</tt> is
indeed bound to <tt class="docutils literal">yas/expand</tt> but YASnippet still doesn't work, check
your configuration and you may also ask for help on the <a class="reference external" href="http://groups.google.com/group/smart-snippet">discussion
group</a>. See this
particular <a class="reference external" href="http://code.google.com/p/yasnippet/issues/detail?id=93&amp;can=1">thread</a> for
quite some solutions and alternatives.</p>
<p>Don't forget to attach the information on what command is bound to TAB
as well as the mode information (Can be obtained by <tt class="docutils literal"><span class="pre">C-h</span> m</tt>).</p>
(yas-advise-indent-function 'ruby-indent-line)
</pre>
<p>
To <i>advise</i> the modes indentation function bound to TAB, (in this case
<code>ruby-indent-line</code>) to first try to run <a href="snippet-reference.html#yas-expand"><code>yas-expand</code></a>.
</p>
<p>
If the output of <code>C-h k RET &lt;tab&gt;</code> tells you that <code>&lt;tab&gt;</code> is indeed
bound to <a href="snippet-reference.html#yas-expand"><code>yas-expand</code></a> but YASnippet still doesn't work, check your
configuration and you may also ask for help on the <a href="http://groups.google.com/group/smart-snippet">discussion group</a>.
See this particular <a href="http://code.google.com/p/yasnippet/issues/detail?id=93&amp;can=1">thread</a> for quite some solutions and alternatives.
</p>
<p>
Don't forget to attach the information on what command is bound to TAB
as well as the mode information (Can be obtained by <code>C-h m</code>).
</p>
</div>
<div class="section" id="why-doesn-t-tab-navigation-work-with-flyspell">
<h1>Why doesn't TAB navigation work with flyspell</h1>
<p>A workaround is to inhibit flyspell overlays while the snippet is active:</p>
<div class="highlight" style="background: #f8f8f8"><pre style="line-height: 125%">(add-hook &#39;flyspell-incorrect-hook
#&#39;(lambda (dummy1 dummy2 dymmy3)
(and yas/active-field-overlay
(overlay-buffer yas/active-field-overlay))))
</pre></div>
<p>This is apparently related to overlay priorities. For some reason, the
<tt class="docutils literal">keymap</tt> property of flyspell's overlays always takes priority over
the same property in yasnippet's overlays, even if one sets the
latter's <tt class="docutils literal">priority</tt> property to something big. If you know
emacs-lisp and can solve this problem, drop a line in the <a class="reference external" href="http://groups.google.com/group/smart-snippet">discussion
group</a>.</p>
</div>
<div class="section" id="how-do-i-turn-off-the-minor-mode-where-in-some-buffers">
<h1>How do I turn off the minor mode where in some buffers</h1>
<p>The best way, since version 0.6.1c, is to set the default value of the
variable <tt class="docutils literal"><span class="pre">yas/dont-activate</span></tt> to a lambda function like so:</p>
<div class="highlight" style="background: #f8f8f8"><pre style="line-height: 125%">(set-default &#39;yas/dont-activate
#&#39;(lambda ()
(and yas/root-directory
(null (yas/get-snippet-tables)))))
</pre></div>
<p>This is also the default value starting for that version. It skips the
<div id="outline-container-3" class="outline-2">
<h2 id="sec-3">Why doesn't TAB navigation work with flyspell</h2>
<div class="outline-text-2" id="text-3">
<p>
A workaround is to inhibit flyspell overlays while the snippet is
active:
</p>
<pre class="example">(add-hook 'flyspell-incorrect-hook
#'(lambda (dummy1 dummy2 dymmy3)
(and yas-active-field-overlay
(overlay-buffer yas-active-field-overlay))))
</pre>
<p>
This is apparently related to overlay priorities. For some reason, the
<code>keymap</code> property of flyspell's overlays always takes priority over the
same property in yasnippet's overlays, even if one sets the latter's
<code>priority</code> property to something big. If you know emacs-lisp and can
solve this problem, drop a line in the
<a href="http://groups.google.com/group/smart-snippet">discussion group</a>.
</p>
</div>
</div>
<div id="outline-container-4" class="outline-2">
<h2 id="sec-4">How do I turn off the minor mode where in some buffers</h2>
<div class="outline-text-2" id="text-4">
<p>
The best way, since version 0.6.1c, is to set the default value of the
variable <a href="snippet-reference.html#yas-dont-activate"><code>yas-dont-activate</code></a> to a lambda function like so:
</p>
<pre class="example">(set-default 'yas-dont-activate
#'(lambda ()
(and yas-root-directory
(null (yas-get-snippet-tables)))))
</pre>
<p>
This is also the default value starting for that version. It skips the
minor mode in buffers where it is not applicable (no snippet tables),
but only once you have setup your yas/root-directory.</p>
but only once you have setup your yas-root-directory.
</p>
</div>
<div class="section" id="how-do-i-define-an-abbrev-key-containing-characters-not-supported-by-the-filesystem">
<h1>How do I define an abbrev key containing characters not supported by the filesystem?</h1>
<dl class="docutils">
<dt><strong>Note</strong>: This question applies if you're still defining snippets</dt>
<dd>whose key <em>is</em> the filename. This is behavior stil provided by
version 0.6 for backward compatibilty, but is somewhat deprecated...</dd>
</dl>
<p>For example, you want to define a snippet by the key <tt class="docutils literal">&lt;</tt> which is
not a valid character for filename on Windows. This means you can't
use the filename as a trigger key in this case.</p>
<p>You should rather use the <tt class="docutils literal"># key:</tt> directive to specify the key of
the defined snippet explicitly and name your snippet with an arbitrary
valid filename, <tt class="docutils literal">lt.yasnippet</tt> for example, using <tt class="docutils literal">&lt;</tt> for the
<tt class="docutils literal"># key:</tt> directive:</p>
<div class="highlight" style="background: #f8f8f8"><pre style="line-height: 125%">#key: &lt;
#name: &lt;...&gt;&lt;/...&gt;
</div>
<div id="outline-container-5" class="outline-2">
<h2 id="sec-5">How do I define an abbrev key containing characters not supported by</h2>
<div class="outline-text-2" id="text-5">
<p>the filesystem?
</p>
<ul>
<li><b>Note</b>: This question applies if you're still defining snippets
whose key <i>is</i> the filename. This is behavior still provided by
version 0.6 for backward compatibilty, but is somewhat
deprecated&hellip;
</li>
</ul>
<p>
For example, you want to define a snippet by the key <code>&lt;</code> which is not a
valid character for filename on Windows. This means you can't use the
filename as a trigger key in this case.
</p>
<p>
You should rather use the <code># key:</code> directive to specify the key of the
defined snippet explicitly and name your snippet with an arbitrary valid
filename, <code>lt.yasnippet</code> for example, using <code>&lt;</code> for the <code># key:</code>
directive:
</p>
<pre class="example"># key: &lt;
# name: &lt;...&gt;&lt;/...&gt;
# --
&lt;${1:div}&gt;$0&lt;/$1&gt;
</pre></div>
</pre>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<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>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-10536822-1");
pageTracker._trackPageview();
} catch(err) {}
</script>
</div>
<div id="postamble">
<p class="date">Date: 2013-11-26T21:02-0500</p>
<p class="creator"><a href="http://orgmode.org">Org</a> version 7.9.3f with <a href="http://www.gnu.org/software/emacs/">Emacs</a> version 24</p>
<a href="http://validator.w3.org/check?uri=referer">Validate XHTML 1.0</a>
</div>
</body>
</html>