<()를 통해 vim에서 편집하려고 하면 파일을 더 이상 사용할 수 없습니다.

<()를 통해 vim에서 편집하려고 하면 파일을 더 이상 사용할 수 없습니다.

Mercurial을 사용할 때 나는 종종 다음과 같은 작업을 수행합니다.

vim <(hg cat -r 42 somefile)

하지만 수백 줄이 넘는 파일을 사용하려고 하면 vim에서 읽기 오류가 발생하고 처음 몇 백 줄만 포함됩니다. vim 대신 gvim을 사용하면 다음과 같은 오류가 발생합니다.

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)

관련 정보