
다음 줄을 포함하는 '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 내부에 있다면 :args
vim 내부에서 설정할 수 있습니다.
:args file-1 file-2 ... file-n
보너스로 Unix에서는 다음을 수행할 수도 있습니다.
:args `find . -name Makefile`
(파일 경로에 개행 문자가 포함되어 있지 않고 일치하는 파일이 하나 이상 있다고 가정)
또는 귀하의 경우:
:args `cat filelist`