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