Как вставить многострочный текст в nodejs REPL без спама терминала

Я работаю с nodejs REPL через терминал Linux. У меня большая часть кода, который я хочу вставить в nodejs. Однако вставка кода приводит к тому, что терминал ненадолго станет неактивным. Это связано с тем, что REPL накладывает следующий текст на каждую строку выражения:

Array                 Boolean               Date                  Error                 EvalError
Function              Infinity              JSON                  Math                  NaN
Number                Object                RangeError            ReferenceError        RegExp
String                SyntaxError           TypeError             URIError              decodeURI
decodeURIComponent    encodeURI             encodeURIComponent    eval                  isFinite
isNaN                 parseFloat            parseInt              undefined                 

ArrayBuffer           Buffer                DataView              FMM                   Float32Array
Float64Array          GLOBAL                Int16Array            Int32Array            Int8Array
Uint16Array           Uint32Array           Uint8Array            Uint8ClampedArray     _
assert                buffer                child_process         clearImmediate        clearInterval
clearTimeout          cluster               console               crypto                dgram
dns                   domain                escape                events                fs
global                http                  https                 module                net
os                    path                  process               punycode              querystring
readline              require               root                  setImmediate          setInterval
setTimeout            stream                string_decoder        tls                   tty
unescape              url                   util                  vm                    zlib    

__defineGetter__      __defineSetter__      __lookupGetter__      __lookupSetter__      constructor
hasOwnProperty        isPrototypeOf         propertyIsEnumerable  toLocaleString        toString
valueOf               

Это немного раздражает. Я знаю, что могу обойти это, вставив его в файл и загрузив его в REPL:

.load some-file.js

Но я хочу знать, есть ли способ сделать это, вставив один, и я уверен, что для этого должно быть время и место.

Ответ 1

Проблема заключается в том, что ваш код использует вкладки для отступов, а Node.js REPL обрабатывает вкладки как подсказки для автозаполнения.

Чтобы устранить эту проблему, используйте команду .editor, которая игнорирует вкладки:

$ node
> .editor
// Entering editor mode (^D to finish, ^C to cancel)
function a() {
    console.log('hello world');
}
a();
// type ^D here
hello world
undefined
> 

.editor - это функция, добавленная в Node.js v6.4.0, поэтому, если вы используете версию старше, чем что вам не повезло.

Ознакомьтесь с Node.js documentation для получения дополнительной информации об этих специальных командах REPL.

Ответ 2

Просто поместите двойные кавычки вокруг всего

"aaa bbb ccc ddd"

и вставьте его, включая те кавычки