クエリ検索とコメントアウト行?


9

クエリ置換の代わりに行をコメント化するクエリ検索を実行する方法を見つけたいと思っています。つまり、インタラクティブなクエリ検索を実行し、もし私が「はい」と答えた場合は、一致している行をコメント化します。

このコマンドは存在しますか?そうでない場合、どのように書けばよいですか?私はelispを使い始めたばかりで、自分の関数をプログラムする方法がわかりません。


8
を使用しquery-replace-regexpます。この行を、コメント開始のプレフィックスが付いた行に置き換えます。
ドリュー

回答:


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

コメント行が利用できない場合、ここに最近の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))))

このおかげで、ここにあるものは「シンボルの関数定義は無効です:コメント行」を返しました
Jaime Arturo Gomez

@JaimeArturoGomez最近紹介されているようです。コピーを提供しました。
AndreasRöhler16年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.