J'ai un fichier texte qui ressemble à ceci:
A.
text
text
text
A.
more text
more text
A.
more text
Je veux joindre toutes les lignes entre les "marqueurs" A.
pour que ça ressemble à:
A.texttexttext
A.more textmore text
A.more text
Comment puis-je faire cela dans Vim?
:help \@!
dans Vim pour plus d'informations sur cette partie. Sinon, c'est simple, j'espère, avec mon explication. Un problème avec votre approche est que si "A.
" apparaît dans le texte, mais pas comme une ligne de marqueur isolée, il sera divisé comme s'il s'agissait à l'origine d'un marqueur. En pratique, ce n'est peut-être pas un problème (je ne sais pas à quoi ressemble votre "vrai" fichier), mais génériquement il peut provoquer un comportement indésirable si l'on n'est pas au courant de cela.:%s///
syntaxe: c'est une syntaxe "rechercher et remplacer" dans Vim.:
démarre la commande,%
spécifie l'ensemble du tampon comme plage,s
démarre une substitution./
est le délimiteur de modèle (tout autre caractère peut être utilisé, mais/
est "standard"). Le premier/
démarre le modèle de recherche, le second le modèle de remplacement et le troisième le termine. Des modificateurs de fin sont disponibles pour spécifier l'insensibilité à la casse, etc.\1
représentent le groupe saisi dans le modèle de recherche.:%s/foo/bar/
remplacefoo
parbar
dans le fichier.:%s/^A\.//
. La méthode dans la réponse ne capture pas les^A\.
motifs eux-mêmes (plutôt leur absence), elle ne peut donc pas modifier ces chaînes de manière évidente.Cela fonctionne également (lorsque la première ligne commence par
A.
)la source