Como faço para coincidir o início de uma linha em uma página man?

2

Quando faço man zshbuiltins , normalmente quero procurar um comando.

Suponha que eu esteja procurando informações sobre o comando alias . Eu recebo um pedaço de texto como:

   : [ arg ... ]
          This  command  does nothing, although normal argument expansions
          is performed which may have effects on shell parameters.  A zero
          exit status is returned.

   alias [ {+|-}gmrsL ] [ name[=value] ... ]
          For  each  name with a corresponding value, define an alias with
          that value.  A trailing space in value causes the next  word  to
          be  checked  for  alias  expansion.   If the -g flag is present,
          define a global alias; global aliases are expanded even if  they
          do not occur in command position.

e eu quero ser capaz de pular direto para a seção alias desta horrível página manométrica monolítica.

Estou tentando pesquisar especificamente o caso em que é a primeira palavra na linha. No entanto, todas as expressões a seguir dizem "Padrão não encontrado":

^alias
^\W*alias
^\s*alias
^[\W\s]*alias

Como posso corresponder alias se e somente se for a primeira palavra na linha? Ou há uma maneira melhor de pular direto para um comando? Eu acho que meu pager padrão é menor (como posso verificar isso?). Também estou usando o Zsh caso isso não seja óbvio.

    
por shadowtalker 08.07.2015 / 14:33

1 resposta

3

Uma opção é pesquisar com espaços prefixados, como: / alias , em que há dois espaços antes da palavra "alias" para evitar correspondências falso-positivas em que "alias" aparece como parte de outra sentença. Você também pode vincular a partida ao início da linha se souber exatamente quantos espaços existem: /^ alias , por exemplo.

No entanto, suas expressões falharam porque Menos pesquisa não usa classes de caracteres abreviadas. ^[^[:alpha]]*alias deve funcionar (mas dois espaços são mais fáceis).

    
por 08.07.2015 / 14:44