7
votes

Un moyen facile de centrer le texte entre le premier et le dernier mot non blanc dans Vim?

Y a-t-il un moyen simple d'utiliser une fonction macro ou ~ 10 lignes (pas de plugin!) pour centrer du texte entre le premier et le dernier mot (= séquence de caractères non vides) sur une ligne? Par exemple. Pour activer

        >>>       No user serviceable parts below.         <<<


3 commentaires

Y a-t-il une largeur fixe?


@ jacobwalker0814 Pas de largeur fixe. Romainl: J'ai essayé : centre d'aide et recherché des plugins, mais pour une telle tâche simple, un plugin apparaît sur le point de vue.


@Romainl J'ai pensé à utiliser un programme de filtrage externe, comme écrire un Perl One-Liner, mais qui est inélégant quand il devrait y avoir une solution interne VIM.


3 Réponses :


1
votes

Je ne sais pas de bonne façon. Je le fais habituellement de manière semi-automatique, en utilisant : Centre sur une ligne de texte uniquement contenant les pièces qui doivent être centrées, puis déplacez le résultat dans la ligne contenant les parties environnantes.

Si personne d'autre n'a une meilleure réponse, peut-être cases peut aider si vous avez besoin de faire ce genre de chose beaucoup.


0 commentaires

7
votes

source cette fonction: xxx

note

  • Cette fonction pourrait pas travail dans tous les cas. Je viens d'écrire rapidement pour un cas habituel. Ce n'est pas un plugin après tout

  • Les lignes CODES pourraient être réduites en combinant les appels de fonction. Mais je pense que c'est clair de cette façon, alors je le laisse juste comme ça.

  • Si cela fonctionnait pour vous, vous pouvez créer une carte

  • Cela fonctionne comme ceci: (Deux dernières lignes que j'ai dactylographiés @: pour répéter l'appel CMD)

    Entrez la description de l'image ici


5 commentaires

Impressionnant. Comment avez-vous généré le GIF?


Superbe, et ce n'est que neuf lignes :-)


Les deux getline ('.') appels dans les affectations à SP être remplacés par l ?


@Jens tu as raison, je viens de cp / pastes, sans trop penser, je vais le réparer


J'aime aussi votre gif. Je suis un peu jaloux ma réponse n'en a pas un.



3
votes

Vous pouvez utiliser la commande : s code> avec le \ = = code> alias sub-remplacement-expression.

:h :s/
:h :s/\=
:h sub-replace-\=
:h submatch(
:h substitute(
:h escape(
:h /\v
:h /\S
:h /\{-
:h /\zs
:h &


4 commentaires

+1 Je n'ai pas remarqué cette réponse. belle substitution. BTW, j'ai fait un gif pour vous .. Je modifierai votre réponse et l'ajoutera bientôt, supprimez-le si vous n'aimez pas. :)


Merci. Je vais devoir apprendre à faire ces gifs un jour.


Vous n'avez pas à apprendre, juste un petit outil. Google Byzanz, vous verrez, c'est vraiment facile à utiliser.


Saintes biscuits qui sont gentils! Malheureusement, j'utilise Windows ici au travail. Merci pour le tuyau