Guia para classificar linhas no Vim

Guia Para Classificar Linhas No Vim



Para classificar linhas no Vim, você pode usar o integrado organizar comando que classifica as linhas por um intervalo definido. Normalmente, todas as linhas do documento serão classificadas se nenhum intervalo for fornecido.

Por exemplo, se você quiser classificar o documento inteiro, use o :organizar comando no modo NORMAL. Por outro lado, se você quiser apenas classificar linhas específicas, use o :x,y tipo comando, onde x e e definir o intervalo do número da linha x para e .







A classificação é uma das funcionalidades cruciais necessárias durante a edição de documentos. O Vim não é menos que qualquer editor avançado quando se trata de fornecer recursos exclusivos, como classificação. Portanto, neste guia, irei explicar os recursos integrados do Vim organizar comando e como usá-lo de diferentes maneiras para classificar linhas.



Observação: As instruções e comandos mencionados neste guia são executados no Linux (Ubuntu 22.04). Vim é um editor de texto multiplataforma e esses comandos funcionarão sem erros também no macOS e no Windows.



Classifique todas as linhas





Para classificar todas as linhas de um documento, execute o comando organizar comando no modo NORMAL.

:organizar



Por padrão, o organizar O comando classificará as linhas em ordem lexicográfica.

Observe que se o seu arquivo tiver linhas vazias, o comando sort colocará as linhas vazias na parte superior da classificação de texto real.

Classificar linhas selecionadas

Para classificar as linhas selecionadas, primeiro temos que selecioná-las no modo de seleção. E para ativar o modo de seleção, pressione em e selecione linhas usando o h , j , ok, e eu teclas ou botões direcionais.

O Vim também possui um modo de seleção específico de linha chamado LINHA VISUAL modo. Imprensa V (deslocamento + v) para habilitar o LINHA VISUAL modo para selecionar as linhas.

Depois de selecionar as linhas, você verá ' <, ' > na linha de comando, que representa o intervalo de seleção. O ' < indicou a primeira linha de seleção visual, enquanto ' > indica o último.

Agora, basta digitar o organizar comando e pressione a tecla Enter para aplicar a classificação nas linhas selecionadas, conforme mostrado no GIF a seguir.

Classifique as linhas variadas

O intervalo de linha pode ser passado antes do organizar comando para classificar as linhas. O :definir número O comando pode ser usado para ativar o número da linha no Vim, tornando mais fácil a identificação do número da linha.

Por exemplo, para classificar as linhas da linha número 1 até a linha número 4, use o comando :1,4 tipo comando.

: 1 , 4 organizar

Como pode ser visto na saída acima, as únicas linhas especificadas são classificadas.

Classificar ao contrário

Como mencionado anteriormente, o comportamento padrão do organizar O comando é classificar as linhas em ordem lexicográfica. Para classificar as linhas de maneira não lexical, adicione o ponto de exclamação ( ! ) depois de organizar comando.

:organizar !

Classificar por localidade

Os computadores são operados em todo o mundo, possuindo diferentes idiomas com diferentes conjuntos de caracteres e regras. Quando se trata de classificar o agrupamento por localidade, é importante. Por exemplo, se você mora no Japão e deseja classificar as linhas por esse local, será necessário especificá-lo. O organizar O comando também permite definir a opção de localidade com o eu bandeira.

Para verificar a localidade de agrupamento atual, use o :linguagem comando.

:linguagem

Para classificar com a localidade atual, use:

: sorte eu

Observação: Esta opção pode não funcionar corretamente em sistemas baseados em macOS.

Classificar por número

Para classificar linhas com base no primeiro número decimal de uma linha, use o n bandeira com o organizar comando. A classificação continuará em ordem crescente por padrão.

:classificar n

Para classificar em ordem decrescente, use o ! símbolo após o comando.

:organizar ! n

A diferença entre organizar e classificar m é que o comando sort classifica as linhas lexicamente, ignorando os números nelas. Se você quiser classificar em relação aos números, anexe o n sinalizar com o comando sort.

Por exemplo, as linhas no arquivo a seguir também possuem letras e números. Quando classificamos aplicando o organizar somente comando, essas linhas serão classificadas em ordem alfabética. Por outro lado, aplicando o classificar m comando classifique as linhas por número, conforme mostrado na imagem a seguir.

Algumas outras opções para classificação numérica são mencionadas na tabela a seguir.

f Classificação de números flutuantes
b Classificação de números binários
o Classificação de números octais
h Classificação de números hexadecimais

Classificar por marcas

No Vim, as marcas são usadas para definir posições específicas no arquivo para facilitar a navegação em um arquivo com centenas de linhas. As marcas podem ser usadas para realizar uma operação de classificação usando o organizar comando.

Suponha que você tenha definido duas marcas a e b .

Então, para classificar todas as linhas da marca a marcar b , use o seguinte comando.

: 'a,' b organizar

A aspa simples ( ' ) é usado para acessar as marcas.

Classificar por expressão regular (RegEx)

A expressão regular (RegEx) é uma das formas comuns de classificar linhas definindo um padrão com o organizar comando.

Por exemplo, para classificar as linhas em relação a uma coluna que contém alfabetos e dígitos, use o comando /[a-z]*[0-9]+/ padrão com o organizar comando. O R bandeira depois do organizar comando é usado para instruir o comando a classificar com base no padrão mencionado.

:classificar r / [ a-z ] * [ 0 - 9 ] + /

Como você pode ver na imagem acima, a última coluna está classificada em ordem alfabética. Para ordenar a coluna numericamente, basta inserir o n bandeira.

Observação: Pulei as primeiras linhas definindo o intervalo da linha 2,5.

O R flag permite que você classifique o arquivo pelos padrões fornecidos. Sem o R sinalizador, o comando sort classificará todas as linhas que não correspondem ao padrão.

Remova as linhas duplicadas

A maneira mais rápida de remover linhas duplicadas em um arquivo é usar o organizar comando com o em flag, que representa o único.

:variedade você

Observe que usar esse método para remover linhas duplicadas também classificará as linhas, o que pode ser indesejado em muitas situações. Use métodos alternativos, como regex, para remover linhas duplicadas em um arquivo sem a necessidade de classificação.

Classificar linhas com base em uma coluna

Existem dois métodos para classificar linhas no Vim com base na coluna. O primeiro método usa o comando de classificação externo do Linux, enquanto o segundo usa o comando de classificação integrado.

O comando externo é fácil de implementar em comparação com o comando de classificação padrão. Observe que os comandos externos não são os comandos padrão do Vim. Significa qualquer comando suportado pelo sistema operacional.

Vamos entender como funciona no Vim.

Para usar qualquer comando externo no Vim, ! o símbolo é usado antes desse comando. Suponha que temos um arquivo separado por vírgula (CSV) e desejamos classificar o arquivo em relação à terceira coluna. O comando será

: %! organizar -t ',' -k3

O % indica todo o buffer como uma seleção. O -t flag é usado para definir o separador de campo, que pode ser vírgula, dois pontos ou até mesmo espaço. O -k flag é a chave que indica a posição na linha, e k2 significa o segundo campo após o delimitador especificado.

No exemplo, mencionei o intervalo em vez de % para pular a primeira linha.

: 2 , 5 ! organizar -t ',' -k3

O externo organizar O comando também pode ser útil de muitas outras maneiras porque oferece várias opções de classificação, como embaralhamento, classificação aleatória e mesclagem. Para saber mais sobre o comando sort do Linux, use o cara ajuda comando.

Por outro lado, para usar o recurso integrado do Vim organizar comando, um padrão de expressão regular será empregado com o comando sort.

:organizar / \v^ ( . { - } , ) { 2 } /

No comando acima:

  • \em representa a guia vertical
  • ^ indica o início da linha
  • (.{-},) é um grupo que irá em que .{-} é uma versão não gananciosa de .* e , é o campo de separação
  • {2} está representando as duas primeiras colunas a serem ignoradas

Pode-se ver que o R flag não é usado com o padrão, o que significa que o padrão ignorará qualquer coluna correspondente e classificará as colunas após o padrão. Neste caso, o arquivo será classificado com base na terceira coluna. Novamente no exemplo a seguir, para pular a primeira linha, usei o intervalo 2,5.

A distinção básica entre .* e .{-} é esse o .{-} processará o primeiro algoritmo de correspondência mais curta, enquanto .* corresponderá tanto quanto possível. Por exemplo, em uma string wxyz o x.*y irá corresponder a toda a string enquanto x.{-}y corresponderá apenas ao xy.

Classificar linhas sem distinção entre maiúsculas e minúsculas

Se você classificar as linhas que começam com letras maiúsculas e minúsculas, o comando de classificação classificará primeiro as linhas com letras maiúsculas. Bem, para ignorar a distinção entre maiúsculas e minúsculas, use o eu bandeira.

Como você pode ver na imagem a seguir, as linhas não classificadas e classificadas com ambos os :organizar e :classificar eu comandos.

Conclusão

A classificação no Vim pode ser feita facilmente usando o Vim integrado organizar comando. Por padrão, as linhas são classificadas em ordem alfabética; no entanto, se você quiser classificar ao contrário, use o comando ! assine após o comando. O comando sort normalmente classifica todo o buffer; um intervalo também pode ser definido com um separador de vírgula. O n flag é usado para classificação numérica, enquanto para remover as linhas duplicadas em bandeira é usada. Além disso, para melhorar o processo de classificação, o externo organizar O comando também pode ser usado no Vim.

Para saber mais sobre classificação no Vim, execute o :ajuda a classificar comando.