From: Michael Slass <miknrene@drizzle.com>
Subject: Re: automate Emacs beautifyer ?
Date: Tue, 24 Aug 2004 12:13:17 -0700 [thread overview]
Message-ID: <m34qmsjqnm.fsf@eric.rossnet.com> (raw)
In-Reply-To: 412B6422.1040601@yahoo.com
Kevin Rodgers <ihs_4664@yahoo.com> writes:
>Bert Cuzeau wrote:
> > Under Windows (or Unix), is there a way to automate Emacs doing
> > only :
> > - open file
> > - VHDL - beautify - Buffer (C-c C-b)
> > - save file
> > - exit
> >
> > We have hundreds of files to "beautify" with VHDL-mode and it is a
> > chore doing this by hand.
> >
> > Ideally, emacs with command line parameters would suit me great...
>
>Of course:
>
>for file in *.vhdl; do
> # Long options for readability:
> emacs --batch --visit=$file \
> --funcall=vhdl-beautify-buffer --funcall=save-buffer
> # Short options for brevity:
> # emacs -batch $file -f vhdl-beautify-buffer -f save-buffer
>done
>
>See the "Command Line Arguments" section of the Emacs manual,
>especially the "Initial Options" and "Action Arguments" subnodes.
>
Doing this in emacs lisp has the advantage of starting emacs only
once, as opposed to once per file. Assuming you have a list of the
files you want to change, one file per line, each file with a full
path, this elisp will do what you want:
(defun vhdl-batch-beautify (listfile-name)
"Invoke `vhdl-beautify-buffer' on a batch of files.
LISTFILE-NAME is a path to a file containing a list of vhdl-files to
be beautified, one filename per line. Each line should contain a full
path to the vhdl file."
(interactive "fEnter name of file list for vhdl-beautification: ")
(let ((file-list-buf (find-file listfile-name))
(file-list '()))
(save-excursion
(set-buffer file-list-buf)
(beginning-of-buffer)
(while (not (eobp))
(add-to-list
'file-list
(buffer-substring (point)
(progn (end-of-line) (point))))
(unless (eobp) (forward-char 1)))
(kill-buffer file-list-buf)
;;; probably neater to use a cl loop construct here,
;; but I've never learned how
(while file-list
(find-file (car file-list))
(vhdl-mode)
(vhdl-beautify-buffer)
(save-buffer)
(kill-buffer (current-buffer))
(setq file-list (cdr file-list))))))
--
Mike Slass
next prev parent reply other threads:[~2004-08-24 19:13 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-08-24 7:53 automate Emacs beautifyer ? Bert Cuzeau
2004-08-24 8:22 ` Joost Kremers
2004-08-24 10:15 ` Miguel Frasson
2004-08-25 8:31 ` Oliver Scholz
2004-08-25 8:48 ` Miguel Frasson
2004-08-25 15:58 ` Kevin Rodgers
2004-08-29 9:48 ` Oliver Scholz
2004-09-02 2:10 ` date discrepancies Sebastian Luque
[not found] ` <mailman.1182.1094095164.1998.help-gnu-emacs@gnu.org>
2004-09-02 7:04 ` Pascal Bourguignon
2004-09-02 14:42 ` Sebastian Luque
2004-09-02 16:17 ` Sebastian Luque
2004-09-02 19:29 ` Stefan Monnier
2014-08-13 14:26 ` thymythos
2004-08-25 16:03 ` automate Emacs beautifyer ? David Kastrup
2004-08-25 20:30 ` LEE Sau Dan
2004-08-24 15:52 ` Kevin Rodgers
2004-08-24 19:13 ` Michael Slass [this message]
2004-08-24 23:27 ` Kevin Rodgers
2004-08-25 0:15 ` Michael Slass
2004-08-25 16:12 ` Kevin Rodgers
2004-08-26 15:26 ` Kevin Rodgers
2004-08-28 10:58 ` Kai Grossjohann
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=m34qmsjqnm.fsf@eric.rossnet.com \
--to=miknrene@drizzle.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.