De la question Comment remplacer un caractère pour une nouvelle ligne dans Vim? . Vous devez utiliser \ r lors du remplacement de texte pour une nouvelle ligne, comme ceci
:%s/%/\r/g
Mais lorsque vous remplacez la fin des lignes et les sauts de ligne pour un personnage, vous pouvez le faire comme:
:%s/\n/%/g
Quelle section du manuel documente ces comportements et quel est le raisonnement derrière eux?
%
recherche et le remplacement?:s
, n'appliquera la substitution qu'à la ligne actuelle.:%s
le fait adresser le dossier entier. Plus .Réponses:
À partir de documents Vim sur les modèles :
la source
Depuis http://vim.wikia.com/wiki/Search_and_replace :
la source
:h :s%
en particulier le dernier paragraphe. (via:h :s
)Un autre aspect à cela est que
\0
, qui est traditionnellement NULL, est priss//\0/
pour signifier "le motif assorti entier". (Qui, soit dit en passant, est redondant et plus long que&
).\0
direNULL
, donc vous utilisez\n
\n
vouloir dire\n
, alors vous utilisez\r
.\r
vouloir dire\r
, mais je ne sais pas qui voudrait ajouter ce caractère à dessein.—☈
la source
\n
recherche et le remplacement de modèles ont des significations différentes. Réponse fantastique.:help NL-used-for-Nul
la source
Tout d'abord, ouvrez
:h :s
pour voir la section "4.2 Substitute" de la documentation sur "Change". Voici ce que la commande accepte:Notez la description
pattern
etstring
Alors maintenant, vous savez que le modèle de recherche et les modèles de remplacement suivent des règles différentes. Si vous suivez le lien vers
|pattern|
, il vous amène à la section qui explique l'ensemble des modèles d'expression régulière utilisés dans Vim.Pendant ce temps,
|sub-replace-special|
vous amène à la sous-section de "4.2 Substitut", qui contient les modèles de substitution, parmi lesquels:\r
saut de ligne / fractionnement.(Le raccourci vers cette partie du manuel est
:h :s%
)la source