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.plWindowsの基本テキストで開きます編集する、ノート。

もしそうなら、CygwinにWindows設定テキストでプレーンテキストファイルを開くようにする方法はありますか?観客拡張機能がその視聴者にまだ接続されていない場合も同様ですか?

注:Bashプロンプトでこれを手動でテストしていますが、これをユーザーが編集できるようにPerlファイルを開くことができる共有スクリプトに入れたいと思います。だから私の次の関心事は、これを他のユーザーにどのように移植するかです。同じ理由で、私は「ちょうどVimを使用しよう!」ということには興味がありません。解決策。

これまでの私の考えのいくつかは次のとおりです。

  1. 開こうとしているすべてのファイル形式を同じビューア(私の場合はNotepad ++)に関連付けます。欠点は、新しいファイル形式を開くたびにWindowsファイルの関連付けを更新する必要があり、他のユーザーも同じことを行う必要があることです。
  2. Windowsのデフォルトテキストの変更編集する、エクスプローラウィンドウで右クリック - >編集するときに使用されるアプリケーションです。これが可能かどうかはわかりませんが、可能であれば悪くない選択でしょう。つまり、1回限りの構成ステップでこれを他のユーザーに渡すことができます。
  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

関連情報