Pode ocorrer centralizar o texto encontrado no buffer?

7

Ao selecionar um item do buffer de ocorrência, a linha destacada fica na parte inferior da tela visível. Isso é menos útil do que ter entre 25 e 50% da tela (portanto, é fácil ler o texto ao redor da linha encontrada). Isso é possível?

Aaron Lee
fonte

Respostas:

9

Não vejo o comportamento que você descreve. Para mim, quando eu escolho uma ocorrência no buffer, *Occur*ele visita a ocorrência no buffer de origem, colocando esse tapa no meio da janela do buffer de origem (verticalmente).

Mas se você vir o que descreve, basta colocar um código de janela recente occur-mode-find-occurrence-hook.

Algo assim. Você pode usar qualquer condição de comparação que desejar. Aqui, usei "dentro de 10 linhas da parte superior ou inferior", mas você pode usar porcentagens etc.

(defun foo ()
  (let ((line   (line-number-at-pos)))
    (cond ((<= line (+ (line-number-at-pos (window-start)) 10))
           (recenter 10))
          ((>= line (- (line-number-at-pos (window-end)) 10))
           (recenter -10)))))

(add-hook 'occur-mode-find-occurrence-hook 'foo)
Desenhou
fonte
11
Sim, isso vai fazer. Eu entendo o comportamento do OP, FWIW.
Dan
Estranho que eu não, então. emacs -Qno MS Windows 7. Quaisquer hits que clico (ou uso RET) no buffer de ocorrência são mostrados centralizados verticalmente no buffer de origem.
Drew
Você está certo emacs -Q(no Linux) fornece o comportamento que você descreve. Algo deve estar enterrado em algum lugar é a configuração.
Dan