在REPL中更改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的提示被设置。
我想出了这样的事情,在input命令之后,它会以新的提示启动一个新的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) } }) }
这个解决scheme几乎就是当我closures原来的REPL时进程正在退出的问题。
我只是试图在进程启动后从脚本内部更改REPL提示符。 我愿意以任何方式来做到这一点。 理想情况下, prompt
通道采用了一个prompt
参数的函数,并允许您从函数内部设置它,然后我可以使用一个事件或其他东西。
你应该可以调用repl.setPrompt('foo> ');
改变提示。