Supposons que vous exécutiez la pièce suivante de vimscript:
let @z = system("date")
Cela mettra une version chaîne de la date actuelle dans le registre z, mais la chaîne se terminera par une nouvelle ligne que je ne veux pas. Existe-t-il un moyen intégré (similaire à celui de Perl chomp
) pour se débarrasser des nouvelles lignes de fin d'une chaîne?
call
syntaxe bizarre ? Pourquoi ne pas simplement donnerChomp
un paramètre appeléstring
puis passera:string
àsubstitute
?Chomp()
passe tous les arguments auxquels il parvient, en supprimant le retour àsystem()
la ligne de fin de sa sortie et en le retournant.system()
a un{input}
argument facultatif , et celui-ci gère l'un de ces derniers de manière générique. Si vous n'en avez pas besoin, faites-le simplement de la manière conventionnelle.supprime la nouvelle ligne pour vous.
la source
\n
pour la nouvelle ligne.systemlist()
supprime seulement le\n
, pas n'importe lequel\r
.Christian Brabandt a répertorié un certain nombre de méthodes différentes sur superuser.com.
J'aime celui-ci car il est court:
la source
\r\n
types de terminaisons de ligne ...\n
avant de les renvoyer.