all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* isearch and yank word doubt
@ 2013-05-30  6:42 Luca Ferrari
  2013-05-31  4:57 ` Kevin Rodgers
       [not found] ` <mailman.745.1369976220.22516.help-gnu-emacs@gnu.org>
  0 siblings, 2 replies; 5+ messages in thread
From: Luca Ferrari @ 2013-05-30  6:42 UTC (permalink / raw)
  To: help-gnu-emacs

Hi all,
according to the manual the C-s C-w yanks the next word the cursor is
on as the string to search with isearch. Often I found myself having
the cursor in the middle of a word, so I have to go back to the
beginning and then do the yank, is there a better way to instrument
C-s C-w to get the word the cursor is in?

Thanks,
Luca



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: isearch and yank word doubt
  2013-05-30  6:42 isearch and yank word doubt Luca Ferrari
@ 2013-05-31  4:57 ` Kevin Rodgers
       [not found] ` <mailman.745.1369976220.22516.help-gnu-emacs@gnu.org>
  1 sibling, 0 replies; 5+ messages in thread
From: Kevin Rodgers @ 2013-05-31  4:57 UTC (permalink / raw)
  To: help-gnu-emacs

On 5/30/13 12:42 AM, Luca Ferrari wrote:
> Hi all,
> according to the manual the C-s C-w yanks the next word the cursor is
> on as the string to search with isearch. Often I found myself having
> the cursor in the middle of a word, so I have to go back to the
> beginning and then do the yank, is there a better way to instrument
> C-s C-w to get the word the cursor is in?

I like it!

(defun isearch-yank-word-at-point ()
   "Pull the word around point from buffer into search string."
   (interactive)
   ;; see isearch-yank-word-or-char and isearch-yank-internal:
   (isearch-yank-string
    (save-excursion
      (when (and (not isearch-forward) isearch-other-end)
        (goto-char isearch-other-end))
      (when (= (char-syntax (or (char-after (1- (point))) 0)) ?w)
        (forward-word -1))
      (buffer-substring-no-properties (point)
				     (progn (forward-word 1) (point))))))

(define-key isearch-mode-map "\C-w" 'isearch-yank-word-at-point)

-- 
Kevin Rodgers
Denver, Colorado, USA




^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: isearch and yank word doubt
       [not found] ` <mailman.745.1369976220.22516.help-gnu-emacs@gnu.org>
@ 2013-05-31  7:32   ` Sebastien Vauban
  2013-05-31  8:30     ` Kevin Rodgers
       [not found]     ` <mailman.751.1369988981.22516.help-gnu-emacs@gnu.org>
  0 siblings, 2 replies; 5+ messages in thread
From: Sebastien Vauban @ 2013-05-31  7:32 UTC (permalink / raw)
  To: help-gnu-emacs-mXXj517/zsQ

Hi Kevin,

Kevin Rodgers wrote:
> On 5/30/13 12:42 AM, Luca Ferrari wrote:
>> Hi all,
>> according to the manual the C-s C-w yanks the next word the cursor is
>> on as the string to search with isearch. Often I found myself having
>> the cursor in the middle of a word, so I have to go back to the
>> beginning and then do the yank, is there a better way to instrument
>> C-s C-w to get the word the cursor is in?
>
> I like it!
>
> (defun isearch-yank-word-at-point ()
>   "Pull the word around point from buffer into search string."
>   (interactive)
>   ;; see isearch-yank-word-or-char and isearch-yank-internal:
>   (isearch-yank-string
>    (save-excursion
>      (when (and (not isearch-forward) isearch-other-end)
>        (goto-char isearch-other-end))
>      (when (= (char-syntax (or (char-after (1- (point))) 0)) ?w)
>        (forward-word -1))
>      (buffer-substring-no-properties (point)
> 				     (progn (forward-word 1) (point))))))
>
> (define-key isearch-mode-map "\C-w" 'isearch-yank-word-at-point)

One detail I don't like in the above: when C-s C-w'ing, it directly jumps to
the next occurrence of the searched string. I find it'd be better if it'd stay
on the current word, highlighting it completely.

Best regards,
  Seb

-- 
Sebastien Vauban


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: isearch and yank word doubt
  2013-05-31  7:32   ` Sebastien Vauban
@ 2013-05-31  8:30     ` Kevin Rodgers
       [not found]     ` <mailman.751.1369988981.22516.help-gnu-emacs@gnu.org>
  1 sibling, 0 replies; 5+ messages in thread
From: Kevin Rodgers @ 2013-05-31  8:30 UTC (permalink / raw)
  To: help-gnu-emacs

On 5/31/13 1:32 AM, Sebastien Vauban wrote:
> Kevin Rodgers wrote:
>> On 5/30/13 12:42 AM, Luca Ferrari wrote:
>>> Hi all,
>>> according to the manual the C-s C-w yanks the next word the cursor is
>>> on as the string to search with isearch. Often I found myself having
>>> the cursor in the middle of a word, so I have to go back to the
>>> beginning and then do the yank, is there a better way to instrument
>>> C-s C-w to get the word the cursor is in?
>>
>> I like it!
...
> One detail I don't like in the above: when C-s C-w'ing, it directly jumps to
> the next occurrence of the searched string. I find it'd be better if it'd stay
> on the current word, highlighting it completely.

That may be very difficult to implement, and it doesn't make sense to
me: isearch by definition searches the buffer from point to the end, so
if the search string includes text preceding point it cannot match the
occurrence that straddles point.

Of course, the occurrence that straddles point is eventually matched if
the search is wrapped past the end of the buffer.  And even before
wrapping, the occurrence is highlighted with the lazy-highlight face --
although it may no longer be visible, depending on how far away is the
next occurrence.

That highlighting does seem intuitive, so I'll try to come up with a clean
implementation of the behavior you want (that does not actually move point
out of the middle of the word)...

-- 
Kevin Rodgers
Denver, Colorado, USA




^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: isearch and yank word doubt
       [not found]     ` <mailman.751.1369988981.22516.help-gnu-emacs@gnu.org>
@ 2013-05-31 10:38       ` Sebastien Vauban
  0 siblings, 0 replies; 5+ messages in thread
From: Sebastien Vauban @ 2013-05-31 10:38 UTC (permalink / raw)
  To: help-gnu-emacs-mXXj517/zsQ

Kevin Rodgers wrote:
> On 5/31/13 1:32 AM, Sebastien Vauban wrote:
>> Kevin Rodgers wrote:
>>> On 5/30/13 12:42 AM, Luca Ferrari wrote:
>>>> Hi all,
>>>> according to the manual the C-s C-w yanks the next word the cursor is
>>>> on as the string to search with isearch. Often I found myself having
>>>> the cursor in the middle of a word, so I have to go back to the
>>>> beginning and then do the yank, is there a better way to instrument
>>>> C-s C-w to get the word the cursor is in?
>>>
>>> I like it!
>>
>> One detail I don't like in the above: when C-s C-w'ing, it directly jumps to
>> the next occurrence of the searched string. I find it'd be better if it'd stay
>> on the current word, highlighting it completely.
>
> That may be very difficult to implement, and it doesn't make sense to
> me: isearch by definition searches the buffer from point to the end, so
> if the search string includes text preceding point it cannot match the
> occurrence that straddles point.
>
> Of course, the occurrence that straddles point is eventually matched if
> the search is wrapped past the end of the buffer.  And even before
> wrapping, the occurrence is highlighted with the lazy-highlight face --
> although it may no longer be visible, depending on how far away is the
> next occurrence.

That's it: in many cases, you don't see anymore the original word you were on.
And you don't know if you needed to press another time on C-w, if word stopped
at `-' and you want to add the rest, for example.

> That highlighting does seem intuitive, so I'll try to come up with a clean
> implementation of the behavior you want (that does not actually move point
> out of the middle of the word)...

So, IIUC, you would not move point (OK, I see no reason why it absolutely
should), and stay on the "reference" search string, that's it?

Thanks anyway...

Best regards,
  Seb

-- 
Sebastien Vauban


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2013-05-31 10:38 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-05-30  6:42 isearch and yank word doubt Luca Ferrari
2013-05-31  4:57 ` Kevin Rodgers
     [not found] ` <mailman.745.1369976220.22516.help-gnu-emacs@gnu.org>
2013-05-31  7:32   ` Sebastien Vauban
2013-05-31  8:30     ` Kevin Rodgers
     [not found]     ` <mailman.751.1369988981.22516.help-gnu-emacs@gnu.org>
2013-05-31 10:38       ` Sebastien Vauban

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.