Rolagem em arquivos muito longos (1M + linhas) no Emacs

5

Eu queria saber se além dos comandos básicos de navegação:

C-p : Jump backwards one line.
C-n : Jump forward one line.
C-v : Jump forward one full screen.
M-v : Jump backwards one full screen.
M-a : Go to the previous paragraph beginnings.
M-e : Go to the next paragraph end.
M-g g: Jump to a specific line

O emacs fornece todos os comandos para rolar milhares ou milhões de linhas facilmente.

Mais especificamente, estou procurando exemplo para um comando que eu poderia usar para avançar (ou para trás) 1% do arquivo (talvez um comando que possa ser combinado com C-u e possa ser usado para rolar % arbitrário do arquivo?)

    
por Amelio Vazquez-Reina 18.01.2012 / 22:56

3 respostas

7

Os comandos beginning-of-buffer ( C-home ou M-< ) e end-of-buffer ( C-end ou M-> ) aceitam um argumento numérico. Se o argumento é N , então o comando leva você N / 10 do caminho. (Com alguns arredondamentos: esses comandos levam você ao início de uma linha.) Por exemplo, M-1 M-> vai para a posição de 90% no buffer, ou seja, na linha 900000 em um buffer de milhões de linhas.

Para um controle mais preciso, você pode rolar até o final, anotar o número da linha e usar M-g g ( goto-line ) para alcançar um determinado número de linha, por exemplo, ESC 9 0 0 0 ESC g g para ir para a linha 9000.

    
por 19.01.2012 / 00:13
2

Algumas ideias:

Uma maneira rápida de navegar é usar a pesquisa incremental ( C-s ) e suas variantes.

Gostaria de saber se occur pode ser útil para navegar entre correspondências em arquivos tão grandes. Ele mostra uma janela separada com todas as ocorrências de um correspondente ao regexp, que você pode navegar com M-g n e M-g p .

Para pular para a porcentagem do buffer, o link tem uma função para isso:

(defun goto-percent (percent)
  "Goto PERCENT of buffer."
  (interactive "nGoto percent: ")
  (goto-char (/ (* percent (point-max)) 100)))

forward-paragraph e backward-paragraph também podem ser úteis para navegação rápida, dependendo da estrutura do arquivo (vinculada a M-} e M-{ ).

    
por 19.01.2012 / 00:12
2
C-u PERCENT M-x View-goto-percent

move o cursor PERCENT do caminho do buffer.

    
por 17.06.2013 / 19:37