* Abbrevs and Comments @ 2003-01-13 12:09 Roberto Huelga 2003-01-26 17:44 ` Roberto Huelga 0 siblings, 1 reply; 4+ messages in thread From: Roberto Huelga @ 2003-01-13 12:09 UTC (permalink / raw) Hello, and happy new year to every body (my first mail of the year). I recently modify my .emacs file to make use of abbrev and skeletons in c-mode and c++-mode. I make that "if" expands to "if() { }" and all is prefect. But When I'm writing a comment or a literal the abbrev expands too. Is there a automatic way to don't expand in these situations?. Thanks. ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Abbrevs and Comments 2003-01-13 12:09 Abbrevs and Comments Roberto Huelga @ 2003-01-26 17:44 ` Roberto Huelga 2003-02-03 11:16 ` gebser 0 siblings, 1 reply; 4+ messages in thread From: Roberto Huelga @ 2003-01-26 17:44 UTC (permalink / raw) El lunes, 13 ener, 2003, a las 13:09 Europe/Madrid, Roberto Huelga escribió: > Hello, and happy new year to every body (my first mail of the year). > > I recently modify my .emacs file to make use of abbrev and skeletons > in c-mode and c++-mode. I make that "if" expands to "if() { }" and all > is prefect. But When I'm writing a comment or a literal the abbrev > expands too. Is there a automatic way to don't expand in these > situations?. > I finally develop a automatic way, may be not optimal but work great in my computer. I look the face in the current point and I modify the local-abbrev-table in consequence. Insert this in .emacs to try it (add-hook 'pre-abbrev-expand-hook 'abbrev-literal-test) (defun abbrev-literal-test() (let* ((face (get-text-property (point) 'face ))) (if (or (equal face 'font-lock-comment-face) (equal face 'font-lock-string-face) (equal face 'font-lock-warning-face)) (setq local-abbrev-table nil) (setq local-abbrev-table (eval (car (read-from-string (format "%s-abbrev-table" major-mode))))) ))) If someone optimise this or found a better way, please tell me. ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Abbrevs and Comments 2003-01-26 17:44 ` Roberto Huelga @ 2003-02-03 11:16 ` gebser 0 siblings, 0 replies; 4+ messages in thread From: gebser @ 2003-02-03 11:16 UTC (permalink / raw) Cc: help-gnu-emacs Abbrevs can correspond only to specific modes. This functionality is already built into emacs. For example, if you're in cc-mode (what you get when you open hello.c), put the cursor on the word "if", do "C-x ail", you'll be prompted for an "expansion" for the word "if". Type in "if() { }" (and run "M-x write-abbrev-file" if you want to save it for future sessions), thereafter whenever you type "if" AND are in cc-mode, emacs will expand it to "if() { }". However, this will also occur in cc-mode when you're composing a comment-- probably not what you'd want. Get around this by making up some other word to replace "if", such as "iiff" or "si", and have that expand to "if() { }". hth, kf Roberto Huelga at 18:44 (UTC+0100) on Sun, 26 Jan 2003 said: = = El lunes, 13 ener, 2003, a las 13:09 Europe/Madrid, Roberto Huelga = escribió: = = > Hello, and happy new year to every body (my first mail of the year). = > = > I recently modify my .emacs file to make use of abbrev and skeletons = > in c-mode and c++-mode. I make that "if" expands to "if() { }" and all = > is prefect. But When I'm writing a comment or a literal the abbrev = > expands too. Is there a automatic way to don't expand in these = > situations?. = > = I finally develop a automatic way, may be not optimal but work great = in my computer. I look the face in the current point and I modify the = local-abbrev-table in consequence. Insert this in .emacs to try it = = (add-hook 'pre-abbrev-expand-hook 'abbrev-literal-test) = (defun abbrev-literal-test() = (let* ((face (get-text-property (point) 'face ))) = (if (or (equal face 'font-lock-comment-face) = (equal face 'font-lock-string-face) = (equal face 'font-lock-warning-face)) = (setq local-abbrev-table nil) = (setq local-abbrev-table (eval = (car = (read-from-string = (format "%s-abbrev-table" major-mode))))) = ))) = = If someone optimise this or found a better way, please tell me. = = = = _______________________________________________ = Help-gnu-emacs mailing list = Help-gnu-emacs@gnu.org = http://mail.gnu.org/mailman/listinfo/help-gnu-emacs = -- Happy Gui-Wei 4700 ^ permalink raw reply [flat|nested] 4+ messages in thread
[parent not found: <mailman.211.1042460105.21513.help-gnu-emacs@gnu.org>]
* Re: Abbrevs and Comments [not found] <mailman.211.1042460105.21513.help-gnu-emacs@gnu.org> @ 2003-01-13 12:32 ` Romain FRANCOISE 0 siblings, 0 replies; 4+ messages in thread From: Romain FRANCOISE @ 2003-01-13 12:32 UTC (permalink / raw) Roberto Huelga <rhuelga@multinterior.com> writes: > But When I'm writing a comment or > a literal the abbrev expands > too. Is there a automatic way to > don't expand in these situations?. I don't know an automated way to do this, but typing C-q before the space or the punctuation just after the word prevents it from being expanded, e.g. the sequence i f C-q SPC will give "if " and not the expanded version. -- Romain FRANCOISE <romain@orebokech.com> | I live my life alone, alone, it's a miracle -- http://orebokech.com/ | I think I like it this way. ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2003-02-03 11:16 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2003-01-13 12:09 Abbrevs and Comments Roberto Huelga 2003-01-26 17:44 ` Roberto Huelga 2003-02-03 11:16 ` gebser [not found] <mailman.211.1042460105.21513.help-gnu-emacs@gnu.org> 2003-01-13 12:32 ` Romain FRANCOISE
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.