我需要从我的python脚本在linux上显示两个文本文件的彩色差异,我正在使用vimdiff。我能够使用子进程运行vimdiff,但我无法控制回python脚本。它永远保持在vimdiff模式,直到我执行Ctrl + Z. 我想要做的是打开vimdiff并在从键盘接收某种输入后返回到python脚本。我也尝试过信号模块,但无法解决问题。
到目前为止,我是python的初学者,我试过的是:
import subprocess
p = subprocess.Popen(["vimdiff","test1.txt", "test2.txt"])
try:
p.wait()
except KeyboardInterrupt:
p.kill()
任何帮助将不胜感激
答案 0 :(得分:0)
正如我所知,vim使用ncurses库。 对于基于运行ncurses的应用程序使用模块pexpect:
import pexpect
child = pexpect.spawn("vim")
child.interact()
答案 1 :(得分:0)
vim
是一个全屏幕文本模式程序,可以通过屏幕进行操作。避免管道输入/输出。更好地运行
subprocess.call(["vimdiff", "test1.txt", "test2.txt"])
或只是
os.system("vimdiff test1.txt test2.txt")