* 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
[parent not found: <mailman.745.1369976220.22516.help-gnu-emacs@gnu.org>]
* 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
[parent not found: <mailman.751.1369988981.22516.help-gnu-emacs@gnu.org>]
* 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
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).