<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -23,6 +23,7 @@ class App
   end
   def self.enter_from_difflog
     Location.as_spot
+    View.to_after_bar if View.in_bar?
     DiffLog.open
     isearch_backward
   end</diff>
      <filename>app.rb</filename>
    </modified>
    <modified>
      <diff>@@ -181,9 +181,11 @@ class Clipboard
     Move.to_axis
     left = Line.left
     right = Line.left(many+1)
-    Clipboard.set(&quot;0&quot;, View.txt(left, right))
+    line = View.txt(left, right)
+    Clipboard.set(&quot;0&quot;, line)
     Effects.blink :left =&gt; left, :right =&gt; right
     $el.set_mark(right)
+    Keys.save_for_yank line   # Store for retrieval with enter_yank
   end
 
   def self.enter_replacement
@@ -209,5 +211,7 @@ class Clipboard
       return
     end
     Clipboard.copy(&quot;0&quot;)
+
+    Keys.save_for_yank View.selection   # Store for retrieval with enter_yank
   end
 end</diff>
      <filename>clipboard.rb</filename>
    </modified>
    <modified>
      <diff>@@ -159,9 +159,9 @@ class Code
   def self.open_related_rspec
     if View.file =~ /\/(app|spec)\//   # If normal specs
       if View.file =~ /\/app\//   # If in spec, open corresponding file
-        View.open View.file.sub('/app/', '/spec/').sub(/\.rb/, '_spec.rb')
+        View.open View.file.sub('/app/', '/spec/unit/').sub(/\.rb/, '_spec.rb')
       else   # Otherwise, open file corresponding spec
-        View.open View.file.sub('/spec/', '/app/').sub(/\_spec.rb/, '.rb')
+        View.open View.file.sub('/spec/unit/', '/app/').sub(/\_spec.rb/, '.rb')
       end
       return
     end
@@ -183,7 +183,7 @@ class Code
     args = []
 
     if Keys.prefix_u
-      args &lt;&lt; 'spec'
+      args &lt;&lt; 'spec/unit'
       args &lt;&lt; '-p'
       args &lt;&lt; '**/*.rb'
 
@@ -252,6 +252,7 @@ class Code
       View.to_buffer buffer
     else   # Otherwise open it and run console
       Console.run &quot;merb -i&quot;, :dir=&gt;dir, :buffer=&gt;buffer
+      #       Console.run &quot;merb -i -e test&quot;, :dir=&gt;dir, :buffer=&gt;buffer
     end
     View.clear
 </diff>
      <filename>code.rb</filename>
    </modified>
    <modified>
      <diff>@@ -31,8 +31,11 @@ class CouchDb
 
     %Q[
     + .docs/
+    + .views/
+    + .all_docs/
     + .delete/
     + .rest_tree/
+    + .crud/
     ]
   end
 
@@ -122,4 +125,25 @@ class CouchDb
     &quot;|#{res}&quot;
   end
 
+  def self.views db
+    db.sub! /\/$/, ''
+    views = JSON[RestTree.request('GET', &quot;#{@@server}/#{db}/_design/d1&quot;, nil)]['views']
+
+    views.keys.each do |k|
+      puts &quot;y Cdb.#{db[/(.+)_/, 1]} :#{k}#, :key=&gt;''&quot;
+    end
+  end
+
+  def self.all_docs db
+    puts &quot;y Cdb.#{db[/(.+)_/, 1]}&quot;
+    puts &quot;y Cdb.all :#{db[/(.+)_/, 1]}#, :key=&gt;''&quot;
+  end
+
+  def self.crud db
+    puts &quot;y Cdb.#{db[/(.+)_/, 1]} ''&quot;
+    puts &quot;y Cdb.#{db[/(.+)_/, 1]}! '', 'txt'=&gt;''&quot;
+    puts &quot;y Cdb.delete :#{db[/(.+)_/, 1]}, ''&quot;
+    puts &quot;y Cdb.#{db[/(.+)_/, 1]} :startkey=&gt;'b', :endkey=&gt;'n', :skip=&gt;2, :limit=&gt;3&quot;
+  end
+
 end</diff>
      <filename>couch_db.rb</filename>
    </modified>
    <modified>
      <diff>@@ -15,7 +15,7 @@ class Firefox
   end
 
   def self.reload
-    Code.open_log_view if Keys.prefix_u
+    Code.open_log_view if Keys.prefix_u &amp;&amp; View.buffer_visible?('*output - tail of /tmp/output.notes')
     prefix = Keys.prefix_n
     if prefix   # If numeric prefix, go to that tab
       tab = prefix - 1</diff>
      <filename>firefox.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 class Javascript
   def self.run
     # Get block contents
-    txt = Notes.block(&quot;^|&quot;)
+    txt, left, right = View.txt_per_prefix #:prefix=&gt;Keys.prefix
 
     txt &lt;&lt; &quot;
       function p(txt) {</diff>
      <filename>javascript.rb</filename>
    </modified>
    <modified>
      <diff>@@ -173,6 +173,7 @@ class KeyBindings
     Keys.enter_viewing { History.enter_viewing }
     # W
     Keys.enter_whitespace { open_line(elvar.current_prefix_arg || 1) }
+    Keys.enter_yank { Keys.yank }
     # X
     # Y
     # Z</diff>
      <filename>key_bindings.rb</filename>
    </modified>
    <modified>
      <diff>@@ -4,6 +4,7 @@ require 'text_util'
 
 # Methods for defining keyboard shortcuts
 class Keys
+  @@entered_as_quote = {}
 
   @@key_queue =[]  # For defining menus (must be done in reverse)
 
@@ -308,15 +309,14 @@ class Keys
     prefix = Keys.prefix
     # If prefix of 0, insert in a way that works with macros
     case prefix
-    # Do pause for space
-    when :u
+    when nil   # Do nothing
+    when :u   # Do pause for space
       PauseMeansSpace.go
       return
     when 0
       View.insert Keys.input(:prompt =&gt; &quot;Insert text to insert: &quot;)
       return
-    # If other prefix, insert single char n times
-    when 1..8
+    else   # If other prefix, insert single char n times
       c = View.read_char(&quot;Insert single char to insert #{prefix} times: &quot;).chr
       prefix.times do
         View.insert c
@@ -330,25 +330,29 @@ class Keys
     # Get first char and insert
     c = $el.read_char(&quot;insert text (pause to exit): &quot;).chr
     inserted = &quot;#{c}&quot;
-    c = c.upcase if prefix == :u
+    #     c = c.upcase if prefix == :u
 
     View.insert c
-    o = $el.make_overlay $el.point, $el.point - 1
-    $el.overlay_put o, :face, :control_lock_found
+    #     o = $el.make_overlay $el.point, $el.point - 1
+    #     $el.overlay_put o, :face, :control_lock_found
     # While no pause, insert more chars
     while(c = $el.read_char(&quot;insert text (pause to exit): &quot;, nil, 0.36))
-      $el.delete_overlay o
+      #       $el.delete_overlay o
       inserted += c.chr
       View.insert c.chr
-      o = $el.make_overlay $el.point, $el.point - inserted.size
-      $el.overlay_put o, :face, :control_lock_found
+      #       o = $el.make_overlay $el.point, $el.point - inserted.size
+      #       $el.overlay_put o, :face, :control_lock_found
     end
-    $el.delete_overlay o
+    #     $el.delete_overlay o
     $el.elvar.qinserted = inserted
     $el.message &quot;input ended&quot;
 
     Cursor.restore :before_q
 
+    # Store in hash by first letter for use by enter_yank
+
+    Keys.save_for_yank inserted   # Store for retrieval with enter_yank
+
   end
 
   def self.as name
@@ -509,4 +513,17 @@ class Keys
     $el.el4r_lisp_eval(&quot;(elt (recent-keys) (- (length (recent-keys)) 2))&quot;).to_s
   end
 
+  def self.save_for_yank txt
+
+    key = txt[/[a-z]/i]
+    @@entered_as_quote[key.downcase] = txt
+  end
+
+  def self.yank
+    ch = Keys.input :one_char =&gt; true
+    value = @@entered_as_quote[ch]
+    return unless value
+    View.insert value
+  end
+
 end</diff>
      <filename>keys.rb</filename>
    </modified>
    <modified>
      <diff>@@ -146,6 +146,7 @@ class Search
     Clipboard.set(&quot;0&quot;, match)
     set_register ?X, match
     x_select_text match
+    Keys.save_for_yank match   # Store for retrieval with enter_yank
   end
 
   def self.cut</diff>
      <filename>search.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>d0c9cba6acd1c7c116a56d4ced6ee7519f55c674</id>
    </parent>
  </parents>
  <author>
    <name>trogdoro</name>
    <email>craig.muth@gmail.com</email>
  </author>
  <url>http://github.com/trogdoro/xiki/commit/38f52178c64b7e68edf64b9fe997ad85070ce4f5</url>
  <id>38f52178c64b7e68edf64b9fe997ad85070ce4f5</id>
  <committed-date>2009-04-11T08:03:04-07:00</committed-date>
  <authored-date>2009-04-11T08:03:04-07:00</authored-date>
  <message>Keys.enter_yank: inserts after prompting for first letter of last copied or Q'ed string.</message>
  <tree>2d297eecbc54a3648588ca2b5fd726dbaa744584</tree>
  <committer>
    <name>trogdoro</name>
    <email>craig.muth@gmail.com</email>
  </committer>
</commit>
