Guide pour trier les lignes dans Vim

Guide Pour Trier Les Lignes Dans Vim



Pour trier les lignes dans Vim, vous pouvez utiliser le module intégré trier commande qui trie les lignes selon une plage définie. Généralement, toutes les lignes du document sont triées si aucune plage n'est indiquée.

Par exemple, si vous souhaitez trier l'ensemble du document, utilisez l'option :trier commande en mode NORMAL. En revanche, si vous souhaitez trier uniquement des lignes spécifiques, utilisez l'option :x,y trier commande, où X et et définir la plage à partir du numéro de ligne X à et .







Le tri est l’une des fonctionnalités cruciales requises lors de l’édition de documents. Vim n'est rien de moins qu'un éditeur avancé lorsqu'il s'agit de fournir des fonctionnalités uniques telles que le tri. Par conséquent, dans ce guide, j'expliquerai les fonctionnalités intégrées de Vim. trier et comment l'utiliser de différentes manières pour trier les lignes.



Note: Les instructions et commandes mentionnées dans ce guide sont exécutées sous Linux (Ubuntu 22.04). Vim est un éditeur de texte multiplateforme, et ces commandes fonctionneront également sans aucune erreur sur macOS et Windows.



Trier toutes les lignes





Pour trier toutes les lignes d'un document, exécutez la commande trier commande en mode NORMAL.

:trier



Par défaut, le trier La commande triera les lignes par ordre lexicographique.

Notez que si votre fichier contient des lignes vides, la commande de tri placera les lignes vides en haut du tri du texte.

Trier les lignes sélectionnées

Pour trier les lignes sélectionnées, nous devons d’abord les sélectionner en mode sélection. Et pour activer le mode de sélection, appuyez sur dans , et sélectionnez des lignes à l'aide de la touche h , j , k, et je touches ou boutons directionnels.

Vim dispose également d'un mode de sélection spécifique à la ligne appelé LIGNE VISUELLE mode. Presse V (maj+v) pour permettre au LIGNE VISUELLE mode pour sélectionner les lignes.

Après avoir sélectionné les lignes, vous verrez ' <, ' > dans la ligne de commande, qui représente la plage de sélection. Le ' < indiquait la première ligne de sélection visuelle, tandis que « > indique le dernier.

Maintenant, tapez simplement le trier et appuyez sur la touche Retour pour appliquer le tri sur les lignes sélectionnées, comme indiqué dans le GIF suivant.

Trier les lignes à distance

La plage de lignes peut être transmise avant le trier commande pour trier les lignes. Le  : définir le numéro La commande peut être utilisée pour activer le numéro de ligne dans Vim, facilitant ainsi l'identification du numéro de ligne.

Par exemple, pour trier les lignes de la ligne numéro 1 à la ligne numéro 4, utilisez la commande :1,4 trier commande.

: 1 , 4 trier

Comme le montre la sortie ci-dessus, les seules lignes spécifiées sont triées.

Trier à l'envers

Comme mentionné précédemment, le comportement par défaut du trier La commande consiste à trier les lignes par ordre lexicographique. Pour trier les lignes de manière non lexicale, ajoutez le point d'exclamation ( ! ) après le trier commande.

:trier !

Trier par paramètres régionaux

Les ordinateurs fonctionnent partout dans le monde, dans différentes langues avec différents ensembles de caractères et de règles. Lorsqu'il s'agit de trier le classement par paramètres régionaux, cela compte. Par exemple, si vous vivez au Japon et souhaitez trier les lignes selon ces paramètres régionaux, vous devez le spécifier. Le trier La commande permet également de définir l'option locale avec le je drapeau.

Pour vérifier les paramètres régionaux de classement actuels, utilisez le :langue commande.

:langue

Pour trier avec les paramètres régionaux actuels, utilisez :

: chance l

Note: Cette option peut ne pas fonctionner correctement sur les systèmes basés sur macOS.

Trier par numéro

Pour trier les lignes en fonction du premier nombre décimal d'une ligne, utilisez l'option n drapeau avec le trier commande. Le tri se déroulera par défaut par ordre croissant.

: trier n

Pour trier par ordre décroissant, utilisez la ! symbole après la commande.

:trier ! n

La différence entre trier et trier m est que la commande sort trie les lignes lexicalement, en ignorant les nombres qu'elles contiennent. Si vous souhaitez trier par rapport aux nombres, ajoutez le n flag avec la commande sort.

Par exemple, les lignes du fichier suivant contiennent également des lettres et des chiffres. Lorsque nous le trions en appliquant le trier commande uniquement, ces lignes seront triées par ordre alphabétique. En revanche, en appliquant le trier m La commande trie les lignes par numéro comme indiqué dans l’image suivante.

Certaines autres options de tri numérique sont mentionnées dans le tableau suivant.

F Tri des nombres flottants
b Tri des nombres binaires
Ô Tri des nombres octaux
h Tri des nombres hexadécimaux

Trier par marques

Dans Vim, les marques sont utilisées pour définir des positions spécifiques dans le fichier afin de faciliter la navigation dans un fichier comportant des centaines de lignes. Les marques peuvent être utilisées pour effectuer une opération de tri à l'aide de la trier commande.

Supposons que vous ayez défini deux repères un et b .

Donc, pour trier toutes les lignes de la marque un marquer b , utilisez la commande suivante.

: 'un,' b trier

La citation simple ( ' ) permet d'accéder aux marques.

Trier par expression régulière (RegEx)

L'expression régulière (RegEx) est l'une des méthodes courantes pour trier les lignes en définissant un motif avec le trier commande.

Par exemple, pour trier les lignes par rapport à une colonne contenant des alphabets et des chiffres, utilisez la commande /[a-z]*[0-9]+/ modèle avec le trier commande. Le r drapeau après le trier La commande est utilisée pour demander à la commande de trier en fonction du modèle mentionné.

 : trier r / [ az ] * [ 0 - 9 ] + /

Comme vous pouvez le voir sur l'image ci-dessus, la dernière colonne est triée par ordre alphabétique. Pour trier la colonne numériquement, insérez simplement le n drapeau.

Note: J'ai sauté les premières lignes en définissant la plage à partir de la ligne 2,5.

Le r flag vous permet de trier le fichier selon les modèles donnés. Sans le r flag, la commande sort triera toutes les lignes qui ne correspondent pas au modèle.

Supprimer les lignes en double

Le moyen le plus rapide de supprimer les lignes en double dans un fichier consiste à utiliser le trier commande avec le dans drapeau, qui représente l’unique.

:variété toi

Notez que l'utilisation de cette méthode pour supprimer les lignes en double triera également les lignes, ce qui peut être indésirable dans de nombreuses situations. Utilisez des méthodes alternatives, telles que les expressions régulières, pour supprimer les lignes en double dans un fichier sans avoir besoin de trier.

Trier les lignes en fonction d'une colonne

Il existe deux méthodes pour trier les lignes dans Vim en fonction de la colonne. La première méthode utilise la commande de tri Linux externe, tandis que la seconde utilise la commande de tri intégrée.

La commande externe est facile à mettre en œuvre par rapport à la commande de tri par défaut. Notez que les commandes externes ne sont pas les commandes par défaut de Vim. Cela signifie toute commande prise en charge par le système d'exploitation.

Comprenons comment cela fonctionne dans Vim.

Pour utiliser n'importe quelle commande externe dans Vim, ! Le symbole est utilisé avant cette commande. Supposons que nous ayons un fichier CSV (séparé par des virgules) et que nous souhaitions trier le fichier par rapport à la troisième colonne. La commande sera

: % ! trier -t ',' -k3

Le % indique l'intégralité du tampon en tant que sélection. Le -t flag est utilisé pour définir le séparateur de champ, qui peut être une virgule, deux points ou même un espace. Le -k flag est la clé qui indique la position dans la ligne, et k2 désigne le deuxième champ après le délimiteur spécifié.

Dans l'exemple, j'ai mentionné la plage au lieu de % pour sauter la première ligne.

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

L'extérieur trier La commande peut également être utile de nombreuses autres manières car elle offre diverses options de tri telles que la lecture aléatoire, le tri aléatoire et la fusion. Pour en savoir plus sur la commande de tri Linux, utilisez le homme, aide commande.

D’un autre côté, pour utiliser le module intégré de Vim trier commande, un modèle d’expression régulière sera utilisé avec la commande sort.

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

Dans la commande ci-dessus :

  • \dans représente l'onglet vertical
  • ^ indique le début de la ligne
  • (.{-},) est un groupe qui va dans lequel .{-} est une version non gourmande de .* et , est le champ de séparation
  • {2} représente les 2 premières colonnes à ignorer

On peut voir que le r flag n'est pas utilisé avec le modèle, ce qui signifie que le modèle ignorera toute colonne correspondante et triera les colonnes après le modèle. Dans ce cas, le fichier sera trié en fonction de la troisième colonne. Toujours dans l'exemple suivant, pour sauter la première ligne, j'ai utilisé la plage 2,5.

La distinction fondamentale entre .* et .{-} est-ce le .{-} traitera d'abord l'algorithme de correspondance la plus courte, tandis que .* correspondra autant que possible. Par exemple, dans une chaîne wxyz, le x.*y correspondra à la chaîne entière tandis que x.{-}y correspondra uniquement au xy.

Trier les lignes sans tenir compte de la casse

Si vous triez les lignes commençant par des lettres majuscules et inférieures, la commande de tri triera d'abord les lignes avec les lettres majuscules. Eh bien, pour ignorer la sensibilité à la casse, utilisez le je drapeau.

Comme vous pouvez le voir dans l'image suivante, les lignes non triées et triées avec à la fois le :trier et : trier je commandes.

Conclusion

Le tri dans Vim peut facilement être effectué à l'aide de l'outil intégré de Vim. trier commande. Par défaut, les lignes sont triées par ordre alphabétique, cependant, si vous souhaitez trier à l'envers, utilisez le ! signez après la commande. La commande sort trie généralement l’intégralité du tampon ; une plage peut également être définie avec une virgule comme séparateur. Le n le drapeau est utilisé pour le tri numérique, tout en supprimant les lignes en double dans le drapeau est utilisé. De plus, pour améliorer le processus de tri, le trier La commande peut également être utilisée dans Vim.

Pour en savoir plus sur le tri dans Vim, exécutez la commande  : aide au tri commande.