Rangerの世界: macOSとキーボードで開かれる新しい道（その３）

## はじめに

### 追悼

Vimの生みの親であるBram Moolenaar氏が亡くなられたとの報に接しました。ご冥福をお祈り申し上げます。Rangerもまた、Vimがなければ存在し得なかったソフトウェアです。Bramさん、世界をすこしでも過ごしやすい場所にしてくれて、ありがとうございました。

https://groups.google.com/g/vim_announce/c/tWahca9zkt4t?pli=1

![SS 2023-08-06 10.53.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184128/bef5c3d1-e5c4-7632-a217-95cca78eb5b6.png)

Bram氏の功績に深く感謝し、今回もVimにインスパイアされたファイルマネジャー、Rangerのご紹介をいたします。


### 今回のテーマ

さて、前回までの記事で、Vimライクなキーボード操作がたのしいRangerをご紹介しました。macOSでも、Ranger＋よいキーボード、の組み合わせ心地がよいものです。

https://qiita.com/hann-solo/items/4279eb7211fdba680535

https://qiita.com/hann-solo/items/691cb695be5bba80f6ea

その１では、ウェブ上の素晴らしいリソースを紹介いたしました。その２では、Rangerを使い始めのころに起きがちな「終われないんだけど問題」の対処法を紹介しました。

いろいろあそんでためす基盤はできたとおもいます。そこで今回は、標準機能で特に便利だとおもうものをご紹介したいとおもいます。

## 基本操作

基本操作をざっくりとおさらいしておきます。

- 移動系
    - カーソル移動：`h` `j` `k` `l`
    - ファイルのコピー・ペースト：`yy`→`pp`
    - ファイルのカット・ペースト：`dd`→`pp`
    - 複数ファイルのコピー／カット・ペースト：まず`Space`を押し、ファイルを選択状態にしてから`yy`/`dd`→`pp`
- タブ系
    - タブを開く：`C-n`
    - タブを切り替え：`tab`
    - タブを並べて表示：`~`（戻すにはもういちど押す）
- 表示・編集系
    - プレビュー：`i`
    - エディタで開く：`Enter`

とりあえずこれぐらいで、Rangerをつかいはじめられるとおもいます。Vimキーバインドがベースなので、Vim使いは直感的につかえることでしょう。Vim使いでなければ、Rangerで慣れておくと、Vimがスムーズになる恩恵があります。

:::note
キー操作はほかにもたくさんあります。おなじ操作を他のキーでもできます。もっと便利な操作をまとめて行えるものもあります。
なお、`?k`でキーバインド一覧を表示できます。
:::

## ブックマークで自在に飛び回る（標準機能）

Rangerにはブックマーク機能があります。Vimのマークに近いノリです。

- ブックマークを追加：`m<key>` ※<key>は任意の１文字
- ブックマークを削除：`um<key>`
- ブックマークにジャンプ：`'<key>`

![SS 2023-08-06 11.01.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184128/971c544a-4ee2-d87f-fc56-590e32fea1f7.png)

:::note
`'`を押すと上の画像のようにリストが表示されるので、おぼえておく必要はありません。
:::

ブラウザでもそうですが、ブックマークはやたらと作っても、けっきょく使わなくなりがちです。いまのところ、下記の方針でブックマークを運用していて、いい感じです。

| カテゴリ     | わりあてる文字            |
| ------------ | -------------------- |
| よくつかう・プロジェクト     | アルファベット大文字 |
| 定期的に使う | 数字                 |
| 設定系       | アルファベット小文字 |
| 使い捨て     | a b                  |

- よくつかう・プロジェクト：ほぼ毎日のようにつかうもの。または主なプロジェクトのフォルダ
    - ファイル操作の起点：Downloadsを`L`、個人フォルダを`P`
    - プロジェクトその１：おおもとを`R`、サブフォルダでよくつかうものを`D` 
    - プロジェクトその２：おおもとを`Y`、サブフォルダでよくつかうものを`M` `H` `F`
    - プロジェクトその３：`K`
    - プロジェクトその４：`O`
- 定期的につかう：週１とか月１とか、毎日ではないが繰り返し使う
    - 経費精算の資料フォルダ：`9`
- 設定系：rangerやemacsなどの設定フォルダ
    - Ranger:`c`
    - Emacs：`e`
    - Hammerspoon：`h`

わたしのユースケースだと、これがとてもいい感じです。プロジェクト関係は、頭文字を採用しているので、がんばって覚える必要がありません。わすれるぐらいならブックマークから削除すればいいですし。設定ファイルのあるフォルダにさくっと行けるのは、めちゃくちゃ便利です。

## サブシェルを起動する（標準機能）

`S`で、カレントディレクトリでサブシェルを起動します。`exit`でRangerに戻ります。

![SS 2023-08-06 11.19.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184128/a32252e0-1fa1-c163-6f2f-1945d6a23f9b.png)

FinderでTerminalを開こうと思うと、右クリックして、サービスだかなんだかからメニューを選択しなければなりません。あまりに面倒くさいので、AlfredのWorkflowの`ft`をつかっていました。Rangerなら、ファイル操作をしている流れのそのままで、シェルコマンドが打てます。これは人生が変わるぐらいうれしい機能です。

具体的には、カジュアルにgitコマンドを打ちたいときに多用しています。本格的にgit管理するときはツールをつかったり自動化したりしています。しかしローカルでカジュアルにgitで履歴をのこしておきたいときがあります。そのときは、さくっとサブシェルに行ってgitコマンドを打てると、ワークフローが途切れないのでサイコーです。

## ファイル名をまとめて変更する（標準機能）

`:bulkrename`というコマンドがあります。まず、`Space`で複数のファイルを選択します。つづいて`:bulkrename`と打ちます。

:::note
コマンドは補完が効きます。実際には`:b<tab>`または`:bu<tab>`とタイプすれば済みます。
:::

エディタ画面がひらき、ファイル名が並んでいます。エディタ（Vim）で編集し、保存して終了すると、ファイル名が変わっています。

![SS 2023-08-06 12.02.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184128/dcb38905-1a76-6788-83a8-e216d4dc9039.png)

macOSのFinderにも名前をまとめて変更する機能はあります。Rangerは「エディタ」が起動するので、おもいどおりにファイル名を扱えるメリットがあります。

たとえば、ファイル名から半角と全角の空白を削除し、ファイルの頭に受領日付をつけておく、みたいなことをFinderからやろうとおもうとイヤになります（だから結局やらない……）。


## おわりに

今回は、カスタマイズ不要でつかえるのおすすめ機能をご紹介しました。まず、ごく基本的な操作を概括し、つづいてブックマーク、サブシェル起動、複数ファイルのリネームをご紹介しました。

次回は、設定ファイルをカスタマイズすることで実現できる、おすすめ機能をご紹介する予定です。たとえば、macOSのQuickLookをもちいてもプレビューできるようにしたり、ファイル削除ではなく「ゴミ箱に入れる」ができるようにする、など、macOSのFinderの恩恵を、Rangerにも取り入れる方法を紹介したいとおもいます。

それでは、ハッピー・キーボード・ライフを過ごされますよう！

## ご参考

### 一連の記事

- その１：Rangerの魅力的なリソースをウェブからピックアップ
- その２：「終われない問題」への対処法
- その３：標準機能の中から、特に便利な機能の紹介
- その4：カスタマイズして便利な機能の紹介
- おまけ：カラースキームのオススメの組み合わせ

https://qiita.com/hann-solo/items/4279eb7211fdba680535

https://qiita.com/hann-solo/items/691cb695be5bba80f6ea

https://qiita.com/hann-solo/items/7bb85d89afadb3b7e940

https://qiita.com/hann-solo/items/aebb2de23bfe33ec2153

https://qiita.com/hann-solo/items/7e0d18ba0a6fd6ed9f61


### 環境

- ranger 1.9.3
- Python 3.11.4
- iTerm Build 3.4.19
- macOS Ventura 13.4.1
- MacBook Pro (14-inch, 2021)