使用 Mercurial 时,我经常做类似的事情
vim <(hg cat -r 42 somefile)
但是,如果我尝试使用大于几百行的文件,我会在 vim 中收到读取错误,并且只包含前几百行。如果我使用 gvim 而不是 vim,我会收到类似的错误
E211: FIle "/proc/3546/fd/63" no longer available
这不是应该起作用吗?我不知道它是否相关,但我在 bash 和 zsh 中都尝试过,结果相同,我也尝试过
cat <(hg cat -r 42 somefile)
正如我所期望的那样打印整个文件。
答案1
这些是管道,而不是常规文件。当vim
关闭文件描述符时它就会消失。你可以这样做:
hg cat -r 42 somefile | vim -
(vim
据说它可能不是一个常规文件,因此会有相应的行为。如果您不想抱怨退出时数据尚未保存,请使用vim -R -
或)。view -
vim
或者zsh
使用临时文件:
vim =(hg cat -r 42 somefile)