はじめに
前回までの記事(下記ご参照)で、Vimライクなキーボード操作がたのしいファイルマネジャー、Rangerについて掘り下げてきました。
- その1:Rangerの魅力的なリソースをウェブからピックアップ
- その2:「終われない問題」への対処法
- その3:標準機能の中から、特に便利な機能の紹介
今回の記事では、Rangerをさらに使いやすくするカスタマイズの方法に焦点を当てます。特にmacOSユーザには、役立つ情報が盛り沢山となっています。
カスタマイズの準備
ranger
は高いカスタマイズ性をもつファイルマネージャーです。カスタマイズを始める前に、デフォルトの設定ファイルをユーザのホームディレクトリへコピーします。
ranger --copy-config=all
これで、~/.config/ranger/
にデフォルトの設定ファイルがコピーされます。
- rc.conf:メインの設定ファイル。キーバインドや動作に関するオプションをカスタマイズします。
- scope.sh:ファイルのプレビュー機能に関連する設定です。
-
rifle.conf:
rifle
はranger
のファイルランチャーで、どのアプリで特定のファイルタイプを開くかを定義します。 -
commands.py:
ranger
のコマンドをカスタマイズするためのファイルです。
これらの設定ファイルを編集し、rangerを再起動することで変更が反映されます。
📁 gf
でFinderを開く
📌 背景と利点:
ranger
を使用する際、時々GUIベースのファイルマネージャーであるFinderが必要になる場面があります。このカスタマイズを適用することで、ranger
から直接Finderを開くことができ、作業の効率が向上します。
ranger
は高機能なファイルマネジャーですが、macOSのFinderに特有の機能を使いたくなることも時折あります。とくにranger
への移行段階で、Finderの機能を使いたくなることがしばしばあります。
そこで、現在選択しているファイルやディレクトリをFinderで開く機能の追加方法を紹介します。
commands.py
の末尾に以下のコードを追加します。
class show_files_in_finder(Command):
"""
:show_files_in_finder
Present selected files in finder
"""
def execute(self):
self.fm.run('open .', flags='f')
次に、rc.conf
に以下のmap gf
の行を追加します。
map gR eval fm.cd(ranger.RANGERDIR)
map g/ cd /
map g? cd /usr/share/doc/ranger
map gf show_files_in_finder # この行を追加
ranger
を再起動し、gf
とタイプすると、Finderが開きます。
📝 まとめ:
このカスタマイズにより、ranger
から簡単にFinderを起動できるようになり、ファイルの管理や操作がより柔軟になります。
👉 次に、ファイルの安全な削除に関するカスタマイズを見ていきましょう。
🗑️ dT
でゴミ箱にファイルを移動
📌 背景と利点:
ファイルを完全に削除する代わりにゴミ箱に一時的に移動することで、誤ってファイルを削除した場合のリスクを低減します。このカスタマイズにより、そのような安全な削除操作をranger
内で簡単に行うことができます。
ranger
でのファイル削除コマンドdD
は、ゴミ箱を経由せずにファイルを即座に削除します。従って、誤ってファイルを削除した場合の復旧が難しくなります。
もうひとつの削除コマンド、キーバインドdT
はconsole trash
に割り当てられていますが、macOSの「ゴミ箱に入れる」機能として動作しません。この動作を機能させるために、まずtrash
ツールをインストールし、次にranger
のキーバインドを設定します。
ターミナルを開き、trash
をインストールします:
brew install trash
続いて、rc.conf
に以下の行を追加します。
map dD console delete
# map dT console trash # これがデフォルトの設定です
map dT shell trash %s # この行を新たに追加
ranger
を再起動後、任意のファイルやフォルダを選択し、dT
をタイプすることで、選択したアイテムをゴミ箱に移動できます。
📝 まとめ:
dT
コマンドの導入により、ファイルの安全な削除がranger
内で手軽に実現できるようになります。
👉 macOSには「クイックルック」という便利な機能があります。次のセクションでは、この機能をranger
でどのように活用できるかを探ります。
🔍 ranger
でクイックルック
📌 背景と利点:
macOSのクイックルック機能は、ファイルの内容を迅速に確認するのに非常に便利です。このカスタマイズを導入することで、ranger
内からもこの機能を利用できるようになります。
macOSのFinderのクイックルック機能(スペースバーでのプレビュー)は、多くのユーザーにとって非常に便利です。この機能をranger
で利用できれば、さらに快適なファイル操作が実現できます。
macOSには、このクイックルックを行うためのコマンドqlmanage
がデフォルトで含まれています。このコマンドをrc.conf
に追加すると、キー操作でクイックルックを利用できます
map W display_log
map w taskview_open
map S shell $SHELL
map x shell qlmanage -p %s # この行を追加
利用可能な未使用のキーを調べる場合、次のコマンドが役立ちます。
ranger --list-unused-keys
スペースキーを使用してクイックルックを起動したい場合は、以下のように設定すると良いでしょう。
map <Space> shell qlmanage -p %s
map x mark_files toggle=True
📝 まとめ:
クイックルックのカスタマイズにより、ranger
内でのファイルの高速プレビューが可能となり、作業の効率が大幅に向上します。
👉 次に、PDFという普及しているフォーマットのドキュメントのテキスト情報をどのように効率的にプレビューできるかについて詳しく見ていきましょう。
📄 PDF書類のテキストをプレビュー表示
📌 背景と利点:
PDFのビジュアルプレビューの代わりにテキストベースのプレビューを使用すると便利です。このカスタマイズにより、ranger
でPDFのテキスト内容を直接プレビューできるようになります。
ranger
は、ファイルを選択すると右側のペインにプレビューを表示します。このプレビュー機能は、画像などのビジュアルなコンテンツに特に役立ちます。しかし、この画像プレビューは不安定で、時折バックグランドタスクが残存することがあります。また、多くの場合、テキストコンテンツの直接的なプレビューが役立ちます。
前のセクションで、クイックルックを活用してPDFのビジュアルプレビューを得られるよう設定しました。このセクションでは、テキストベースのプレビューを取得する方法に焦点を当てます。
まず、画像のプレビュー機能をオフにして、コンテンツのテキストを中心にしたプレビューを優先します。rc.conf
で以下の設定を確認してください。デフォルトではfalse
に設定されています。
set preview_images false
次に、PDFのテキスト内容を取得するためにmutool
をインストールします。
brew install mupdf-tools
pdftotxt
もテキスト抽出ツールとして使用可能ですが、多様なエンコーディングに対応している点でmutool
が優れているため、ここではmutool
を採用します。
最後に、scope.sh
のPDFプレビュー部分を以下のように書き換えます。
## PDF
pdf)
## Preview as text conversion
mutool draw -F txt -i -- "${FILE_PATH}" 1-10 | \
fmt -w "${PV_WIDTH}" | \
awk '/^$/{if (p) next };1 {p=1} {print}' && exit 5
pdftotext -l 10 -nopgbrk -q -- "${FILE_PATH}" - | \
fmt -w "${PV_WIDTH}" && exit 5
exiftool "${FILE_PATH}" && exit 5
exit 1;;
この設定では:
-
mutool
をpdftotext
よりも優先的に使用します。 - パラグラフ間の不要な空白行を
awk
コマンドで削除して、コンテンツを簡潔に表示します。
これで、ranger
内でPDFファイルを選択した際に、そのテキスト内容のプレビューを取得することができます。さらに、i
キーを押すとプレビューテキストを全画面で表示できます。
※サンプルのPDFファイルは、目次、内閣府の位置付け、内閣府の組織の概要を利用させていただきました。
ranger'内で
zmコマンドを使用して
set mouse_enabled!`を実行すると、マウス操作が有効になります。これにより、プレビューで表示されているテキストをマウスで選択し、コピーすることができるようになります。
📝 まとめ:
このカスタマイズにより、ranger
内でPDFのテキスト内容を直接プレビュー表示できるようになります。
👉 さらに、画像からのテキスト抽出という、OCR技術を利用したカスタマイズについても詳しく見ていきましょう。
📸 画像内のテキストをプレビュー表示
📌 背景と利点:
画像ファイルにはテキスト情報が埋め込まれていることが多く、これらのテキストを素早く確認することが求められる場面があります。このカスタマイズを適用することで、ranger
内から画像に含まれるテキストを直接抽出してプレビュー表示することができ、情報へのアクセスが迅速になります。
ranger
のプレビュー機能の強力なところは、異なるファイル形式に対する柔軟性です。このセクションでは、画像ファイルからテキストを抽出し、プレビューとして表示する方法に焦点を当てます。
macOS Venturaは、ビルトインのOCR機能を搭載しており、日本語のテキスト抽出も高精度に行えます。これを利用し、スクリーンショットなどの画像ファイルもテキスト・プレビューを表示できます。
まず、OCRを実行するためのスクリプトocr.sh
を取得します。doraTeX氏のGitHubリポジトリからこのスクリプトをダウンロードし、~/bin
などのパスの通ったディレクトリに配置してください。スクリプトの詳しい説明は、doraTeX氏のブログ記事で確認できます。
次に、scope.sh
にocr.sh
を使用する設定を追加します。
## Image
image/*)
## Preview as text conversion
# img2txt --gamma=0.6 --width="${PV_WIDTH}" -- "${FILE_PATH}" && exit 4
ocr.sh "${FILE_PATH}" | fmt -w "${PV_WIDTH}" && exit 5 # この行を追加
exiftool "${FILE_PATH}" && exit 6
exit 1;;
この設定により、ranger
で画像ファイルを選択したときにテキストベースのプレビューを直接表示できます。さらに、i
キーを押すと、プレビューテキストを全画面で確認できます。この機能は、スクリーンショットからテキスト情報を取得するなど、多岐にわたる用途で利用できます。
ranger'内で
zmコマンドを使用して
set mouse_enabled!`を実行すると、マウス操作が有効になります。これにより、プレビューで表示されているテキストをマウスで選択し、コピーすることができるようになります。
📝 まとめ:
このカスタマイズにより、ranger
を使用して画像からテキストを直接抽出し、その内容をプレビューとして表示できるようになります。これにより、画像に埋め込まれた情報へのアクセスが大幅に効率化されます。
👉 次に、広く利用されているフォーマットである、マイクロソフト・オフィス書類に関するプレビューのカスタマイズについて紹介します。
📊 オフィス書類のプレビュー表示
📌 背景と利点:
ビジネスの場で頻繁に使用されるマイクロソフトのオフィス書類(Word、Excel、PowerPointなど)は、ranger
内でのプレビューできると非常に便利です。このカスタマイズを導入することで、これらのファイルの内容をranger
から迅速に確認できるようになります。
マイクロソフト・オフィスの書類、特にWord、Excel、PowerPointのプレビューがあると役立ちます。ここでは、Office書類をテキストプレビューする設定を説明します。
対象とする拡張子はdocx
、xlsx
、pptx
です。
Wordの設定
pandoc
を使用してテキスト抽出を行います。まだインストールしていない場合は次のコマンドでインストールします。
brew install pandoc
scope.sh
はデフォルトでpandoc
によるテキストプレビュー設定が含まれているので、追加の設定は不要です。
Excelの設定
Excelのテキスト抽出にはin2csv
を利用します。必要なツールをインストールします。
brew install csvkit
次に、scope.sh
の設定を追加します。
## XLSX
xlsx)
## Preview as csv conversion
## Uses: https://github.com/dilshod/xlsx2csv
# xlsx2csv -- "${FILE_PATH}" && exit 5 # デフォルトの設定
in2csv -- "${FILE_PATH}" | sed -e 's/,\{2,\}/ /g' -e 's/^,//' && exit 5 # この行を追加
exit 1;;
多数のカンマを除去するために、sed
コマンドを利用しています。
PowerPointの設定
PowerPointのテキスト抽出にはpptx2txt.sh
を使用します。welcheb氏のリポジトリからスクリプトをダウンロードし、適切なディレクトリに配置してください。
そして、scope.sh
に以下の設定を追加します。
## XLSX
xlsx)
## Preview as csv conversion
(途中は省略)
## PPTX
pptx)
## preview as text conversion
pptx2txt.sh "${FILE_PATH}" | fmt -w "${PV_WIDTH}" && exit 5
exit 1;;
これで、マイクロソフト・オフィスの主要な書類をテキストプレビューする設定が完了しました。マウス選択してコピーができますので、オフィス書類からプレーンテキストを迅速に取得するのにも適しています。
ranger
内でzm
コマンドを実行すると、マウス操作が有効になります。これにより、プレビュー表示のテキストをマウスで選択・コピーすることができます。
📝 まとめ:
このカスタマイズにより、マイクロソフト・オフィス書類のテキストコンテンツをranger
内で直接プレビューすることができ、作業の効率と生産性が向上します。
👉 最後に、PDFやオフィス書類のテキスト情報をエディタ開く方法を、詳しく見ていきましょう。
📝 PDFやオフィス書類をエディタで開く
📌 背景と利点:
PDFやオフィス書類は情報を取り扱う際の主要なフォーマットですが、これらの内容を高機能なエディタで素早く検索したり、必要なテキスト部分を簡単にコピーしたりするのは一般的には難しいです。このカスタマイズを適用することで、ranger
と統合されたエディタの全ての機能を利用して、これらのドキュメントのテキスト情報を効率的に扱うことができるようになります。
前セクションで、PDFやマイクロソフト・オフィス書類をテキストプレビューする設定を導入しました。さらにこれをエディタで開き、テキスト情報を効率よく取得・編集する方法を紹介します。
PDFの場合
前回の設定を応用して、rifle.conf
に以下の行を追加します。
#-------------------------------------------
# Documents
#-------------------------------------------
ext pdf, has open, X, flag f = open "$@"
ext pdf = mutool draw -F txt -i "$1" | fmt -w 80 | awk '/^$/{if (p) next };1 {p=1} {print}' > /tmp/temp_preview.txt && $EDITOR /tmp/temp_preview.txt && rm /tmp/temp_preview.txt # この行を追加
ext pdf, has llpp, X, flag f = llpp "$@"
こちらの設定により、PDFのテキスト情報をmutool
を使用して一時ファイルに抽出し、その後エディタで開きます。
r
キーを押すと、rifle.conf
の設定を順に読み込み、利用可能なツールを選択して表示します。テキストとして$EDITOR
でPDFを開くオプションを優先させるため、設定は上部に配置しています。
PowerPointの場合
前セクションと同様のテキスト抽出方法を使用します。rifle.conf
に以下の行を追加します。
ext pptx = pptx2txt.sh "$1" | fmt -w 80 > /tmp/temp_preview.txt && $EDITOR /tmp/temp_preview.txt && rm /tmp/temp_preview.txt
これにより、PowerPointの内容をpptx2txt
を使用してテキストとして抽出し、エディタで開くことができます。
WordやExcelの場合
PDFやPowerPointと同様の方法で、テキスト情報の抽出とエディタでの表示が可能です。具体的なコードは前セクションを参考にしてください。
この設定により、PDFやMS Officeの書類をエディタで直接開くことができるようになりました。エディタの高機能な検索や編集機能を利用して、オフィス書類からの情報取得や編集が簡単に行なえます。
設定内のテキストフォーマットの幅は80文字に固定しています。必要に応じてこの数値を変更してください。
📝 まとめ:
このカスタマイズにより、ranger
を使用してPDFやオフィス書類のテキスト情報をエディタで開き、高度な検索やテキストのコピーなどのエディタの機能をフルに活用することができるようになります。
👌 これで、ranger
の主要なカスタマイズ方法についての紹介は終了です。最後に、これらのカスタマイズの全体的な利点やまとめを振り返りましょう。
おわりに
本記事を通じて、ranger
の強力なカスタマイズ方法を多方面にわたって紹介しました。macOSのFinderの開き方、ゴミ箱へのファイル移動、そしてクイックルックの活用方法まで、便利なテクニックを示しました。また、PDFやマイクロソフト・オフィス書類のテキスト・プレビューや、それらをエディタで効率的に編集する方法は、強力なツールとして日常業務の役に立つでしょう。
多くのユーザーが日々取り扱うファイル形式や業務に関わる操作を中心に、ranger
のカスタマイズの可能性を最大限に引き出す方法をご紹介しました。この情報が、皆様の作業効率の向上や、より快適なファイル操作の実現に役立つことを心から願っています。
次の記事では「おまけ編」として、iTerms2
とranger
のカラースキームの調整をご紹介します。見た目のやさしさに加え、rangerで複数ペインを並べたとき、どれがアクティブかわかりにくい問題を解決します。
それでは、ハッピーranger
ライフを!
ご参考
紹介ツールのリンク
-
ocr.sh
: 画像ファイルからテキスト情報を抽出- doraTeX氏のブログ記事 macOS のデフォルト状態でコマンドラインからOCR処理を行う
- doraTeX氏のGitHubリポジトリ
-
pptx2txt.sh
: PowerPoint書類からテキスト情報を抽出
一連の記事
- その1:Rangerの魅力的なリソースをウェブからピックアップ
- その2:「終われない問題」への対処法
- その3:標準機能の中から、特に便利な機能の紹介
- その4:カスタマイズして便利な機能の紹介
- おまけ:カラースキームのオススメの組み合わせ
環境
- ranger 1.9.3
- Python 3.11.4
- iTerm Build 3.4.19
- macOS Ventura 13.5
- MacBook Pro (14-inch, 2021)