Dümen: arabellek özelliği içinde arama?


11

Oldukça basit bir Helm sorusu. Helm penceresi / komutu / özelliği, regexpherhangi bir arabellek içinde metin aramamızı (tercihen kullanarak ) (yani salt okunur dahil) aramamızı sağlayan w3mnedir?

Başka bir deyişle, Helm'in Emacs'ın isearch-forward( C-s) / isearch-backward( C-r) yerel komutlarına eşdeğerliğini arıyorum .

Örneklemek gerekirse: yerel isearchkomutlardan birini ( C-sveya C-r) çağırdıktan sonra , arama modundan iki yoldan biriyle çıkabiliriz:

  1. çıkıp orijinal noktaya (üzerinden C-g) dönebiliriz veya

  2. arabellekten geçerli noktadan (şu anda eşleştirilen metinden ( RETdiğerleri arasında)) çıkıp tarama yapmaya devam edebiliriz .

Bu iki seçenekten ikincisini arıyorum.


İşte şimdiye kadar denedim:

  • helm-regexp: Bu aradığım şeye en yakın şey ama sadece C-s/ C-r+ eşdeğerini gerçekleştiriyor C-g(yani, bizi orijinal noktaya geri götürüyor; aramayı sonlandırma ve şu anda eşleştirilen arabellek taramaya devam etme seçeneği yok nokta).

  • helm-do-grep: Bu sadece dosyalarda metin aramak için görünüyor (yani, w3m'de çalışmıyor)

  • helm-buffer-run-grep/ -zgrep: Bu komutu / işlevi çalıştırmak mini arabellekte bir hata iletisiyle sonuçlanır:Running helm command outside of context

  • zaman helm-modeçağırarak, etkinleştirildiğinde C-sveya C-rEmacs' yerli getirir isearchözelliği (o Miğfer arayüzüne yerini değildir). (belki Helm'in bu komutu devralabilmesi için değiştirebileceğimiz bir ayar var mı? yani, Helm'in write-file( C-x C-w) için açık bir arabellekteki bir dosyayı yeniden adlandırmak için kullanılabilecek yerel komutu nasıl ele geçirdiğine benzer .


1
Etkin helm-occurile istediğiniz follow-mode.
nispio

Yanıtlar:


16

Dümen oluşumunu bunun için temel dümen modülü ile birlikte gelen bir araç olarak kullanabilirsiniz. Ama bana göre, tampon arama için dümen tabanlı en iyi araçlardan biri Shingo Fukuyama'nın dümen saldırısı . Github'dan ve MELPA ile alabilirsiniz. Puanınızı maçın pozisyonuna bırakabilmeniz için gerekli işlevselliğe sahiptir (bu bir normal ifade olabilir). Ancak, imleci başladığınız yere geri getirmek için Cg'yi de kullanabilirsiniz.

Dümen-swoop github sayfasında, bu paketin sunduğu diğer birçok yararlı işlevi bulacaksınız (dümen-çoklu-swoop ile çoklu arabellek aramaları ve sonuçların satırlarını düzenleme yeteneği dahil olmak üzere, değişiklikler altta yatan tampona uygulanır).


Katılıyorum. helm-swoopgerçekten geliştirilmiş bir sürümüdür helm-occur.
Tu Do

Bu yüzden bu cepheye biraz geç geliyorum. Denedim helm-swoop... ve asla geri dönmüyorum! Thanks
iceman

Tanrım, dümen-swoop bu dünyadan olmayan bir şey.
Leo Ufimtsev

5

helm-occurArama düzeninizle eşleşen tüm satırları görmek için kullanabilirsiniz . Sen kullanabilirsiniz C-nve C-pdaha sonra basın listesini gezinmek için ve RETHelm tamponunu kapatın ve eşleştirme hattına imleci atlamak için.

Kaynak pencerenin her zaman seçili olan eşleşmenin içeriğini göstermesi için helm-follow-modekullandığımda etkinleştirmeyi seviyorum helm-occur. Takip modunu aşağıdaki gibi otomatik olarak etkinleştirebilirsiniz:

(require 'helm-config)

(defvar my-helm-follow-sources ()
  "List of sources for which helm-follow-mode should be enabled")

;; Use helm-follow-mode for the following sources:
(add-to-list 'my-helm-follow-sources 'helm-source-occur)

(defun my-helm-set-follow ()
  "Enable helm-follow-mode for the sources specified in the list
variable `my-helm-follow-sources'. This function is meant to
be run during `helm-initialize' and should be added to the hook
`helm-before-initialize-hook'."
  (mapc (lambda (source)
          (when (memq source my-helm-follow-sources)
            (helm-attrset 'follow 1 (symbol-value source))))
        helm-sources))

;; Add hook to enable helm-follow mode for specified helm 
(add-hook 'helm-before-initialize-hook 'my-helm-set-follow)
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.