Cygwin: 확장명이 달리 연결되어 있어도 기본 Windows 텍스트 뷰어에서 파일 열기

Cygwin: 확장명이 달리 연결되어 있어도 기본 Windows 텍스트 뷰어에서 파일 열기

Cygwin의 파일을 Windows 구성 텍스트로 열고 싶습니다.청중, 파일 형식이 아직 텍스트 뷰어와 연결되지 않은 경우에도 마찬가지입니다(즉, Windows에서는 해당 파일을 텍스트 파일로 처리하지 않습니다).

내 특별한 경우에는 일반 텍스트 파일 보기 및 코드 편집에 Notepad++를 사용하고 이를 대부분의 실행 불가능한 일반 텍스트 파일 확장자(.txt, .log 등)와 연결하지만 실행 파일 확장자( .pl, .py 등). 이제 Cygwin bash 프롬프트에서 Perl 파일을 열 수 있기를 원합니다.

cygstart를 사용하여 해당 파일 형식과 관련된 Windows 응용 프로그램으로 파일을 열 수 있다는 것을 알고 있습니다. 따라서 예를 들어 cygstart Readme.txt.txt 확장자를 기반으로 Notepad++에서 열립니다. 하지만 내가 cygstart prog.pl시도하면달리기.pl 확장자 때문에 Windows의 기본 Perl 인터프리터를 사용합니다.

저도 해봤는데 cygstart -e prog.pl윈도우 기본 텍스트로 열립니다편집하다, 공책.

그렇다면 Cygwin이 Windows 구성 텍스트에서 일반 텍스트 파일을 열도록 하는 방법이 있습니까?청중확장 프로그램이 해당 시청자와 아직 연결되지 않은 경우에도 마찬가지입니까?

참고: Bash 프롬프트에서 이것을 수동으로 테스트하고 있지만 이것을 사용자가 편집할 수 있도록 Perl 파일을 열 수 있는 공유 스크립트에 넣고 싶습니다. 그래서 나의 다음 관심사는 이것을 다른 사용자에게 어떻게 이식할 것인가입니다. 같은 이유로 나는 "그냥 Vim을 사용하자!"는 것에는 관심이 없습니다. 해결책.

지금까지 내 생각 중 일부는 다음과 같습니다.

  1. 열려고 하는 모든 파일 형식을 동일한 뷰어(제 경우에는 Notepad++)와 연결합니다. 단점은 새 파일 형식을 열 때마다 Windows 파일 연결을 업데이트해야 하며 다른 사용자도 동일한 작업을 수행해야 한다는 것입니다.
  2. Windows 기본 텍스트 변경편집하다, 탐색기 창에서 마우스 오른쪽 버튼 클릭 -> 편집을 할 때 사용되는 응용 프로그램입니다. 이게 가능할지는 모르겠지만, 가능하다면 나쁘지 않은 선택이겠지요. 즉, 일회성 구성 단계로 이를 다른 사용자에게 전달할 수 있습니다.
  3. 원하는 뷰어 경로를 별칭으로 하드코딩하여 사용하세요. 예를 들어 이제 별칭이 있으므로 이 방법을 사용하려는 모든 사람이 동일한 편집기를 설치했거나 별칭 설정 방법을 알고 있다고 가정합니다 alias npp='"C:/Program Files (x86)/Notepad++/notepad++.exe"'.npp prog.pl
  4. 구성된 Windows 텍스트 파일의 경로 가져오기청중(아마도 cygstart에서?) 그런 다음 해당 경로를 사용하여 관련되지 않은 다른 파일 형식을 엽니다.

답변1

귀하의 요구 사항을 이해한다고 가정하면 다음 bash 스크립트는 첫 번째 인수(Windows 경로)에서 정의된 편집기를 시작합니다.

#!/bin/bash
if [ $# -ne 1 ]
then
    echo "launch your editor defined in this script on any file "
    echo "Usage : " $0 "filename"
    exit 1
fi

if [ -z "${EDITOR}" ]
then
    EDITOR="C:\Program Files\Notepad++\notepad++.exe"
fi
echo "using EDITOR as " ${EDITOR}

CYG_EDITOR=$(echo -n $(cygpath -u $EDITOR))
echo "using CYG_EDITOR as " ${CYG_EDITOR}

"${CYG_EDITOR}" $1 &

예를 들어 이렇게 전화하면

$ ./edit-text.sh edit-text.sh
using EDITOR as  C:\Program Files\Notepad++\notepad++.exe
using CYG_EDITOR as  /cygdrive/c/Program Files/Notepad++/notepad++.exe

Notepad++ 자체 호출

더 복잡한 파일 이름을 처리하려면 "-wa"를 사용할 수 있습니다.

$ cygpath -wa ../tmp/edit-text.sh
D:\cyg_pub\tmp\edit-text.sh

관련 정보