私はLinux用のMicrosoft Windows([バージョン10.0.15063])サブシステムを使用していますが、BashでRangerファイルマネージャを使用してファイルを開くときに予期しない動作が観察されました。
たとえば、Sublime Text 3で.txt拡張子を開くには、~/.config/rifle.confを設定しました。
ext txt = "/mnt/c/Program Files/Sublime Text 3/sublime_text.exe" "$@"
Enterキーを押してデータを含む既存のテキストファイルを開くと、Sublimeはファイルを開きますが、Sublimeに表示されるファイルには実際のテキスト/データはありません。ファイルを閉じてWindowsファイルエクスプローラを使用して開くと、テキストはすぐそこにあります。
興味深いことに、Sublimeが見るパスは「C\mnt\c\path\to\my\file.txt」です。
これはWindowsで/ mntを見ることができない問題ですか? WSLでRangerを私のファイルマネージャとして使用したいと思います。この動作を見た人がいて、修正を見つけた人はいますか?みんなありがとうございます!
ベストアンサー1
laktakが説明したように、WSLはファイルパスをUnixパスからWindowsパスに変換しません。ちょうど1つだけ書きました。ポイント私がこの問題を処理した方法は次のとおりです。
Windows 10 Fall Creators UpdateがインストールされているWSLがあることを確認してください。 Rangerはrifle
ファイルハンドラとして使用され、対応する設定ファイルが必要ですrifle.conf
。ファイルが存在しない場合は、~/.config/ranger/rifle.conf
コマンドを実行してranger --copy-config=rifle
結果ファイルを編集します。
cmd.exe /C start "" <file>
RangerでWindowsアプリケーションを実行するには、Fall Creators Updateの後に実行されるRangerを使用します。sed
翻訳パスを使用してパスの問題を解決します。
ファイルに次のコードを追加すると、任意のファイル拡張子でrifle.conf
Windowsアプリケーションを実行できます。
ext docx?|xlsx?|pptx?|pdf = echo "$@" | sed -e 's;/mnt/\(.\);\1:;' -e 's/.*/"&"/' -e 's:/:\\:g' | xargs cmd.exe /C start ""
start
ファイル拡張子に関連付けられているアプリケーションを暗黙的に実行できるはずですが、何らかの理由で機能しない場合は、start
実行する実行可能ファイルを明示的に指定することもできます。 、、、などの""
いずれかを削除して追加するだけです。この場合、アプリケーションごとに1行が必要です。たとえば、excel
winword
powerpnt
AcroRd32.exe
rifle.conf
ext docx? = echo "$@" | sed -e 's;/mnt/\(.\);\1:;' -e 's/.*/"&"/' -e 's:/:\\:g' | xargs cmd.exe /C start winword
ext xlsx? = echo "$@" | sed -e 's;/mnt/\(.\);\1:;' -e 's/.*/"&"/' -e 's:/:\\:g' | xargs cmd.exe /C start excel
追加の読書