Vim 실행 반복 [닫기]

Vim 실행 반복 [닫기]

저는 사용자가 여러 파일을 편집할 수 있는 스크립트를 작성 중입니다. 각 파일을 시작하려고합니다 vim.

파일 이름을 배열에 넣고 배열의 각 요소를 반복하고 각 반복마다 vim을 시작해 보았습니다. 그러나 이는 vim첫 번째 요소에 대해서만 시작되고 스크립트는 중지됩니다. 내 목표를 어떻게 달성할 수 있나요?

답변1

루프 내에서 대화형 콘텐츠를 실행하려면 표준 입력과 다른 파일 설명을 사용해야 합니다.

#!/bin/bash

while read -r file <&3; do

  vim "$file" || break

done 3< <(find . -type f)

또는 비정상적인 파일 이름을 지원하려면 널 바이트 구분 기호를 사용하십시오.

#!/bin/bash

while IFS= read -r -d '' file <&3; do

  vim -- "$file" || break

done 3< <(find . -type f -print0)

의 출력은 find프로세스 대체를 통해 파일 설명자 3에 공급된 다음 를 read통해 로 전달됩니다 <&3.

/편집: 댓글에서 Wolfe의 제안을 기반으로 합니다.

답변2

나에게 이것은 작동합니다 :

#!/bin/sh

for f in *.txt
do
    vim "$f"
done

각 파일에 대해 vim을 열고 이전 파일을 닫은 후 다음 파일을 엽니다.

관련 정보