From: Jambunathan K <kjambunathan@gmail.com>
To: Xebar Saram <zeltakc@gmail.com>
Cc: Eric Abrahamsen <eric@ericabrahamsen.net>,
org mode <emacs-orgmode@gnu.org>
Subject: Re: custom emacs org-emphasis-alist breaks EXPORT, help ;-) ?
Date: Sat, 02 Nov 2013 20:42:50 +0530 [thread overview]
Message-ID: <874n7uygzx.fsf@gmail.com> (raw)
In-Reply-To: <CAOQHXPqr1rQcXQrLZnR6pdSKs3jrFwn+XUOAx1hMdwRfNheUxQ@mail.gmail.com> (Xebar Saram's message of "Sat, 2 Nov 2013 14:50:48 +0200")
Working with font-lock keywords is quite messy. The good news is that
you don't have to do it.
If you want highlighting in the buffer or a file (and but not in the
exported buffer), just go with hi-lock-mode.
The relevant manual page is at
C-h K C-x w b
In your Org file do this,
C-x C-f somefile.org
M-x hi-lock-mode RET
C-x w p server
M->
C-x w b
C-x C-s
C-x k
C-x C-f somefile.org
When you reopen the file hi-lock may ask some confusing questions.
Answer those.
You will see that now whenever you open the file, the word `server' is
always highlighted.
If you are adventurous, you can do
C-h v font-lock-keywords
within the org file and examine how it looks like for specific keywords
you have added.
Xebar Saram <zeltakc@gmail.com> writes:
> Thanks Eric , really appreciate the continuous help!
>
> i do plan to get into rexeg on the future (i promise :)) but real life
> now just allow me to allocate time (i started an assistant professor
> position and time is at a huge premium..).
>
> i tried using this as i tried to understand from your email, but i
> guess im again doing something wrong. shouldn't the below example
> color "salt", it dosent see to work.
>
> ;test
> (font-lock-add-keywords
> 'org-mode
> '(("\b[Ss]alt\\b)" (0 '(:weight ultra-bold :foregroun "#FF9800") t))))
>
> thank you for all your help
>
> On Sat, Nov 2, 2013 at 12:15 PM, Eric Abrahamsen
> <eric@ericabrahamsen.net> wrote:
>
> Xebar Saram <zeltakc@gmail.com> writes:
>
> > Hi again all
> >
> > i have been using the before discussed font lock with great
> success
> > over the past few weeks, thx alot for that tip!
> >
> > one short question i have from using it thourhgly is weather its
> > possible to color specific words , IE not just text bound
> between
> > symbols ( ie > !text! ) but rather lets say i always want to
> make the
> > word server appear with blue FG. is this possible? currently i
> tried
> >
> > (font-lock-add-keywords
> > 'org-mode
> > '(("\\(server[^server\n]+server\\)" (0 '(:foreground "#000000"
> > :underline t :background "#FF9AEA" :weight ultra-bold) t))))
>
>
> At some point you're definitely going to want to read up on
> regular
> expressions!
>
> But in the meantime yes, it's entirely (mostly) possible. A
> regular
> expression is just a way of finding desired pieces of text in a
> larger
> run of text. Think of the regexp as an instruction that starts:
> "Find
> all pieces of text that are..."
>
> All the special regexp characters are just a way of making the
> instruction general (_any_ number, four of _any_ character, _
> anything_
> that's not a "p").
>
> In the most basic case, however, a regexp is simply the text you
> want to
> find: "Find all pieces of text that are 'server'". In this case,
> that's
> your regexp: "server".
>
> The reason regexps are difficult, of course, is that they can't
> read
> your mind, and will find things you didn't want, and not find
> things you
> did want. So much of messing with regexps is telling them: _yes_
> this
> too, _no_ not that. In your case, you'd probably want to put word
> boundaries around the regexp ("\b" on either side), and find both
> capitalized and lowercase instances of the word. So your
> instruction
> might be:
>
> "Find all pieces of text that are 'server' or 'Server', but only
> as a
> complete word."
>
> Which would look like
>
> "\\b[Ss]erver\\b"
>
> Give that a shot. You're jumping into the middle of something
> fairly
> complicated, so be patient and go slow!
>
>
>
> E
>
> > instead of the original
> >
> > (font-lock-add-keywords
> > 'org-mode
> > '(("\\(₆[^₆\n]+₆\\)" (0 '(:foreground "#000000" :underline t
> > :background "#FF9AEA" :weight ultra-bold) t))))
> >
> >
> > again i apologize for my regrex ignorance :)
> >
> > best
> >
> > Z
> >
> >
> >
> >
> > On Sun, Oct 6, 2013 at 8:04 AM, Eric Abrahamsen <
> > eric@ericabrahamsen.net> wrote:
> >
> > Xebar Saram <zeltakc@gmail.com> writes:
> >
> > > thx again Eric
> > >
> > > i still have an issue with this when one of the symbols used
> to
> > start
> > > /end the highlight is used in a sentence, for example using
> > your
> > > code:
> > >
> > > (font-lock-add-keywords
> > > 'org-mode
> > > '(("-1-\\([^-1-]+\\)-1-" (0 '(:weight ultra-bold :background "
> > #
> > > DDFFDD" :foreground "#000000") t))))
> > >
> > > if i write this:
> > >
> > > -1- this is a test of 1x1 to show higlight -1-
> > >
> > > it will kill the highlight, if i use the same text omitting
> the
> > '1'
> > > it works well, anyway around this issue? i thought it would
> > have
> > > matcehd -1- but it seems it matches also just 1 by itself
> > >
> > > best wishes and thx again
> >
> > Yup, the things inside the [^] construct, to _not_ be matched,
> > are
> > treated as a list of single characters. So you're saying
> > "anything
> > that's not a '1' or a '-'," but then you've got a '1' in the
> > middle of
> > the line. If you want the highlighting to include any character,
> > but not
> > span newlines, you could just use [^\n] instead.
> >
> > At this point you'll probably want to read the regular
> expression
> > part
> > of the manual:
> >
> > (elisp) Regular Expressions
> >
> > I think you mentioned you don't have a lot of programming
> > experience.
> > That's a bit unfortunate, since regexps aren't a great place to
> > start!
> > I'd recommend getting something that's "close enough", and not
> > going
> > down the rabbit hole of perfect. Then start at the top of the
> > introduction to elisp...
> >
> > Good luck,
> > Eric
> >
> >
>
>
>
next prev parent reply other threads:[~2013-11-02 15:11 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-04 6:31 custom emacs org-emphasis-alist breaks EXPORT, help ;-) ? Xebar Saram
2013-10-04 7:21 ` Bastien
2013-10-04 7:50 ` Xebar Saram
2013-10-04 8:02 ` Bastien
2013-10-04 8:23 ` Xebar Saram
2013-10-04 8:27 ` Bastien
2013-10-04 9:15 ` Eric Abrahamsen
2013-10-04 19:12 ` Xebar Saram
2013-10-05 4:42 ` Eric Abrahamsen
2013-10-05 17:09 ` Xebar Saram
2013-10-06 5:04 ` Eric Abrahamsen
2013-11-02 7:48 ` Xebar Saram
2013-11-02 10:15 ` Eric Abrahamsen
2013-11-02 12:50 ` Xebar Saram
2013-11-02 15:12 ` Jambunathan K [this message]
2013-11-03 4:15 ` Eric Abrahamsen
2013-11-03 9:48 ` Xebar Saram
2013-11-03 0:16 ` Jambunathan K
2013-11-04 4:03 ` Eric Abrahamsen
2013-11-04 7:14 ` Xebar Saram
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
List information: https://www.orgmode.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=874n7uygzx.fsf@gmail.com \
--to=kjambunathan@gmail.com \
--cc=emacs-orgmode@gnu.org \
--cc=eric@ericabrahamsen.net \
--cc=zeltakc@gmail.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 public inbox
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).