파일 목록이 작동하지 않는 vim에서 파일 열기

파일 목록이 작동하지 않는 vim에서 파일 열기

vim $(cat filelist)이전에 제안한 대로 vim으로 파일을 열어 보았습니다.질문.

다음 파일이 있다고 가정합니다.

~/Workspace/bar/foo.cpp

가 포함된 경우 vim $(cat filelist)에서 실행하면 ~/Workspace올바르게 열립니다 . 그러나 이 명령은 . 절대 경로를 사용하면 명령이 실패하는 이유를 알고 싶습니다.foo.cppfilelistbar/foo.cppfilelist~/Workspace/bar/foo.cpp

답변1

이는 쉘에서 다양한 유형의 확장이 수행되는 순서 때문입니다. 맨 bash페이지에는 다음과 같이 나와 있습니다.

확장은 단어로 분할된 후 명령줄에서 수행됩니다. 수행되는 확장에는 중괄호 확장, 물결표 확장, 매개변수 및 변수 확장, 명령 대체, 산술 확장, 단어 분할, 경로 이름 확장 등 7가지 종류가 수행됩니다.

~is 물결표 확장을 대체 하고 $(...)is 명령 대체를 사용합니다. 이제 명령 대체가 수행된 후에는 더 이상 물결표 대체가 없음을 알 수 있습니다. 실제 절대 경로(파일 시스템 루트에서 시작 /)를 사용하면 작동합니다.

그러나 다음을 사용하여 직접 확장을 수행할 수 있습니다 sed.

vim $(sed "s_~_${HOME}_g" filelist)

관련 정보