Existe-t-il une méthode d'impression sur la console sans retour à la ligne de fin? La documentation de l'console
objet ne dit rien à ce sujet:
console.log()
Imprime à la sortie standard avec la nouvelle ligne. Cette fonction peut prendre plusieurs arguments de la même
printf()
manière. Exemple:console.log('count: %d', count);
Si des éléments de formatage ne sont pas trouvés dans la première chaîne, ils
util.inspect
sont utilisés pour chaque argument.
node.js
console
console.log
Evan Carroll
la source
la source
console.log
imprimait\n
littéralement quand je voulais qu'il imprime un caractère de nouvelle ligne.` followed by an
J'obtenais un littéral n`, quand je voulais sortir un vrai caractère de nouvelle ligne.De plus, si vous souhaitez remplacer les messages sur la même ligne, par exemple dans un compte à rebours, vous pouvez ajouter «\ r» à la fin de la chaîne.
la source
process.stdout.write("Downloading " + data.length + " bytes\033[0G");
\033
avec le littéral hexadécimal\x1b
comme ceci:\x1b[0G
. (qui fonctionne avec du code strict et non strict)Dans la console Windows (Linux aussi), vous devez remplacer
'\r'
par son code équivalent\033[0G
:Celui-ci utilise une séquence d'échappement du terminal VT220 pour envoyer le curseur à la première colonne.
la source
[\] 39
et le curseur est mis en évidence sur le premier caractère:var spinner = '|/-\\'.split('');process.stdout.write("["+this.randomElement(spinner)+"] "+message+"\033[0G");
man console_codes
(sous Linux ou en ligne) et ma référence préférée est www2.phys.canterbury.ac.nz/dept/docs/manuals/unix/DEC_4.0e_Docs/… (99% de son contenu fonctionne toujours) . Seul bémol: soyez prêt à tester toutes les expériences sur plusieurs terminaux différents avant de déployer largement.En tant qu'extension / amélioration de l'ajout brillant fait par @rodowi ci-dessus concernant la possibilité de remplacer une ligne:
Si vous ne souhaitez pas que le curseur du terminal se trouve au premier caractère, comme je l'ai vu dans mon code, envisagez de faire ce qui suit:
En plaçant le
\r
devant de l'instruction d'impression suivante, le curseur est réinitialisé juste avant que la chaîne de remplacement n'écrase la précédente.la source
util.print peut également être utilisé. Lire: http://nodejs.org/api/util.html#util_util_print
Un exemple:
la source
util.print
est désormais obsolète(node:7616) DeprecationWarning: util.print is deprecated. Use console.log instead.
Il semble y avoir de nombreuses réponses suggérant:
Les journaux d'erreurs doivent être émis sur:
Utilisez plutôt:
Pour tous ceux qui se demandent pourquoi
process.stdout.write('\033[0G');
ne font rien, c'est parce qu'ilsstdout
sont tamponnés et que vous devez attendre l'drain
événement ( plus d'informations ).Si l'écriture revient,
false
il déclenchera undrain
événement.la source
Aucune de ces solutions ne fonctionne pour moi
process.stdout.write('ok\033[0G')
et il'\r'
suffit de créer une nouvelle ligne mais de ne pas l'écraser sur Mac OSX 10.9.2.EDIT: J'ai dû l'utiliser pour remplacer la ligne actuelle:
la source
J'ai eu l'erreur suivante lors de l'utilisation du mode strict:
La solution suivante fonctionne ( source ):
la source