From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Abrahamsen Subject: Re: custom emacs org-emphasis-alist breaks EXPORT, help ;-) ? Date: Sat, 02 Nov 2013 18:15:05 +0800 Message-ID: <8761sbkt3q.fsf@ericabrahamsen.net> References: <87r4c1mrh1.fsf@bzg.ath.cx> <87d2nlzcoo.fsf@bzg.ath.cx> <878uy99z28.fsf@ericabrahamsen.net> <87r4c08h21.fsf@ericabrahamsen.net> <87wqlr6ld5.fsf@ericabrahamsen.net> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:57267) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VcYDZ-0005mO-6a for emacs-orgmode@gnu.org; Sat, 02 Nov 2013 06:14:15 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VcYDP-0000Bo-4P for emacs-orgmode@gnu.org; Sat, 02 Nov 2013 06:14:09 -0400 Received: from plane.gmane.org ([80.91.229.3]:49235) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VcYDO-0000BL-QY for emacs-orgmode@gnu.org; Sat, 02 Nov 2013 06:13:59 -0400 Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1VcYDM-0002VX-Cz for emacs-orgmode@gnu.org; Sat, 02 Nov 2013 11:13:56 +0100 Received: from 114.248.26.151 ([114.248.26.151]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sat, 02 Nov 2013 11:13:56 +0100 Received: from eric by 114.248.26.151 with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sat, 02 Nov 2013 11:13:56 +0100 List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode@gnu.org Xebar Saram 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 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 > >