I would like to evaluate
var foo = "foo";
console.log(foo);
as a block, instead of evaluating line by line
var foo = "foo";
undefined
console.log(foo);
foo
undefined
Is there a simple way to move the prompt to the next line?
Instead of typing out all three lines, you can type out the first one, leave your cursor position on that line, and press Shift+Alt+down twice. This will create two copies of the line, directly below the original one, and then you can simply change the number in the variable to account for the second two balls.
Ever wanted to insert a new blank line into something you're working on at the REPL? Just pressing <Enter> is going to execute the command! Note: this trick works mid-line to break a long line, too!
Node v6.4 has an editor
mode. At the repl prompt type .editor
and you can input multiple lines.
example
$ node
> .editor
// Entering editor mode (^D to finish, ^C to cancel)
const fn = there => `why hello ${there}`;
fn('multiline');
// hit ^D
'why hello multiline'
> // 'block' gets evaluated and back in single line mode.
Here are the docs on all the special repl commands https://nodejs.org/api/repl.html#repl_commands_and_special_keys
You can use if(1){
to start a block that will not finish until you enter }
. It will print the value of the last line of the block.
> {
... var foo = "foo";
... console.log(foo);
... }
foo
undefined
In multiline mode you miss out on a lot of REPL niceties such as autocompletion and immediate notification of syntax errors. If you get stuck in multiline mode due to some syntax error within the block, use ^C
to return to the normal prompt.
jhnstn's solution is perfect, but in case you are looking for other alternatives, you can put the code inside a multiline string and then eval
it like so:
> let myLongCode = `
... let a = 1;
... let b = 2;
... console.log(a + b);
... `;
> eval(myLongCode)
> 3
Of course this is a hack ;)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With