Comment réaliser la numérotation automatique des listes dans vim?

11

Les contrats, etc., les choses formelles ont besoin de listes numérotées.

1. Some text

2. More text

 2.1. Sub-section text

etc.

La clé est d'éliminer la renumérotation manuelle lors de l'insertion ou de la suppression d'un élément de liste. Est-ce possible avec vim? La cohérence de la numérotation des listes est vraiment difficile à suivre manuellement.

L'un des objectifs associés à cela est d'avoir un contrôle de révision approprié rendu possible par un format de stockage non obscurci, tel que du texte clair.

lkraav
la source
1
Si un PDF est acceptable, une démarque de liste non numérotée peut être utilisée pour étiqueter des éléments de liste et asciidocpeut ensuite être utilisée pour convertir la démarque en PDF avec numérotation de ligne. Mais moi aussi, je voudrais savoir comment utiliser vim pour la numérotation automatique des fichiers texte uniquement.
Wildcard du
1
C'est quelque chose que les traitements de texte sont assez bons.
romainl
@Wildcard PDF est en effet acceptable, la seule chose est que le marquage anonyme initial rend difficile la référence à des éléments numérotés spécifiques dans le document. Mais quand même, votre méthode est définitivement meilleure que rien.
lkraav du
Serait-il acceptable d'utiliser une certaine forme de démarque qui serait ensuite convertie / déconvertie automatiquement avec une commande ex-mode? par exemple, préfixer les éléments de liste de niveau supérieur avec - , les éléments de liste de deuxième niveau avec -- , etc. Cela semble la voie d'approche la plus probable; voir ma récente question sur la numérotation consécutive en mode Ex pour un point de départ.
Wildcard
Comme les options sont rares, tout est permis.
lkraav

Réponses:

1

J'ai un plugin qui peut (partiellement?) Vous aider: lazyList (pas de numérotation automatique des listes).

Dans l'exemple suivant ( _est la position du curseur) ...

1. Some text
2. More text   
 Sub-secti_on text
 Sub-section text   
 Sub-section text

... exécutez simplement la commande :LazyList '2.%1%. 'pour obtenir:

1. Some text
2. More text   
 2.1. Sub-secti_on text
 2.2. Sub-section text   
 2.3. Sub-section text

Pour supprimer les index, exécutez la même commande.

Par défaut, les index sont ajoutés au paragraphe en cours (même retrait ou lorsqu'ils sont entourés de lignes vides), mais vous pouvez les ajouter à une sélection visuelle.

Une bonne façon de faire dans votre cas:

  1. Ajouter des indices
  2. Supprimez les indices avant d'ajouter un ou plusieurs nouveaux éléments.
  3. Ajoutez des indices après avoir ajouté le ou les nouveaux éléments.

Cette vidéo devrait être plus explicite.

La mauvaise chose avec le plugin, c'est qu'il ne prend pas en compte une sélection visuelle avec des lignes vides, je devrais reconsidérer ce comportement.

PS L' anglais n'est pas ma langue maternelle, veuillez donc excuser les erreurs.

MonsieurOccan
la source