[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Making forward-word work with curly apostrophes
From: |
A.Politz |
Subject: |
Re: Making forward-word work with curly apostrophes |
Date: |
Sun, 2 Aug 2009 15:46:16 -0700 (PDT) |
User-agent: |
G2/1.0 |
On Aug 2, 10:19 pm, Ian Eure <i...@digg.com> wrote:
> If I have a text-mode buffer with the following two words:
>
> 1. I've
> 2. I’ve
>
> forward-word skips over "I've," but treats "I’ve" as _three_ words. I
> seem to recall that forward-char skips over characters with word
> syntax until it finds one with non-word-syntax, but that doesn't seem
> to be the case here. I set ’ to have the same syntax as ' with:
>
> (modify-syntax-entry ?’ "w p")
>
> But forward-word still treats it as three words. All works well if I do:
>
> (skip-syntax-forward "w")
>
> What is forward-word doing, and how can I make it treat ’ as part of
> my word?
>
> - Ian
Apart from syntax-class, 2 chars form a word boundary, if they do
not share a common character category. You need to do something
like this:
(let ((latin ?l)
(other
(aref (category-set-mnemonics
(char-category-set ?’)) 0)))
(add-to-list 'word-combining-categories
(cons latin other))
(add-to-list 'word-combining-categories
(cons other latin)))
For the whole story read
(describe-variable 'word-combining-categories)
and maybe
(info "(elisp)Categories")
.
-ap