When I execute (diff-buffer-with-file ), the file on disk is used as the first argument, the working buffer as the second. This leads to a diff-mode buffer with the base-line (the left-hand side) as the file on disk, not my current buffer. I would think this is opposite of what should be the default. Wouldn't we more often want to view the buffer's current state as the baseline, and view what changes would be required to transform this buffer into the file on disk? In GNU Emacs 25.3.1 (i686-w64-mingw32) of 2017-09-17 built on LAPHROAIG Windowing system distributor 'Microsoft Corp.', version 6.1.7601 Configured using: 'configure --host=i686-w64-mingw32 --without-dbus --without-compress-install 'CFLAGS=-static -O2 -g3'' Configured features: XPM JPEG TIFF GIF PNG RSVG SOUND NOTIFY ACL GNUTLS LIBXML2 ZLIB TOOLKIT_SCROLL_BARS Important settings: value of $LANG: ENU locale-coding-system: cp1252 Major mode: Shell-script Minor modes in effect: global-magit-file-mode: t magit-file-mode: t global-git-commit-mode: t bug-reference-prog-mode: t lisp-extra-font-lock-global-mode: t flycheck-popup-tip-mode: t yas-global-mode: t yas-minor-mode: t workgroups-mode: t persp-mode: t diff-hl-flydiff-mode: t global-diff-hl-mode: t diff-hl-mode: t diff-auto-refine-mode: t global-undo-tree-mode: t undo-tree-mode: t rich-minority-mode: t counsel-mode: t recentf-mode: t savehist-mode: t global-page-break-lines-mode: t shackle-mode: t simpleclip-mode: t shx-global-mode: t global-yascroll-bar-mode: t yascroll-bar-mode: t global-flycheck-mode: t flycheck-mode: t global-auto-complete-mode: t auto-complete-mode: t shell-dirtrack-mode: t ivy-mode: t delete-selection-mode: t show-paren-mode: t winner-mode: t which-function-mode: t override-global-mode: t tooltip-mode: t global-eldoc-mode: t electric-indent-mode: t mouse-wheel-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t size-indication-mode: t column-number-mode: t line-number-mode: t transient-mark-mode: t Recent messages: funcall-interactively: End of buffer Configuring package sh-script...done Setting up indent for shell type -*- Indentation variables are now local. Indentation setup for shell type -*- Mark saved where search started 6 matches for "\_" Mark set Quit Mark saved where search started Load-path shadows: c:/Users/dan.harms.XRTRADING/.emacs.d/elisp/seq hides c:/emacs-25.3/share/emacs/25.3/lisp/emacs-lisp/seq c:/Users/dan.harms.XRTRADING/.emacs.d/elisp/let-alist hides c:/emacs-25.3/share/emacs/25.3/lisp/emacs-lisp/let-alist Features: (shadow sort mail-extr emacsbug sendmail sh-script smie executable whiteboard-theme magit-bookmark magit-imenu git-rebase magit-extras magit-ediff ediff-merg ediff-wind ediff-diff ediff-mult ediff-help ediff-init ediff-util ediff magit-subtree magit-submodule magit-obsolete magit-blame magit-stash magit-bisect magit-remote magit-commit magit-sequence magit-notes magit-worktree magit-branch magit-collab ghub url-auth url url-proxy url-privacy url-expand url-methods url-history url-cookie url-domsuf let-alist magit-files magit-refs magit-status magit magit-repos magit-apply magit-wip magit-log magit-diff magit-core magit-autorevert magit-process magit-margin magit-mode magit-git magit-section magit-popup git-commit magit-utils crm log-edit message rfc822 mml mml-sec epg mm-decode mm-bodies mailabbrev mail-utils gmm-utils mailheader pcvs-util with-editor server misearch multi-isearch gud vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs autorevert filenotify add-log vc-git good-word adaptive-wrap hydra lv org-rmail org-mhe org-irc org-info org-gnus org-docview doc-view jka-compr image-mode org-bibtex bibtex org-bbdb org-w3m ox-md ox-latex ox-icalendar ox-html ox-ascii ox-publish ox org-element ob-sqlite ob-sql ob-sh ob-python ob-plantuml ob-dot ob-ditaa ob-C org-crypt org org-macro org-footnote org-pcomplete org-list org-faces org-entities noutline outline org-version ob-emacs-lisp ob ob-tangle ob-ref ob-lob ob-table ob-exp org-src ob-keys ob-comint ob-core ob-eval org-compat org-macs org-loaddefs cal-menu calendar cal-loaddefs frame-cmds frame-fns light-blue-theme colir bug-reference nodejs-repl emr-c cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs lisp-extra-font-lock elf-mode xr-mock use-package use-package-ensure use-package-delight use-package-diminish use-package-bind-key use-package-core remotehost-connect auto-insert-choose+ auto-insert-choose flycheck-popup-tip flycheck-bashate flycheck-checkbashisms flycheck-package package-lint finder finder-inf lisp-mnt package epg-config quick-peek yasnippet flymake ac-etags auto-complete-config vlf-setup smerge-mode palette eyedropper hexrgb custom-themes workgroups perspective windmove framemove shebang diff-hl-flydiff diff-hl-dired diff-hl vc-dir vc vc-dispatcher diff-mode dired-du find-dired dired-sort dired-sidebar face-remap dired-subtree ivy-dired-history dired-filter dired-hacks-utils ls-lisp+ files+ dired+ w32-browser image-dired image-file dired-aux beginend undo-tree diff smart-mode-line-light-theme rich-minority powerline powerline-separators powerline-themes smex ido counsel swiper ivy-rich wgrep ange-ftp tramp-ftp tramp-cache tramp-sh recentf tree-widget wid-edit savehist page-break-lines shackle trace simpleclip shx color makefile-executor make-mode elnode db web time-stamp browse-url url-util mailcap mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums fakir dotassoc kv noflet cl-indent ert ewoc debug copyright yascroll emr-elisp emr-lisp list-utils emr-iedit iedit iedit-lib emr-prog emr custom-environment aes proviso-frame-title proviso switch-buffer-functions proviso-include-files auto-complete-clang flycheck json map find-func rx auto-complete-c-headers auto-complete popup cl proviso-grep proviso-registers proviso-sml smart-mode-line proviso-bookmarks bookmark+ bookmark+-key derived dired-x dired crosshairs col-highlight vline hl-line+ hl-line bookmark+-1 bookmark+-bmu bookmark+-lit bookmark pp proviso-gentags find-file proviso-tags proviso-etags-select proviso-etags-table etags xref project proviso-display proviso-dired proviso-compile proviso-fulledit em-glob esh-util proviso-clang-format clang-format xml proviso-ag grep compile proviso-defines proviso-regexp subr-x proviso-core load-environment-vars read-file-into-list-of-lines tramp tramp-compat tramp-loaddefs trampver ucs-normalize shell pcomplete comint ansi-color format-spec advice seq seq-25 ivy flx delsel ivy-overlay ffap thingatpt url-parse auth-source cl-seq eieio byte-opt bytecomp byte-compile cl-extra cconv eieio-core cl-macs gv gnus-util mm-util help-fns help-mode easymenu mail-prsvr password-cache url-vars f s dash avoid paren winner ring which-func imenu edmacro kmacro custom-backups bind-key easy-mmode cl-loaddefs pcase cl-lib time-date mule-util tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel dos-w32 ls-lisp disp-table w32-win w32-vars term/common-win tool-bar dnd fontset image regexp-opt fringe tabulated-list newcomment elisp-mode lisp-mode prog-mode register page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese charscript case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer cl-preloaded nadvice loaddefs button faces cus-face macroexp files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote w32notify w32 multi-tty make-network-process emacs) Memory information: ((conses 8 575721 250760) (symbols 32 58486 1) (miscs 32 677 1596) (strings 16 139326 184998) (string-bytes 1 4399580) (vectors 8 82280) (vector-slots 4 1271150 107036) (floats 8 947 681) (intervals 28 3162 4108) (buffers 520 28))