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