Linux 用 Windows サブシステムで Ranger を使用してファイルを開く動作

Linux 用 Windows サブシステムで Ranger を使用してファイルを開く動作

私は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.confWindowsアプリケーションを実行できます。

ext docx?|xlsx?|pptx?|pdf = echo "$@" | sed -e 's;/mnt/\(.\);\1:;' -e 's/.*/"&"/' -e 's:/:\\:g' | xargs cmd.exe /C start ""

startファイル拡張子に関連付けられているアプリケーションを暗黙的に実行できるはずですが、何らかの理由で機能しない場合は、start実行する実行可能ファイルを明示的に指定することもできます。 、、、などの""いずれかを削除して追加するだけです。この場合、アプリケーションごとに1行が必要です。たとえば、excelwinwordpowerpntAcroRd32.exerifle.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

追加の読書

おすすめ記事