[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