anchor.diff:    (alex:when-let ((selection (prompter:attributes-default
                                 (prompter:selected-suggestion prompt-buffer))))
       (nyxt::set-prompt-buffer-input selection)))
  +
  +(define-command-prompt move-start-of-input (prompt-buffer)
  +  "Move to the beginning of PROMPT-BUFFER input."
  +  (ffi-buffer-evaluate-javascript
  +   prompt-buffer
  +   (ps:ps
  +     (let ((input (ps:chain document (get-element-by-id "input"))))
  +       (setf (ps:@ input selection-start) 0
  +             (ps:@ input selection-end) 0)))))
  +
  +(define-command-prompt move-end-of-input (prompt-buffer)
  +  "Move to the end of PROMPT-BUFFER input."
  +  (ffi-buffer-evaluate-javascript
  +   prompt-buffer
  +   (ps:ps
  +     (let ((input (ps:chain document (get-element-by-id "input"))))
  +       (setf (ps:@ input selection-start) (ps:@ input value length)
  +             (ps:@ input selection-end) (ps:@ input value length))))))
  +
  +(define-command-prompt cursor-forwards (prompt-buffer)
  +  "Move cursor forward by one character."
  +  (with-current-buffer prompt-buffer
  +    (nyxt/input-edit-mode:cursor-forwards)))
  +
  +(define-command-prompt cursor-backwards (prompt-buffer)
  +  "Move cursor backwards by one character."
  +  (with-current-buffer prompt-buffer
  +    (nyxt/input-edit-mode:cursor-backwards)))
  +
  +(define-command-prompt cursor-forwards-word (prompt-buffer)
  +  "Move cursor forward by one word."
  +  (with-current-buffer prompt-buffer
  +    (nyxt/input-edit-mode:cursor-forwards-word)))
  +
  +(define-command-prompt cursor-backwards-word (prompt-buffer)
  +  "Move cursor backwards by one word."
  +  (with-current-buffer prompt-buffer
  +    (nyxt/input-edit-mode:cursor-backwards-word)))
  
positive.code:        "M-[" 'select-previous-source    ; Emacs Helm binding.
         "C-j" 'run-follow-mode-function
         "C-g" 'cancel-input
         "C-h b" 'run-prompt-buffer-command)
  
        scheme:vi-normal
        (list
  
negative.code:        "z f" 'toggle-follow
         "z a" 'toggle-attributes-display
         "y" 'copy-selection
         "p" 'paste
         "$" 'move-end-of-input
         "^" 'move-start-of-input
         "l" 'cursor-forwards
         "h" 'cursor-backwards
         "w" 'cursor-forwards-word
         "b" 'cursor-backwards-word)
  
        scheme:vi-insert
        (list
  