anchor.diff:          (dirnames (uiop:subdirectories directory)))
       (fuzzy-match input (append filenames dirnames))))
   
  -(define-command display-parent-directory (minibuffer-mode &optional (minibuffer (minibuffer *interface*)))
  +;TODO: define a new mode and specialize keybinings on it !
  +
  +(define-mode open-file-mode (minibuffer-mode)
  +    "doc"
  +    ())
  +
  +(defclass open-file-instance ()
  +  ((default-modes :initform '(open-file-mode))
  +   (open-file-function :accessor open-file-function
  +                       :initform #'open-file-fn-default))
  +  (:documentation "Open a file interactively."))
  +
  +(define-command display-parent-directory (open-file-mode &optional (minibuffer (minibuffer *interface*)))
     "Get the parent directory and update the minibuffer.
   
   Default keybindings: `M-Left' and `C-l'."
  
positive.code: The default keybinding is `C-x C-f'.
  
  Note: this feature is alpha, get in touch for more !"
    (let ((directory *current-directory*))
      (with-result (filename (read-from-minibuffer
                              (minibuffer interface)
                              :input-prompt (file-namestring directory)
                              :completion-function #'open-file-from-directory-completion-fn))
  
        (open-file-fn (namestring filename)))))
  
  
  (define-key  "C-x C-f" #'open-file)
  ;; (define-key :mode 'vi-normal-mode  "e" #'open-file) ;TODO:
  
  (define-key :mode 'minibuffer-mode  "C-l" #'display-parent-directory)
  (define-key :mode 'minibuffer-mode  "M-Left" #'display-parent-directory)
  
  (define-key :mode 'minibuffer-mode  "C-j" #'enter-directory)
  (define-key :mode 'minibuffer-mode  "M-Right" #'enter-directory)
  
negative.code:       (erase-input minibuffer)
        (update-display minibuffer))))
  
  (define-command open-file ()
    "Open a file from the filesystem.
  
  The user is prompted with the minibuffer, files are browsable with the
  