Such- und Kommentarzeile abfragen?

9

Ich hoffe herauszufinden, wie man eine Abfragesuche durchführt, bei der eine Zeile auskommentiert wird, anstatt die Abfrage zu ersetzen. Führen Sie also eine interaktive Abfragesuche durch. Wenn ich Ja sage, kommentieren Sie die Zeile aus, in der sich die Übereinstimmung befindet.

Existiert dieser Befehl? Wenn nicht, wie würde ich es schreiben? Ich bin neu in elisp und weiß nicht, wie ich meine eigenen Funktionen programmieren soll.

Jaime Arturo Gomez
quelle
8
Verwenden Sie query-replace-regexp. Ersetzen Sie die Zeile durch die Zeile, der ein Kommentarstart vorangestellt ist.
Drew

Antworten:

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

Sollte eine Kommentarzeile nicht verfügbar sein, hier aus einem aktuellen 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))))
Andreas Röhler
quelle
Vielen Dank dafür, was Sie hier haben, hat zurückgegeben "Symbol Funktionsdefinition ist ungültig: Kommentarzeile"
Jaime Arturo Gomez
@JaimeArturoGomez Scheint vor kurzem eingeführt zu werden. Kopie zur Verfügung gestellt.
Andreas Röhler