def child_candidates word
    arcs, absolute, trailing_slash = Path.parse word
    last = trailing_slash ? '' : (arcs.pop || '')
    arcs.map! { |x| x.gsub '\\', '' }
    base = absolute ? @shell.fs.root : @shell.fs.cur
    cur = @shell.fs.traverse(base, arcs).first or return []
    arcs.unshift '' if absolute
    children = @cache[cur, :rvc_children] rescue []
    children.
      select { |k,v| k.gsub(' ', '\\ ') =~ /^#{Regexp.escape(last)}/ }.
      map { |k,v| (arcs+[k])*'/' }.
      map { |x| x.gsub ' ', '\\ ' }.
      map { |x| [x, '/'] }
  end
def child_candidates word
    arcs, absolute, trailing_slash = Path.parse word
    last = trailing_slash ? '' : (arcs.pop || '')
    arcs.map! { |x| x.gsub '\\', '' }
    base = absolute ? @shell.fs.root : @shell.fs.cur
    cur = @shell.fs.traverse(base, arcs).first or return []
    arcs.unshift '' if absolute
    children = @cache[cur, :rvc_children] rescue []
    children.
      select { |k,v| k.gsub(' ', '\\ ') =~ /^#{Regexp.escape(last)}/ }.
      map { |k,v| (arcs+[k])*'/' }.
      map { |x| x.gsub ' ', '\\ ' }.
      map { |x| [x, '/'] }
  end
TODO convert to globbing