Uma expressão vim mais curta para garantir que nenhum caractere preceda ou siga
/\(^\|\s\)\@<=-c\>
O homem / menos equivalente:
/(^|\s)-c\b
Explicação adicional (Vim):
Provavelmente, a parte mais útil da expressão regular do Vim é -c\>
, que simplesmente diz "Procure por '-c', mas somente se nenhuma letra aparecer logo após". Na maior parte do tempo, você pode provavelmente apenas procurar com /-c\>
, mas por questão de integridade, incluí uma expressão para verificar o que vem antes do '-c'. Essa expressão é \(^\|\s\)\@<=
, o que parece complicado apenas porque a sintaxe da expressão regular do Vim é um pouco mais detalhada (no sentido de que você evite parênteses de agrupamento e o 'ou' canal). A expressão \(^\|\s\)
significa "O início de uma linha ou um caractere de espaço em branco". Quando você coloca \@<=
depois, significa "Não corresponde exatamente a isso, apenas certifique-se de que ele vem antes da próxima parte da expressão regular" (que é realmente útil apenas para operações de pesquisa e substituição). Na prática, você provavelmente não precisa da parte \@<=
. Você poderia encurtá-lo ainda mais, omitindo isso e adicionando \v
, que diz ao Vim que você não estará escapando da sintaxe sofisticada. Isso seria parecido com /\v(^|\s)-c>
.
Explicação do homem / menos equivalente:
Muito mais simples. Para a sintaxe da expressão regular usada por menos (que é o paginador padrão), \b
é o mesmo que \>
do Vim e você não precisa escapar dos parênteses ou do caractere de barra. Ele apenas procura a string '-c' que ocorre no começo da linha ou imediatamente depois de um caractere de espaço em branco e garante que nenhuma outra letra venha depois.