Recherchez une ligne de recherche et de commentaire?


9

J'espère découvrir comment faire une recherche de requête qui commentera une ligne au lieu de remplacer la requête. C'est-à-dire, faites une recherche de requête interactive, et si je dis oui, commentez la ligne sur laquelle la correspondance se trouve.

Cette commande existe-t-elle? Sinon, comment pourrais-je l'écrire? Je suis nouveau chez elisp et je ne sais pas comment programmer mes propres fonctions.


8
Utilisez query-replace-regexp. Remplacez la ligne par la ligne préfixée par un début de commentaire.
Drew

Réponses:


1
(defun my-comment-matching-line ()
  (interactive "*")
  (call-interactively 'search-forward)
  (beginning-of-line)
  ;; don't comment the region maybe
  (push-mark)
  (comment-line 1))

Si la ligne de commentaires n'est pas disponible, ici à partir d'un récent newcomment.el:

(defun comment-line (n)
  "Comment or uncomment current line and leave point after it.
With positive prefix, apply to N lines including current one.
With negative prefix, apply to -N lines above.  Also, further
consecutive invocations of this command will inherit the negative
argument.

If region is active, comment lines in active region instead.
Unlike `comment-dwim', this always comments whole lines."
  (interactive "p")
  (if (use-region-p)
      (comment-or-uncomment-region
       (save-excursion
         (goto-char (region-beginning))
         (line-beginning-position))
       (save-excursion
         (goto-char (region-end))
         (line-end-position)))
    (when (and (eq last-command 'comment-line-backward)
               (natnump n))
      (setq n (- n)))
    (let ((range
           (list (line-beginning-position)
                 (goto-char (line-end-position n)))))
      (comment-or-uncomment-region
       (apply #'min range)
       (apply #'max range)))
    (forward-line 1)
    (back-to-indentation)
    (unless (natnump n) (setq this-command 'comment-line-backward))))

Merci pour cela, ce que vous avez ici a renvoyé "La définition de la fonction du symbole est nulle: ligne de commentaire"
Jaime Arturo Gomez

@JaimeArturoGomez Semble avoir été introduit récemment. Fourni une copie.
Andreas Röhler
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.