두 명령 출력을 비교하려고 합니다(파일 없음).
vimdiff "$(tail /tmp/cachain.pem)" "$(tail /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem)"
리디렉션, 파이프를 사용해 보았지만 vim - -c
뭔가 빠진 것 같습니다. 누구든지 도와줄 수 있나요?
답변1
당신은 $(…)
에 대해 혼란스러워하고 있습니다 <(…)
. 출력을 다음과 같이 전달하는 전자를 사용했습니다.논쟁도착하다 vimdiff
. 예를 들어, 마지막 줄에 가 /path/to/foo
포함되어 있으면 bar bar bar
다음 명령을 실행하세요.
echo $(tail -1 /path/to/foo)
동등하다
echo bar bar bar
대신에 이것을 사용해야 합니다 <(…)
.프로세스 교체, 다음과 같이 출력됩니다.더미 파일vimdiff
명령 에 . 따라서 다음을 이용하시기 바랍니다.
vimdiff <(tail /tmp/cachain.pem) <(tail /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem)
bash
이는 및 에서 작동 zsh
하지만 분명히 다음이 있습니다.절대에서 프로세스 교체를 수행합니다 tcsh
.
답변2
존재하다fish
껍데기, 이것psub
주문하다프로세스 대체를 수행하면 다음과 같은 예가 됩니다.
vimdiff (tail /tmp/cachain.pem | psub) (tail /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem | psub)
그런데, 해당 파일의 특정 Git 버전으로 파일을 편집하는 것은 프로세스 대체 및 vimdiff
.definition( fish
구문에서는 있지만 POSIX 쉘 구문에 쉽게 적응할 수 있음) 이라고 생각합니다.
function vimgitdiff
vimdiff $argv[1] (git show $argv[2]:$argv[1] | psub)
end
그럼 전화해
vimgitdiff path/to/file branch-name
왼쪽 작업 트리에서 현재 상태를 열고 Vim
오른쪽 작업 트리에서 현재 상태를 엽니다.path/to/file
branch-name