편집된 vim 파일을 복구하는 더 나은 방법

편집된 vim 파일을 복구하는 더 나은 방법

내 Linux 상자는 vim많은 수의 열린 세션으로 인해 지속적으로 막혀 있습니다. 작업을 계속하려면 모든 파일을 열어서 저장된 파일을 계속 사용할지, 스왑 파일을 사용할지 결정해야 합니다. 나는 사용한다

for file in $(find ~/git -name *.swp); do
  gvim "$(echo $file | sed 's/.swp$//;s_/\._/_')"
done

이는 내가 필요한 작업을 수행합니다(예, 여러 개의 버퍼가 있는 별도의 인스턴스를 선호합니다 gvim. 예, 이론상으로는 실제 생활에 없는 일부 경로 이름에서는 실패할 수 있습니다). 그러나 이는 성가신 방법입니다. 스크립트를 작성하세요.

차라리 다음과 같은 일을 하고 싶습니다

find ~/git -name *.swp -exec gvim -r {} \;

하지만 그렇다고 해서 저장된 버전을 계속 사용할지 아니면 버전을 복원할지 결정하게 되는 것은 아닙니다.

내 목표를 달성할 수 있는 좀 더 직접적인 방법을 생각해 볼 수 있나요?

답변1

gvim파일 이름을 조작하는 옵션이 없는 명령과 gvim -r스왑 파일을 전달하는 또 다른 명령이 있습니다 .

for루프 기능이 마음에 든다면 다음을 시도해 보세요(이것은 bash 전용 버전입니다):

find ~/git -name *.swp -exec bash -c 'f=${1%.swp}; f=${f/\/./\/}; gvim "%f"' x {} \;

bash에 "x"를 전달하면 $0이 "x"로 설정되므로 조회 {}자리 표시자는 $1이 됩니다.

관련 정보