从 REPL 中更改 REPL 提示
Change REPL prompt from within the REPL
我正在尝试使用 REPL 中给出的文本更改 Node 的 REPL 提示。
我原来的尝试是这样的。
import repl from 'repl'
let PROMPT = 'original > '
repl.start({
ignoreUndefined: true,
prompt: PROMPT,
eval: (text, context, filename, callback) => {
PROMPT = `${text} >`
return callback()
}
})
我意识到这是行不通的,因为 repl 的提示是在进程启动时设置的。
我想到了这样的东西,它在输入命令后用新的提示启动一个新的 repl。
import repl from 'repl'
let PROMPT = 'original > '
let REPL = createRepl(PROMPT)
function createRepl (prompt) {
return repl.start({
ignoreUndefined: true,
prompt: PROMPT,
eval: (text, context, filename, callback) => {
PROMPT = `${text.replace(/\n/, '')} >`
REPL.close()
REPL = createRepl(PROMPT)
}
})
}
这个解决方案差不多了,问题是当我关闭原始REPL时进程正在退出。
我只是想在进程启动后从脚本内部更改 REPL 提示。我愿意以任何方式做到这一点。理想情况下,prompt
属性采用带有 prompt
参数的函数,并允许您从函数内部设置它,然后我可以使用事件或其他东西。
您应该可以调用 repl.setPrompt('foo> ');
来更改提示。
我正在尝试使用 REPL 中给出的文本更改 Node 的 REPL 提示。
我原来的尝试是这样的。
import repl from 'repl'
let PROMPT = 'original > '
repl.start({
ignoreUndefined: true,
prompt: PROMPT,
eval: (text, context, filename, callback) => {
PROMPT = `${text} >`
return callback()
}
})
我意识到这是行不通的,因为 repl 的提示是在进程启动时设置的。
我想到了这样的东西,它在输入命令后用新的提示启动一个新的 repl。
import repl from 'repl'
let PROMPT = 'original > '
let REPL = createRepl(PROMPT)
function createRepl (prompt) {
return repl.start({
ignoreUndefined: true,
prompt: PROMPT,
eval: (text, context, filename, callback) => {
PROMPT = `${text.replace(/\n/, '')} >`
REPL.close()
REPL = createRepl(PROMPT)
}
})
}
这个解决方案差不多了,问题是当我关闭原始REPL时进程正在退出。
我只是想在进程启动后从脚本内部更改 REPL 提示。我愿意以任何方式做到这一点。理想情况下,prompt
属性采用带有 prompt
参数的函数,并允许您从函数内部设置它,然后我可以使用事件或其他东西。
您应该可以调用 repl.setPrompt('foo> ');
来更改提示。