やりたいこと
WSLを使ってもっとWindowsを便利にしたい。次のことを実現する
- ファイルマネージャーをキーボードで利用できるようにする(rangerの利用)
- rangerからMS OfficeやAdobe Readerを使ってファイルを開けるようにする
- ドラッグアンドドロップのためにbashからExplorerを開けるようにしておく(パワポとかで画像をドラッグアンドドロップすることが多いため)
環境
- Windows10
- Windows Subsystem for Linux (WSL) (私はUbuntuを入れています)
実現方法
rangerのインストール
rangerとは、bash上で利用できるファイルマネージャーです。windowsでいうところのExplorerです。その大きな特徴はVimのようにファイルマネージャーを操作できる点です。つまりマウスがいりません。
こちらのサイトを参考にしました。
CLI で Linux ファイルマネージャ ranger を使うことのメモ
前提としてPythonがパソコンに入っていることが必要ですが、WSLなら最初から入っているので気にしなくてよいです。ただ、pip
が必要なので、入れておきます。
$ sudo apt-get install python-pip
次のコマンドを打てばrangerのインストールは終わりです。
$ sudo pip install http://nongnu.org/ranger/ranger-stable.tar.gz
bash上でranger
と打てば下のような画面が起動します(薄いのは私のbashの設定です、スミマセン)。
Vimのようにh,j,k,lで移動ができます(h, lはディレクトリの上下の階層への移動になっています。)。操作方法は上のリンクが詳しいです。
rangerではVimと同様に:q
で抜け出すことができますが、抜け出したときにrangerでいたフォルダに移動していたら何かと便利です。これを実現するためにはこちらのGitHubのbash_automatic_cd.shの内容を~/.bashrc
に記述しておきます。ただし、/usr/bin/ranger
はWSLの場合には次のように変えておきます。
/usr/local/bin/ranger
これでCtrl+o
でrangerが起動し、さらに:q
で抜けたときにフォルダ移動がされます。
rangerからWindows上のソフトウェアを使ってファイルを開く
さて、rangerはr
と打てばカーソルのある位置のファイルを開くことができます。私は普段の作業ではMS OfficeやAdobe Readerを使っているので、rangerでこれらを使ってファイルを開きたいわけです。
しかし、WSL上で、~/.profile
でOfficeやAdobeにパスを通しておいてもrangerから開こうとするとファイルが見つかりませんというエラーが出ます。これを解決するためには~/.config/ranger/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
ext pptx? =echo"$@" | sed-e's;/mnt/\(.\);\1:;'-e's/.*/"&"/'-e's:/:\\:g' | xargs cmd.exe /C start powerpnt
ext pdf =echo"$@" | sed-e's;/mnt/\(.\);\1:;'-e's/.*/"&"/'-e's:/:\\:g' | xargs cmd.exe /C start "C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe"
ext exe =echo"$@" | sed-e's;/mnt/\(.\);\1:;'-e's/.*/"&"/'-e's:/:\\:g' | xargs cmd.exe /C start
これを追加しておけば、r
コマンドをranger上で打ったときに、OfficeやAdobeが候補として出てきて、それを選択すればちゃんと開けるようになります。
bash上からExplorerを開けるようにする
rangerは非常に操作性が高く、使いやすいのですが、一つExplorerに負けている点があります。それがドラッグアンドドロップです。パワポなどを使っていると、画像を張るためにパワポ上にファイルをドラッグアンドドロップすることがあります。
rangerには残念ながらその機能がないため、仕方ないのでせめてbashからカレントディレクトリをExplorerで開けるようにしておきます。~/.bashrc
上に次を追加します。
function winp {pwd | sed-e"s;/mnt/c;C:;"-e"s;\/;\\\\\\\\;g" | xargs explorer.exe
}
これを通しておけば、bash上でwinp
と打てばカレントディレクトリがExplorerで開きます。