52 votes

Recherche de texte marqué (sélectionné) dans Emacs

J'utilise emacs pour visualiser et éditer du code et d'autres fichiers texte. Je voulais savoir s'il existe un moyen de rechercher en avant ou en arrière le texte qui est marqué dans le tampon actuel. Similaire à ce que je peux faire dans le bloc-notes ou le clavier. Comme dans, puis-je marquer du texte dans le tampon et faire un C ou un Cr et pouvoir rechercher avec le texte marqué sans vraiment taper le texte de recherche entier?

Merci,

Rohit

111voto

Chris Conway Points 24671

@Alex le cloue.

Une autre option que j'utilise assez souvent est C-s C-w pour rechercher le mot après la marque actuelle. Frapper C-w augmente à plusieurs reprises la recherche avec des mots supplémentaires (par exemple, C-s C-w C-w C-w recherche les 3 mots après la marque actuelle).

De même, C-s C-y recherche le reste de la ligne après la marque actuelle et C-s C-M-y recherche le caractère après la marque. Ces deux éléments sont reproductibles de la même manière.

38voto

Alex Coventry Points 11090

Oui. M-W (pour obtenir une copie du texte sélectionné) C-s <RET> C-y <RET> . Répétez ensuite C-s au besoin. De même pour C-r .

17voto

Marc Haesen Points 71

J'utilise ce qui suit qui n'a pas le problème d'avoir à taper plus d'un C successif pour trouver des occurrences ultérieures:

     (defun search-selection (beg end)
      "search for selected text"
      (interactive "r")
      (kill-ring-save beg end)
      (isearch-mode t nil nil nil)
      (isearch-yank-pop)
    )
    (define-key global-map (kbd "<C-f3>") 'search-selection)
 

L'inconvénient du code précédent est que le texte sélectionné est copié dans l'étirement. Le code suivant n'a pas ce problème:

     (defun search-selection (beg end)
      "search for selected text"
      (interactive "r")
      (let (
            (selection (buffer-substring-no-properties beg end))
           )
        (deactivate-mark)
        (isearch-mode t nil nil nil)
        (isearch-yank-string selection)
      )
    )
    (define-key global-map (kbd "<C-f3>") 'search-selection)
 

5voto

link0ff Points 1565

La séquence de touches la plus courte est Mw Cs My.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X