파일 목록을 사용하여 Vim에서 여러 파일 열기

파일 목록을 사용하여 Vim에서 여러 파일 열기

다음 줄을 포함하는 "filelist" 파일이 있습니다.

text1.txt
text2.txt
text3.txt 

vim에서 이 3개 파일을 여는 명령줄 호출을 찾고 있습니다. 나는 다음을 시도했다:

$ cat filelist | vim - 

그리고

$ vim < cat filelist

그러나 이들은 예상한 결과를 얻지 못했습니다.

답변1

파일 이름에 공백이나 기타 내용이 포함되어 있지 않은 경우문제가 있는사용할 수 있는 문자

vim $(cat filelist)

공백이 있는 파일 이름의 경우 사용이 xargs더 강력합니다( xargs여기서는 GNU 특정 옵션이 사용됨).

xargs --delimiter '\n' --arg-file=filelist vim --

답변2

그리고 zsh:

vim -- ${(f)"$(<filelist)"}

버전 4.0+ bash:

readarray -r files < filelist &&
  vim -- "${files[@]}"

Bourne과 유사한 쉘의 경우( zsh및 포함 bash):

(IFS='
'; set -f; exec vim -- `cat filelist`)

GNU 사용 xargs( 파일이 비어 있을 때 실행을 -r방지하기 위해 사용되지만 vim다른 방법과 달리 빈 줄이 있는 경우 건너뛰지 않음):

xargs -rd '\n' -a filelist vim --

답변3

모두 열려면index.php현재 작업 경로에서

vim -p `find . -name index.php`

답변4

이미 vim을 사용하고 있다면 :argsvim에서 다음과 같이 설정할 수 있습니다.

:args file-1 file-2 ... file-n

또는 Unix에서는 다음을 수행할 수 있습니다.

:args `find . -name Makefile`

(파일 경로에 개행 문자가 포함되어 있지 않고 일치하는 파일이 하나 이상 있다고 가정)

또는 귀하의 경우:

:args `cat filelist`

관련 정보