all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Nikolaj Schumacher <me@nschum.de>
To: Xah <xahlee@gmail.com>
Cc: help-gnu-emacs@gnu.org
Subject: Re: How do I highlight word at point?
Date: Sun, 19 Oct 2008 19:00:58 +0200	[thread overview]
Message-ID: <m2myh0a59x.fsf@nschum.de> (raw)
In-Reply-To: <8403dd42-f1a6-41fa-91d0-fa8b2a873932@u40g2000pru.googlegroups.com> (Xah's message of "Sat\, 18 Oct 2008 22\:44\:14 -0700 \(PDT\)")

Xah <xahlee@gmail.com> wrote:

> (defun select-word ()
> "Select a word under cursor.
> “word” here is considered any alphenumeric sequence with “_” or “-”."
>  (interactive)
>  (let (b1 b2)
>    (skip-chars-backward "-_A-Za-z0-9")
>    (setq b1 (point))
>    (skip-chars-forward "-_A-Za-z0-9")
>    (setq b2 (point))
>    (set-mark b1)
>    )
>  )

Why not use syntactic tables to determine what a word is?  That way it
would work for non-English languages and use less code.

(defun mark-current-word ()
  "Place the region around the word at point."
  (interactive)
  (forward-word 1)
  (mark-word -1))


I think I'll also use this (replacing M-@).  But it should still be able
to grow the region... Let's see:

(defun mark-current-word (arg &optional incremental)
  "Place the region around the word at point.
ARG determines how many following words to include.  When INCREMENTAL is
non-nil, extend the existing region."
  (interactive (list (prefix-numeric-value current-prefix-arg)
                     (or (and transient-mark-mode mark-active)
                         (eq last-command this-command))))
  (and incremental
       (> (* (signum arg) (- (mark) (point))) 0)
       (exchange-point-and-mark))
  (forward-word arg)
  (unless incremental
    (mark-word (- arg))))

(global-set-key "\M-@" 'mark-current-word)

(improvements welcome)


regards,
Nikolaj Schumacher




  reply	other threads:[~2008-10-19 17:00 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-10-19  2:16 How do I highlight word at point? Wei Weng
2008-10-19  3:02 ` Giorgos Keramidas
2008-10-19 12:09   ` Francis Moreau
2008-10-19 16:19     ` Nikolaj Schumacher
     [not found]   ` <mailman.1504.1224419414.25473.help-gnu-emacs@gnu.org>
2008-10-19 13:24     ` Thorsten Bonow
2008-10-19 15:54       ` Francis Moreau
2008-10-19 15:14     ` Giorgos Keramidas
2008-10-19 15:52       ` Francis Moreau
2008-10-29 22:13   ` Francis Moreau
2008-10-29 22:44     ` Andreas Politz
2008-10-30 20:22       ` Francis Moreau
2008-10-30 13:57     ` Scott Frazer
2008-10-19  5:44 ` Xah
2008-10-19 17:00   ` Nikolaj Schumacher [this message]
     [not found]   ` <mailman.1521.1224435664.25473.help-gnu-emacs@gnu.org>
2008-10-19 20:10     ` Xah
2008-10-19 22:16       ` Drew Adams
2008-10-19 23:58       ` Nikolaj Schumacher
     [not found]       ` <mailman.1544.1224460736.25473.help-gnu-emacs@gnu.org>
2008-10-20  3:46         ` Xah
2008-10-20 12:31           ` Nikolaj Schumacher
     [not found]           ` <mailman.1579.1224505887.25473.help-gnu-emacs@gnu.org>
2008-10-20 18:43             ` Xah
2008-10-21  8:57               ` Nikolaj Schumacher
2008-10-19 23:35 ` Drew Adams
2008-10-19 23:39   ` Drew Adams
2008-10-21  3:43 ` htbest2000

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=m2myh0a59x.fsf@nschum.de \
    --to=me@nschum.de \
    --cc=help-gnu-emacs@gnu.org \
    --cc=xahlee@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 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.