all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Michael Heerdegen <michael_heerdegen@web.de>
To: Tomas Hlavaty <tom@logand.com>
Cc: help-gnu-emacs@gnu.org
Subject: Re: printing configuration per file
Date: Mon, 25 Jan 2021 19:55:32 +0100	[thread overview]
Message-ID: <87sg6o26e3.fsf@web.de> (raw)
In-Reply-To: <875z3nkukn.fsf@logand.com> (Tomas Hlavaty's message of "Sun, 24 Jan 2021 02:11:20 +0100")

Tomas Hlavaty <tom@logand.com> writes:

> Hi,
>
> I would like to specify printing configuration per file instead of
> globally.
>
> Example: I have a file /foo/a/a.txt and a file /foo/b/b.txt.  When I
> open a.txt, the variables ps-font-size, ps-print-header and
> ps-print-footer should have specific values.  When I open b.txt, those
> variables should have different values.  I do not want to set those
> variables globaly.
>
> What are the ways to achieve that?
>
> I tried storing the files in different directories and using
> .dir-locals.el but that did not work (did not set the values + I want to
> set the values for a specific file, not for all files in the directory
> or per mode):
>
> --- .dir-locals.el file
> ;;; Directory Local Variables
> ;;; For more information see (info "(emacs) Directory Variables")
>
> ((nil . ((ps-font-size . 10)
>          (ps-print-header . nil)
>          (ps-print-footer . nil))))
> --- eof

Does look ok to me.  I guess you need to find out why directory local
variables don't work for you.

Then, one way to achieve what you want could be to use the `eval'
"pseudo" variable and put your settings as `setq-local' calls there.
You can make the settings conditional by testing `buffer-file-name' in
your specified expression.

> Is there a way to set local variables not per directory like
> .dir-locals.el does but per file and still using different file?
> E.g. for /foo/a.txt using /foo/a.txt.file-locals.el?

Not built in AFAIK.  Apart from doing it "by hand" of course, e.g. by
using `find-file-hook' and testing `buffer-file-name'.

> Is there a gui for setting buffer local variables, e.g. something like
> customize but writing the values to Local variables section or
> .dir-locals.el file?

I only know the commands.

> Is there a way to see buffer local variables?  There is
> (buffer-local-variables) but if I evaluate that in the buffer, *Message*
> buffer does not contain readable print of that value.  I do not want to
> write a program for this.

I suggest to use the command `pp-eval-expression', that prints the value
in a separate buffer in a better readable format.


HTH,

Michael.



  reply	other threads:[~2021-01-25 18:55 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-24  1:11 printing configuration per file Tomas Hlavaty
2021-01-25 18:55 ` Michael Heerdegen [this message]
2021-01-25 19:00   ` Michael Heerdegen

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=87sg6o26e3.fsf@web.de \
    --to=michael_heerdegen@web.de \
    --cc=help-gnu-emacs@gnu.org \
    --cc=tom@logand.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.