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

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

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

text1.txt
text2.txt
text3.txt 

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

$ cat filelist | vim - 

그리고

$ vim < cat filelist

하지만 원하는 결과가 나오지 않습니다.

답변1

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

vim $(cat filelist)

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

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`

관련 정보