Permintaan pencarian dan komentar di luar baris?

9

Saya berharap menemukan cara melakukan pencarian kueri yang akan mengomentari baris alih-alih menggantikan kueri. Yaitu, lakukan pencarian kueri interaktif, dan jika saya mengatakan ya, beri komentar pada baris yang cocok.

Apakah perintah ini ada? Jika tidak, bagaimana saya akan menulisnya? Saya baru mengenal elisp, dan tidak tahu cara memprogram fungsi saya sendiri.

Jaime Arturo Gomez
sumber
8
Gunakan query-replace-regexp. Ganti baris dengan baris yang diawali dengan awal komentar.
Drew

Jawaban:

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

Jika garis komentar tidak tersedia, di sini dari newcomment.el baru-baru ini:

(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
sumber
Terima kasih untuk ini, apa yang Anda miliki di sini telah kembali "Definisi fungsi Simbol tidak berlaku: komentar-line"
Jaime Arturo Gomez
@JaimeArturoGomez Sepertinya baru saja diperkenalkan. Disediakan salinan.
Andreas Röhler