anchor.diff:                                    (lem:buffer-directory))))
   
   (define-ex-command "^(w|write)$" (range filename)
  -  (ex-write range filename))
  +  (ex-write range filename t))
   
   (define-ex-command "^update$" (range filename)
     (when (lem:buffer-modified-p (lem:current-buffer))
  -    (ex-write range filename)))
  +    (ex-write range filename t)))
   
   (define-ex-command "^wq$" (range filename)
  -  (ex-write-quit range filename nil))
  +  (ex-write-quit range filename nil t))
   
   (define-ex-command "^wq!$" (range filename)
  -  (ex-write-quit range filename t))
  +  (ex-write-quit range filename t t))
   
   (define-ex-command "^q$" (range argument)
     (declare (ignore range argument))
  
positive.code:                 #:with-jump-motion))
  (in-package :lem-vi-mode.ex-command)
  
  (defun ex-write (range filename)
    (case (length range)
      (0 (if (string= filename "")
             (lem:save-buffer)
             (lem:write-file filename)))
      (2 (lem:write-region-file (first range) (second range)
                                (if (string= filename "")
  
negative.code:     (otherwise (syntax-error))))
  
  (defun ex-write-quit (range filename force)
    (ex-write range filename touch)
    (lem-vi-mode.commands:vi-quit force))
  
  (define-ex-command "^e$" (range filename)
  