【发布时间】:2021-01-07 08:13:06
【问题描述】:
我想在 VI 终端打开一个 .4gl 文件并写入,这是我目前的代码:
let p_command = "test -f ", MTGENDIR CLIPPED,"/",p_prog clipped,".4gl"
run p_command returning p_status
let p_command = "vi ",p_prog clipped,".4gl"
--let p_command = "w ",p_prog clipped,".4gl"
--let p_command = ":w ",p_prog clipped,".4gl"
run p_command
这是我在调试器进入步骤 vi 时遇到的错误,然后它挂起:
(fgldb) next
376 let p_command = "vi ",p_prog clipped,".4gl"
(fgldb) next
377 run p_command
(fgldb) next
Vim: Warning: Output is not to a terminal
Vim: Warning: Input is not from a terminal
如果我尝试使用上面的注释代码(w 或 :w)编写它会崩溃并显示此错误:
The DVM process crashed. Please contact FourJs support.
DVM has encountered a problem. Execution of 'mt_gen' stopped
还有其他方法可以在 Genero 中写入 .4gl 文件吗?
【问题讨论】:
-
在程序中使用
vim(或vi)很奇怪,特别是如果您想以编程方式控制编辑器的功能。就 I4GL 程序而言,“免提”运行它是一回事,用户可以通过正常的终端交互来做他们想做的事情,但是让程序告诉vim该做什么显然是不平凡和非正统的.您可能不得不涉及管道、伪终端和其他深奥的功能,这意味着将 C 代码功能添加到您的 I4GL/Genero 程序中。您很可能应该重新考虑自己在做什么。 -
这至少具有XY Problem 的一些特征。你能解释一下你希望达到的目标吗?在高层次上,不一定要描述如何使用
vim来实现它,不管“它”是什么。