help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: problems with ediff-startup-hooks


From: Kevin Rodgers
Subject: Re: problems with ediff-startup-hooks
Date: Wed, 01 Mar 2006 11:45:27 -0700
User-agent: Mozilla Thunderbird 0.9 (X11/20041105)

bhenz@Lexmark.com wrote:
> I running emacs 21.4.1. I'm trying to do some fancy ediff stuff.
>
> Actually not terribly fancy, I just want to invoke it from the command
> line with parmeters similar to "diff", specifically using the -L option
> to give more descriptive names to the buffers. Currently I can ediff two
> files by doing the following...
>
> emacs --eval='(progn (setq ediff-diff-options "-wbB") (ediff-files
> "file1" "file2"))'
>
> Maybe there's an easier/better way?

Looks good to me, but here's a snippet that'll let you run
emacs --diff file1 file2

Perhaps you can tweak it to accept ediff-diff-options as a command line
argument as well.

(defun diff-command-line-args (switch)
"Run `ediff-files' on the following 2 command line arguments (after SWITCH)."
  ;; (prog1 ...) == (pop command-line-args-left):
  (let ((file-a (prog1 (car command-line-args-left)
                 (setq command-line-args-left
                       (cdr command-line-args-left))))
        (file-b (prog1 (car command-line-args-left)
                 (setq command-line-args-left
                       (cdr command-line-args-left)))))
    (ediff-files file-a file-b)))

(setq command-switch-alist
      (cons '("--diff" . diff-command-line-args) command-switch-alist))

> ANYWAY,
>
> The path I'm currently on requires me to hook into the
> "ediff-startup-hooks" with the following code in my .emacs file...
>
> (require 'ediff)
>
> ;; Get rid of the annoying little (separate) ediff window and
> ;; turn it into a 3rd pane in the main emacs window.
> (setq ediff-window-setup-function 'ediff-setup-windows-plain)
>
> ;; Put files side-by-side
> ;(setq ediff-split-window-function 'split-window-horizontally)
>
> (defun my-ediff-startup-hooks ()
>     (set-buffer ediff-buffer-A)
>     (rename-buffer "bobA")
>     (set-buffer ediff-buffer-B)
>     (rename-buffer "bobB")
> )
>
> (add-hook 'ediff-startup-hooks 'my-ediff-startup-hooks)
>
> OK, so this is just baby-step code because clearly "bobA" and "bobB" are
> not useful, but I can't even get THIS to work! I even tried inserting a
> line I knew would fail in the defined function (something like
> (undefined_bob_qwerty)) and I never got a complaint when I fired up a
> new instance of ediff.
>
> (but I know it was picking up my changes to .emacs because if I made a
> /syntax/ error then it would warn me about that.)
>
> What am I doing wrong?

AFAIK, the name of the variable is ediff-startup-hook (no "s").

--
Kevin Rodgers





reply via email to

[Prev in Thread] Current Thread [Next in Thread]