BSD ed e GNU ed têm o z
comando para rolagem. No entanto, usar o comando repetidamente z
parece apenas rolar para frente. Existe algo semelhante a z
isso pode rolar para trás em vez de para frente?
BSD ed e GNU ed têm o z
comando para rolagem. No entanto, usar o comando repetidamente z
parece apenas rolar para frente. Existe algo semelhante a z
isso pode rolar para trás em vez de para frente?
Estou assumindo que "rolagem" na pergunta significa "mostrar as próximas linhas do buffer no terminal", que é o que o
z
comando não padrão está fazendo. Mover para alguma outra linha é feito endereçando uma linha por seu número de linha, por uma expressão regular ou por um endereço relativo (como-4
, para a 4ª linha anterior), mas não é disso que se trata essa pergunta, eu acho.Você não pode rolar para trás
z
diretamente da mesma maneira que você rola para frente (começando por, por exemplo.z
, e depois apenasz
, repetidamente, para mostrar as próximas linhas no buffer), mas você pode usar o endereçamento relativo para voltar duas vezes a rolagem tamanho da janela e, em seguida, role para frente a partir desse ponto.Supondo que você use uma janela de rolagem de 25 linhas e que queira rolar o documento do final para trás.
(etc., use
zn
no lugar dez
para obter linhas numeradas.)Isso começa mostrando a última linha com
$z25
(isso também define a janela de rolagem paraz
comandos subsequentes para 25 linhas). Cada-50z
um moveria 50 linhas de volta no buffer e mostraria as 25 linhas a partir daí.O problema é que você geralmente não sabe o tamanho padrão da janela de rolagem (por padrão, o número de linhas no terminal), então você precisaria fornecer um número explícito de linhas para rolar, como feito acima.
Entrar
-50z
para ver o próximo conjunto (anterior) de linhas também é um pouco complicado, mas pode não ser um problema se estiver usandoed
comrlwrap
, que permite usar Up-arrowpara recuperar o comando anterior.Outro problema é que, no início do buffer de edição, inserir um endereço relativo que o leve além do início do buffer causará um erro.
O
z
comando é um atalho para algo como.,+24p
, exceto que o24
é automaticamente substituído pelo número de linhas disponíveis na janela do terminal, menos 1 (a menos que um número explícito seja fornecido como emz25
). O-50z
comando mostrado acima poderia, portanto, ser reescrito como (algo como)o que significa "saltar 50 linhas de volta no buffer e imprimir a linha atual e as 24 linhas seguintes". (Use
n
no lugar dep
para obter linhas numeradas.)