Lorsque vous utilisez le balisage, comme sur le réseau SE, une indentation de quatre espaces avant une ligne de texte le désigne comme faisant partie d'un bloc de code, comme j'espère que vous le savez. Si vous ne le faites pas, voici un exemple (avec .
représentation d'un espace):
.... Code
.... Plus de code
résulte en
Code
More code
Le problème est que lorsque vous copiez-collez du code dans une réponse, vous devez indenter manuellement chaque ligne. Cela est particulièrement difficile lorsque vous travaillez avec du code non golfé, car il est probablement déjà en retrait et peut provoquer de la confusion. Vous pouvez simplement sélectionner votre code et frapper Ctrl + K
, il s'avère. Des heures de ma vie perdues sans raison de côté ...
Donc, votre objectif est, étant donné une entrée, de le renvoyer avec quatre espaces avant chaque ligne. Dans un souci d'économie de temps de copier-coller, vous devez traiter l'intégralité de l'entrée en une seule chaîne (tant que votre langue peut l'analyser). Si votre langue n'est pas en mesure de traiter un caractère (comme les sauts de ligne) dans les chaînes, vous pouvez supposer qu'il est indiqué / échappé par une autre méthode prise en charge par la langue; cependant, la sortie doit sortir chaque ligne sur sa propre ligne (donc ne pas passer quelque chose comme ....foo\n....bar
).
Les échappatoires standard ne sont pas autorisées. Comme il s'agit de code-golf , la réponse la plus courte en octets l'emporte. Bonne chance!
la source
Ctrl + K
Réponses:
V , 4 octets
Essayez-le en ligne!
(Notez l'espace de fin)
V est codé en Latin1, où cela est codé comme suit:
Explication
Voici une solution qui fait également 4 octets en UTF-8!
la source
4ñ>G
Crayon , 7 octets
Essayez-le en ligne!
Explication
Crayon est un langage basé sur la pile conçu pour créer de l'art ASCII. Il est encore aux premiers stades de développement, mais il en sait juste assez pour terminer ce défi avec un nombre d'octets plutôt faible:
Le dessin de l'espace insécable est nécessaire car Crayon découpe automatiquement la sortie en rectangle, donc sans le NBSP, il imprimerait simplement l'entrée d'origine.
la source
Rétine , 8 octets
Essayez-le en ligne!
Il y a quatre espaces sur la deuxième ligne. Les solutions alternatives utilisent soit
m`^
ou%1`
soit1%`
en première ligne. Tous ces éléments correspondent à la position au début de chaque ligne et la remplacent par quatre espaces.la source
Cheddar, 31 octets
Vraiment simplement, mais j'ai posté car ça montre les nouveaux opérateurs fonctionnels.
(" ":+)
est le même queA -> " " + A
. (c'est-à-dire+
op en fonction avec" "
lié à LHS).Je ne pense même pas avoir besoin d'explication
la source
:
cela causerait des problèmes?:
:
pas de correspondance?
, l'analyseur choisira de le traiter comme un op fonctionnel. Cela nécessite toujours que l'op fonctionnel soit enveloppé dans des parens mais oui:+)
@
dire?Python ,
4439 octetsBiffé & nbsp; 44 & nbsp; n'a plus 44 ans :)
-5 octets grâce aux ovs (éviter la mise en file d'attente avec un préfixe)
Essayez-le en ligne!
la source
lambda s:' '*4+s.replace('\n','\n ')
pour 39 octetslambda s:' '*4+s.replace('\n','\n ')[1:]
pour 40 (qui ne fonctionne pas) ou autre chose?lambda s:' '*4+s.replace('\n','\n<4 spaces>')
TIOJavaScript, 26 octets
Merci @Conor O'Brien d'avoir joué au golf sur 8 octets
Remplacer par une expression régulière avec / g remplace toutes les instances. m fait que l'expression régulière traite chaque ligne séparément pour le début de la chaîne ^.
Essayez-le en ligne!
la source
asdf
répétant encore et encore.x=>x.replace(/^|\n/g,"$& ")
pour obtenir la première ligne et les lignes suivantes en une seule foisPython 2,
8745 octetsL'entrée est prise comme
'Line1\nLine2\nLine3...'
(Citations nécessaires)Merci à @WheatWizard de m'avoir donné une idée qui m'a aidé à jouer au golf 42 octets.
la source
Ctrl + K
, que les vraies raisons de ce défi proposé étaient ... moins que de simples énigmes.^
par ``.Gelée , 8 octets
Essayez-le en ligne!
Comment?
Quelques autres variantes de 8 octets sont:
Ỵṭ€⁶Yµ4¡
(4 répétitions de split sur les nouvelles lignes, clouent un seul espace);⁶ḤḤ;ЀỴY
(doubler deux fois, c'est comme multiplier par 4,Ѐ
mappe sur le bon argument, donc nous pouvons concaténer au lieu de clouer);et autres réarrangements de ceux-ci.
la source
Emacs, 5 clés, 5 octets
Dans au moins un codage couramment utilisé pour la saisie au clavier, chacun de ces accords est un octet unique:
18 68 b4 18 09
. Les entrées Emacs ont tendance à être très lourdes, car chaque caractère ASCII imprimable se distingue par lui-même, sauf en tant que caractère ultérieur d'une commande à plusieurs caractères (ce qui signifie que seuls les accords peuvent être utilisés pour donner des commandes réelles).Je ne sais pas comment cela se compare à Vim (par opposition à V). Mais Vim est assez couramment utilisé sur PPCG, et j'ai donc pensé que l'autre côté des guerres de l'éditeur méritait également son temps sous les projecteurs.
Cela suppose que les E / S sont effectuées via le tampon (l'équivalent des conventions d'E / S normales pour vim), ou extraites d'un fichier et sorties sur l'écran (ce qui revient au même). Si vous effectuez des E / S via la région à la place, ce qui est naturel pour certaines formes de programme, vous pouvez supprimer les deux premiers caractères, pour un score de 3 octets; cependant, je ne pense pas que cela soit conforme aux règles du PPCG.
Explication
Le dernier builtin utilisé ici est, bien sûr, incroyablement utile pour ce défi; le reste n'est que structure.
la source
PowerShell,
2928 octets-1 Merci à fergusq, en utilisant une nouvelle ligne réelle au lieu du `n
prend l'
"$args"
entrée sous forme de chaîne (transtypée à l'aide de "s) et la-split
place sur une nouvelle ligne, puis la boucle (%{}
) à travers elle, en ajoutant quatre espaces (" "*4
) et la ligne ($_
) puis la renvoie implicitement.la source
Pyth, 10 octets
Essayez!
Si l'entrée en tant que liste de lignes était autorisée, je pourrais le faire en 7 octets:
Essayez ça
solutions plus longues:
12 octets:
12 octets:
13 octets:
la source
jbm*4\ .z
d
, oups. Votre réponse de 10 octets est ce que j'allais faire, de toute façonRöda , 21 octets
Essayez-le en ligne!
Il s'agit d'une fonction anonyme. L'entrée est extraite du flux.
Explication:
la source
identity()
Tirez -vous simplement toutes les valeurs de STDIN?identity
extrait les valeurs du flux d'entrée et les pousse vers son flux de sortie. Il est identique àpush(x) for x
.Perl 5 , 11 + 1 = 12 octets
11 octets de code +
-p
indicateur.Essayez-le en ligne!
Pour une fois, les explications seront courtes: l'expression régulière remplace chaque début de ligne (
^
combiné avec le/m
modificateur) par quatre espaces - la fin.la source
Perl 6 , 11 octets
Essayez-le
Étendu:
la source
sed ,
16109 octetsEssayez-le en ligne!
Modifications
Réduction de la taille de la solution de 16 à 10 octets grâce à Kritixi Lithos .
-1 octet grâce à seshoumara .
la source
-r
indicateur (1 octet) afin de pouvoir supprimer les barres obliques inverses avant les parenthèses.s/.*/ &/
(supprimer les parenthèses et remplacer\1
par&
)*
.s:^: :
, pour 9 octets.Java 7, 58 octets
Explication:
Essayez-le ici.
la source
replaceAll
.replace
et.replaceAll
remplaceront toutes les occurrences de la chaîne recherchée par le remplacement..replace
est utilisé pour les chaînes littérales et.replaceAll
pour les expressions rationnelles. Puisqu'il\n
ne s'agit pas d'une expression régulière,.replace
peut être utilisé sans problème pour remplacer tous les retours à la ligne par un retour à la ligne + quatre espaces, que vous pouvez également consulter dans le lien "Essayez-le" que j'ai fourni.Brain-Flak ,
109103octets-6 grâce à Wheat Wizard
Comprend +1 pour
-c
Essayez-le en ligne!
la source
PHP, 43 octets
la source
Stacked, 13 bytes
Try it online!
Explanation
la source
Octave, 17 bytes
Try it online!
la source
MATL, 12 bytes
Input is a string with newlines. To enter this, you need to concatenate character 10 between the normal characters to represent newline (square brackets are concatenattion):
Try it at MATL online!
Explanation
la source
PHP, 16
run with
php -R <code>
.-R
runs the given code for every input line and$argn
is fed the current input line. So this simply prints each line with additional four spaces in front of it.la source
V, 3 bytes (Non-competing)
This is answer uses a feature that I have been planning on adding for a while, but just got around to adding today. That makes this answer non-competing and invalid for winning. But it's still cool to show off such a useful/competitive feature!
Try it online!
Explanation:
la source
Vim, 6 keystrokes
Assumes that the cursor is on the beginning of the file, as if you opened the file from from the command line via
vim filename
.With a vim configured to use 4 spaces for indentation it would be 2 keystrokes:
>G
.la source
ZZ
at the end. Usually vim submissions are fine just outputting to the buffer rather than to a file.ZZ
then.Japt,
76 bytesSaved 1 byte thanks to @ETHproductions
Try it online!
Explanation:
la source
S²²
would work as well in place ofSp4
, not that it saves you anything in this case. Speaking of which, I think you can just domiS²²R
to remove theR
flag (basicallymiS²²
, but split at newlines beforehand and join with newlines afterward)UberGenes, 62 bytes
I had to enter this challenge with UberGenes, as a very similar program (that only inserted one space) was one of the first programs I ever wrote in the language, and it seemed like it would be easy to modify for this purpose.
How it works:
la source
CJam, 11 bytes
Thanks to @Challenger5 for a correction
Try it online!
Explanation
la source
abc\n\ndef
. It returns....abc\n....def
because%
discards empty elements. You want to use/
to split instead, because it keeps the empty elements.J-uby,
1716 BytesExplanation
This directly translates to (in Ruby):
la source
Actually, 16 bytes
Try it online!
Explanation:
la source
C,
6665 bytesTry it online!
la source
s;char*l;f(){while(getline(&l,&s,stdin)+1)printf("____%s",l);}
which 62 bytes<stdio.h>
(because of thestdin
).