]> git.gir.st - VimFx.git/blob - docs/vim.html
Translate new string to zh-CN
[VimFx.git] / docs / vim.html
1 <!DOCTYPE html> <html> <head> <title>vim.coffee</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <link rel="stylesheet" media="all" href="docco.css" /> </head> <body> <div id="container"> <div id="background"></div> <div id="jump_to"> Jump To &hellip; <div id="jump_wrapper"> <div id="jump_page"> <a class="source" href="bootstrap.html"> bootstrap.coffee </a> <a class="source" href="chrome.html"> chrome.coffee </a> <a class="source" href="console.html"> console.coffee </a> <a class="source" href="unload.html"> unload.coffee </a> <a class="source" href="window-utils.html"> window-utils.coffee </a> <a class="source" href="button.html"> button.coffee </a> <a class="source" href="commands.html"> commands.coffee </a> <a class="source" href="events.html"> events.coffee </a> <a class="source" href="help.html"> help.coffee </a> <a class="source" href="hints.html"> hints.coffee </a> <a class="source" href="marker.html"> marker.coffee </a> <a class="source" href="prefs.html"> prefs.coffee </a> <a class="source" href="utils.html"> utils.coffee </a> <a class="source" href="vim.html"> vim.coffee </a> </div> </div> </div> <table cellpadding="0" cellspacing="0"> <thead> <tr> <th class="docs"> <h1> vim.coffee </h1> </th> <th class="code"> </th> </tr> </thead> <tbody> <tr id="section-1"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-1">&#182;</a> </div> </td> <td class="code"> <div class="highlight"><pre><span class="p">{</span> <span class="nx">getWindowId</span><span class="p">,</span> <span class="nx">Bucket</span> <span class="p">}</span> <span class="o">=</span> <span class="nx">require</span> <span class="s">&#39;utils&#39;</span>
2
3 <span class="p">{</span> <span class="nx">commands</span><span class="p">,</span>
4 <span class="nx">hintCharHandler</span>
5 <span class="p">}</span> <span class="o">=</span> <span class="nx">require</span> <span class="s">&#39;commands&#39;</span>
6
7 <span class="nv">MODE_NORMAL = </span><span class="mi">1</span>
8 <span class="nv">MODE_HINTS = </span><span class="mi">2</span>
9
10 <span class="k">class</span> <span class="nx">Vim</span>
11 <span class="nv">constructor: </span><span class="nf">(@window) -&gt;</span>
12 <span class="vi">@mode = </span><span class="nx">MODE_NORMAL</span>
13 <span class="vi">@keys = </span><span class="p">[]</span>
14 <span class="vi">@markers = </span><span class="kc">undefined</span>
15 <span class="vi">@cb = </span><span class="kc">undefined</span>
16
17 <span class="nv">pushKey: </span><span class="nf">(keyStr) -&gt;</span>
18 <span class="k">if</span> <span class="nx">_maybeCommand</span><span class="p">(</span><span class="nx">@mode</span><span class="p">,</span> <span class="nx">@keys</span><span class="p">,</span> <span class="nx">keyStr</span><span class="p">)</span>
19 <span class="nx">@keys</span><span class="p">.</span><span class="nx">push</span> <span class="nx">keyStr</span>
20 <span class="k">return</span> <span class="kc">true</span>
21
22 <span class="k">return</span> <span class="kc">false</span>
23
24 <span class="nv">execKeys: </span><span class="o">-&gt;</span>
25 <span class="k">if</span> <span class="nv">command = </span><span class="nx">_getCommand</span><span class="p">(</span><span class="nx">@mode</span><span class="p">,</span> <span class="nx">@keys</span><span class="p">)</span>
26 <span class="nv">lastKey = </span><span class="nx">@keys</span><span class="p">[</span><span class="nx">@keys</span><span class="p">.</span><span class="nx">length</span> <span class="o">-</span> <span class="mi">1</span><span class="p">]</span>
27 <span class="nx">command</span> <span class="nx">@</span>
28 <span class="vi">@keys = </span><span class="p">[]</span>
29 <span class="k">return</span> <span class="nx">lastKey</span> <span class="o">!=</span> <span class="s">&#39;Esc&#39;</span>
30
31 <span class="nv">enterHintsMode: </span><span class="nf">() -&gt;</span>
32 <span class="vi">@mode = </span><span class="nx">MODE_HINTS</span>
33
34 <span class="nv">enterNormalMode: </span><span class="nf">() -&gt;</span>
35 <span class="vi">@markers = @cb = </span><span class="kc">undefined</span>
36
37 <span class="vi">@mode = </span><span class="nx">MODE_NORMAL</span>
38
39 <span class="nv">_getCommand = </span><span class="nf">(mode, keys) -&gt;</span>
40 <span class="nv">lastKey = </span><span class="nx">keys</span><span class="p">[</span><span class="nx">keys</span><span class="p">.</span><span class="nx">length</span> <span class="o">-</span> <span class="mi">1</span><span class="p">]</span>
41
42 <span class="k">if</span> <span class="nx">mode</span> <span class="o">==</span> <span class="nx">MODE_NORMAL</span> <span class="o">or</span> <span class="nx">lastKey</span> <span class="o">==</span> <span class="s">&#39;Esc&#39;</span>
43 <span class="nv">sequence = </span><span class="nx">keys</span><span class="p">.</span><span class="nx">join</span><span class="p">(</span><span class="s">&#39;,&#39;</span><span class="p">)</span>
44 <span class="k">if</span> <span class="nv">command = </span><span class="nx">commands</span><span class="p">[</span><span class="nx">sequence</span><span class="p">]</span>
45 <span class="k">return</span> <span class="nx">command</span>
46 <span class="k">else</span> <span class="k">if</span> <span class="nx">keys</span><span class="p">.</span><span class="nx">length</span> <span class="o">&gt;</span> <span class="mi">0</span>
47 <span class="k">return</span> <span class="nx">_getCommand</span> <span class="nx">mode</span><span class="p">,</span> <span class="nx">keys</span><span class="p">.</span><span class="nx">slice</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
48
49 <span class="k">else</span> <span class="k">if</span> <span class="nx">mode</span> <span class="o">==</span> <span class="nx">MODE_HINTS</span> <span class="o">and</span> <span class="nx">keys</span><span class="p">.</span><span class="nx">length</span> <span class="o">&gt;</span> <span class="mi">0</span></pre></div> </td> </tr> <tr id="section-2"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-2">&#182;</a> </div> <p><code>lastKey</code> should be one hint chars or <code>Backspace</code></p> </td> <td class="code"> <div class="highlight"><pre> <span class="nv">hintChars = </span><span class="nx">getPref</span><span class="p">(</span><span class="s">&#39;hint_chars&#39;</span><span class="p">)</span> <span class="o">+</span> <span class="s">&#39;backspace&#39;</span>
50 <span class="k">if</span> <span class="nx">hintChars</span><span class="p">.</span><span class="nx">search</span><span class="p">(</span><span class="nx">lastKey</span><span class="p">.</span><span class="nx">toLowerCase</span><span class="p">())</span> <span class="o">&gt;</span> <span class="o">-</span><span class="mi">1</span>
51 <span class="k">return</span> <span class="p">(</span><span class="nx">vim</span><span class="p">)</span> <span class="o">=&gt;</span>
52 <span class="k">return</span> <span class="nx">hintCharHandler</span><span class="p">(</span><span class="nx">vim</span><span class="p">,</span> <span class="nx">lastKey</span><span class="p">.</span><span class="nx">toLowerCase</span><span class="p">())</span>
53
54 <span class="k">return</span> <span class="kc">undefined</span>
55
56 <span class="nv">_maybeCommand = </span><span class="nf">(mode, keys, keyStr) -&gt;</span>
57 <span class="k">if</span> <span class="nx">mode</span> <span class="o">==</span> <span class="nx">MODE_NORMAL</span> <span class="o">||</span> <span class="nx">keyStr</span> <span class="o">==</span> <span class="s">&#39;Esc&#39;</span>
58 <span class="nv">sequence = </span><span class="nx">keys</span><span class="p">.</span><span class="nx">concat</span><span class="p">([</span><span class="nx">keyStr</span><span class="p">]).</span><span class="nx">join</span><span class="p">(</span><span class="s">&#39;,&#39;</span><span class="p">)</span>
59 <span class="k">for</span> <span class="nx">commandSequence</span> <span class="k">in</span> <span class="nb">Object</span><span class="p">.</span><span class="nx">keys</span><span class="p">(</span><span class="nx">commands</span><span class="p">)</span>
60 <span class="k">if</span> <span class="nx">commandSequence</span><span class="p">.</span><span class="nx">search</span><span class="p">(</span><span class="nx">sequence</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span>
61 <span class="k">return</span> <span class="kc">true</span>
62
63 <span class="k">if</span> <span class="nx">keys</span><span class="p">.</span><span class="nx">length</span> <span class="o">&gt;</span> <span class="mi">0</span>
64 <span class="k">return</span> <span class="nx">_maybeCommand</span> <span class="nx">mode</span><span class="p">,</span> <span class="nx">keys</span><span class="p">.</span><span class="nx">slice</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span> <span class="nx">keyStr</span>
65
66 <span class="k">else</span> <span class="k">if</span> <span class="nx">mode</span> <span class="o">==</span> <span class="nx">MODE_HINTS</span>
67 <span class="k">return</span> <span class="kc">true</span>
68
69 <span class="k">return</span> <span class="kc">false</span>
70
71 <span class="nv">exports.Vim = </span><span class="nx">Vim</span>
72
73 </pre></div> </td> </tr> </tbody> </table> </div> </body> </html>
Imprint / Impressum