Ricerca query e riga di commento?


9

Spero di capire come fare una ricerca di query che commenterà una riga invece di sostituire la query. Cioè, esegui una ricerca di query interattiva e, se dico di sì, commenta la riga su cui si trova la corrispondenza.

Questo comando esiste? In caso contrario, come lo scriverei? Sono nuovo di Elisp e non so programmare le mie funzioni.


8
Usa query-replace-regexp. Sostituisci la riga con la riga preceduta da un inizio di commento.
Estratto il

Risposte:


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))

La riga dei commenti non dovrebbe essere disponibile, qui da un recente nuovo commento.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))))

Grazie per questo, quello che hai qui è tornato "La definizione della funzione di Symbol è nulla: linea di commento"
Jaime Arturo Gomez,

@JaimeArturoGomez Sembra essere stato introdotto di recente. Fornito una copia.
Andreas Röhler,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.