現在の行だけを検索する方法


8

私はたぶんExcelで表示するだけの大規模で非常に広いデータファイルを操作しています...しかし、Emacsに留まりたいと思います。現在の行だけを検索(およびフォント化)するためのelisp関数はありますか?


3
行を選択し、その地域に絞り込んで、通常のインクリメンタル検索を実行できます。
Kaushal Modi、2015

@kaushalmodi:回答として投稿してください(良い質問)。回答が受け入れられると、質問は未回答の回答者には表示されなくなります。;-)
ドリュー

OP:「(およびフォント化)」とはどういう意味ですか?
2015年

@Drew:isearchは一致を強調表示します。これは素晴らしいですが、本当に遅いです。
wdkrnls 2015年

1
Isearchに一度に強調表示する一致の数を指定できることに注意してください:オプションlazy-highlight-max-at-a-time。他のlazy-highlight-*オプションも参照してください。しかし、この強調表示は行全体を一度に処理する可能性があります。知らない。機能し、これらのオプションが役に立たない場合は、機能拡張リクエストを提出することを検討してくださいM-x report-emacs-bug
2015年

回答:


8

Isearchは非常に柔軟であり、バッファを常に狭めることに飽き飽きしている場合(提案されたように)、これに専用のコマンドを使用することができます。

(defun isearch-line-forward (&optional regexp-p)
  (interactive "P")
  (let* ((beg (line-beginning-position))
         (end (line-end-position))
         (isearch-message-prefix-add "[Line]")
         (isearch-search-fun-function
          `(lambda ()
             (lambda (string &optional bound noerror)
               (save-restriction
                 (narrow-to-region ,beg ,end)
                 (funcall (isearch-search-fun-default)
                          string bound noerror))))))
    (isearch-forward regexp-p)))

10
  • 現在の行を選択(C-a C-SPC C-e
  • 狭い地域(C-x n n
  • 任意の方法で検索を実行する
  • 拡大して元のバッファに戻ります(C-x n w
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.