Vim regex para selecionar tudo depois da coluna N em uma linha

2

Estou procurando uma regex que selecione todo o texto em uma linha, do 51º caractere até o final, para linhas com mais de 50 caracteres.

Eu preciso do regex para não incluir os primeiros 50 caracteres da linha.

A razão para isso é adicionar algo ao arquivo de sintaxe gitcommit.vim para torná-lo mais óbvio quando estou excedendo os 50 caracteres para o resumo. Definindo ctermbg=red ou algo assim.

Estou ciente de que provavelmente poderia fazer algo como definir ctermbg=red para toda a primeira linha e depois deixar o grupo de sintaxe gitcommitSummary definir o segundo plano de volta para os primeiros 50 caracteres, mas esse problema me chamou a atenção e eu d gostaria de descobrir se existe uma maneira de um regex pular olhando para os primeiros caracteres X da linha.

Eu estava brincando com algo parecido com o seguinte, mas é apenas uma afirmação de largura zero, então obviamente não funciona. Alguma idéia?

# This just highlights all lines exceeding 50 characters
/^\(.\{50\}\)\@=.*$

EDIT: Apenas percebi que o arquivo gitcommit.vim realmente tinha destaque de sintaxe para isso usando "nextgroup", e apenas tinha comentado por padrão. Então, eu alcancei meu objetivo original, mas ainda gostaria de saber se é possível fazer isso com um regex.

    
por Matthew 08.10.2012 / 21:12

1 resposta

6

O átomo de regex do Vim para correspondência em uma determinada coluna é \%Nc , onde N é o número da coluna. Veja

:help /\%c

Para corresponder a um número de coluna virtual, o átomo é \%Nv . Veja

:help /\%v

Para pesquisar qualquer coisa depois da coluna 50, você pode usar

/\%>50v

em que > significa corresponder em qualquer coluna após a coluna 50. Você também pode usar essa regex em um comando: match da seguinte forma:

:match ErrorMsg /\%>50v/
    
por 08.10.2012 / 21:41

Tags