Claude Code 作業中に「ちょっとこのファイル見たい・直したい」となったらどうしてる?
目次
Claude Code で作業していると、「ちょっとこのファイルの中身を確認したい」という場面がよくあります。cat や less でサッと見ることもできますが、シンタックスハイライト付きでちゃんと読みたいときもありますよね。
VS Code や Cursor を開けば済む話ではあるのですが、複数のプロジェクトで IDE を立ち上げていると、メモリの消費がじわじわ効いてきます。「ちょっとファイルを見たいだけなのに、そのためだけに IDE を起動するのは重い」と感じる場面、ありませんか?
この記事では、ターミナルの中で完結する2つの解決策をご紹介します。
- 閲覧したいだけなら
bat:catの強化版。シンタックスハイライト付きで、マウス選択も素直に動きます - 編集も視野に入るなら Neovim: シンタックスハイライト付きでファイルを開きつつ、必要なら手直しもできる軽量エディタ
ちなみに僕が使っているターミナルは Ghostty です。簡単に画面分割ができて軽量なので重宝しています。片方のペインで Claude Code を動かしつつ、もう片方で bat や Neovim を開いてファイルを確認する、という使い方がとても快適です。
一番シンプルな選択肢: cat / less / tail
bat の話に入る前に、標準で入っているコマンドにも触れておきます。「シンタックスハイライトはいらないから中身だけ見たい」という場合は、これで十分です。
# ファイル全体をそのまま表示
cat src/index.ts
# スクロールしながら読みたいとき
less src/index.ts
# 末尾だけ確認したいとき
tail -20 src/index.ts
less はスペースキーで1画面分スクロール、q で終了です。検索は / に続けてキーワードを打てばできます。
ただし、これらのコマンドにはシンタックスハイライトがありません。コードを読むとなると、色がないのは地味につらいものがあります。
閲覧の決定版: bat
bat は cat のクローンで、シンタックスハイライトとページング(less 相当)を最初から備えています。Rust 製のモダンな CLI ツールの代表格で、cat を置き換える定番として広く使われています。
インストールは Homebrew で一発です。
brew install bat
使い方は cat とほぼ同じです。
bat src/index.ts
長いファイルなら自動でページングに入り、less と同じくスペースキーでスクロール、q で終了です。短いファイルならページャを通さずそのまま cat のように出力してくれるので、cat の上位互換として使えます。
マウス操作はどうなるか
bat(内部で less を使っています)はマウスイベントをキャプチャしません。なので、ターミナル側が普通にマウス選択を処理してくれます。ドラッグ選択 → Command+C がそのまま効きます。あとで紹介する Neovim のように修飾キーを覚える必要はありません。
マウスホイールでのスクロールも、Ghostty なら表示中のページがそのままスクロールしてくれるので、特に追加設定なしで快適に使えます。
cat の置き換えとして常用するなら
bat を cat の感覚で使いたい場合は、エイリアスを切るのが定番のようです。
alias cat='bat --plain --paging=never'
--plain は装飾(行番号やグリッド)を省くオプション、--paging=never は短いファイルでもページャを通さずそのまま出力するオプションです。これで cat と同じ感覚で使いつつ、シンタックスハイライトの恩恵を受けられます。
ただ、僕はエイリアスは設定していません。シェルスクリプトで cat を使う場面と挙動を揃えておきたい、というのと、シンタックスハイライト付きで見たいときだけ意識的に bat と打つほうが、自分の中で目的がはっきりするからです。
編集も視野に入るなら Neovim
bat は閲覧専用のツールです。「読んだあと、ちょっと手直ししたい」という場面では、エディタの出番です。ここからは Neovim をセットアップする手順をご紹介します。Vim 系エディタに触ったことがなくても大丈夫です。
なぜ Vim ではなく Neovim なのか
ターミナルで動くエディタといえば Vim が思い浮かびますが、この記事では Neovim を使います。Neovim は Vim をフォークしたプロジェクトで、基本的な操作は Vim と同じです。では何が違うかというと、設定しなくても最初から使える状態になっている範囲が大きく異なります。
素の Vim で同じことをやろうとすると、シンタックスハイライトの有効化、autoread の設定、行番号の表示、バックスペースの挙動修正など、「まずこれを書かないと話にならない」という設定が結構あります。Neovim はこれらがデフォルトで有効になっているので、最小限の設定で目的の環境にたどり着けます。
Vim のヘビーユーザーであれば、同じ設定を .vimrc に書いて同じ環境を作れます。ただ、僕自身は Vim にそこまで詳しくないので、デフォルトのままでも実用的に使える Neovim のほうが楽でした。これから始めるなら Neovim のほうがとっつきやすいと思います。
Neovim のインストールと起動
macOS なら Homebrew で一発です。
brew install neovim
Ubuntu 系の場合はこちらです。
sudo apt install neovim
インストールできたか確認しておきましょう。
nvim --version
ファイルを開くときは nvim ファイル名 で起動します。
nvim src/index.ts
まず知っておきたい「モード」の考え方
Neovim に初めて触れると、キーを打っても文字が入力されなくて面食らうかもしれません。これは Neovim が「モード」という仕組みを持っているためです。起動直後はノーマルモードになっていて、キー入力はすべて「操作コマンド」として解釈されます。
覚えておくべきモードは3つだけです。
| キー | モード | 用途 |
|---|---|---|
| (起動直後) | ノーマルモード | カーソル移動、コマンド実行 |
i | インサートモード | 文字の入力・編集 |
v / V | ビジュアルモード | 範囲選択(v は文字単位、V は行単位) |
どのモードからでも Esc を押せばノーマルモードに戻れます。迷ったら Esc を2回押す、これだけ覚えておけば迷子になりません。画面下のステータスラインに -- INSERT -- や -- VISUAL -- と表示されるので、今どのモードにいるかは一目で分かります。
保存と終了
ノーマルモードで : を打つとコマンド入力欄が現れます。最低限これだけ覚えましょう。
| コマンド | 動作 |
|---|---|
:w | 保存 |
:q | 終了 |
:wq | 保存して終了 |
:q! | 保存せず強制終了 |
「閉じ方が分からなくて閉じられない」は Vim あるあるですが、:q! さえ知っていれば脱出できます。
Claude Code の編集を自動リロードする設定
Neovim でファイルを開いたまま、隣のペインで Claude Code に作業させることもあるでしょう。Claude Code がファイルを書き換えたとき、自動で読み直してくれるように設定しておくと便利です。
設定ファイルは ~/.config/nvim/init.vim です。まだ存在しない場合はディレクトリごと作成してください。
mkdir -p ~/.config/nvim
nvim ~/.config/nvim/init.vim
以下の内容を書き込みます。
set autoread
set number
syntax on
au CursorHold,CursorHoldI * checktime
au FocusGained,BufEnter * checktime
autoread は Neovim ではデフォルトで有効ですが、意図を明示するためにここでは書いておきます。ただし autoread だけでは、シェルコマンド実行後やフォーカス復帰時など限られたタイミングでしか再読み込みが走りません。au CursorHold と au FocusGained の2行を追加することで、カーソルが一定時間静止したタイミングやウィンドウにフォーカスが戻ったタイミングでも checktime(外部変更の確認)が実行されるようになります。
この設定を入れた状態で Neovim にファイルを開いておくと、隣のペインで Claude Code が編集するたびに内容が更新されていく様子を眺められます。
コピー&ペーストの流儀
Neovim で編集もしたくなったら、コピー&ペーストの仕組みを理解しておく必要があります。Vim の世界では独特の用語が使われています。
- コピーのことを**ヤンク(yank)**と呼ぶ
- カットという概念はなく、削除(delete)するとその内容が自動的にレジスタに入る
つまり「削除 = カット」です。この発想の切り替えが最初のハードルかもしれません。
基本操作(ノーマルモード)
| キー | 動作 |
|---|---|
yy | 現在行をコピー |
dd | 現在行をカット(削除してレジスタへ) |
x | 1文字削除 |
p | カーソルの後ろに貼り付け |
P | カーソルの前に貼り付け |
ビジュアルモード(v で範囲選択した状態)で y を押せば選択範囲のコピー、d を押せば選択範囲のカットになります。
Mac のクリップボードと連携させる
デフォルトの y や p は Neovim 内部のレジスタにしか効きません。Mac の他のアプリとコピー&ペーストをやり取りしたい場合は、init.vim に1行追加します。
set clipboard=unnamedplus
これで y / p / d がすべて Mac のシステムクリップボードと直結します。Neovim でヤンクした内容を別のアプリに Command+V で貼り付けたり、逆に別のアプリでコピーした内容を Neovim 内で p で貼り付けたりできるようになります。
「常にクリップボード連携するのではなく、必要なときだけ使いたい」という場合は、"+y(システムクリップボードにヤンク)や "+p(システムクリップボードから貼り付け)と打てば単発で指定できます。
マウス操作の選び方
Neovim はデフォルトでマウス操作が有効になっています(mouse=nvi の設定)。この状態でマウスドラッグすると、ターミナルの選択ではなく Neovim のビジュアルモード選択として扱われます。
ここで Command+C を押しても、ターミナル側には選択範囲が存在しないので何もコピーされません。さらに、うっかり c キーを押してしまうと、Neovim はそれを「change(選択範囲を削除してインサートモードに入る)」として解釈するため、選択範囲が消えてしまう事故も起こり得ます。
僕も最初の頃は「マウスで選択 → Command+C」の手癖が抜けず、何度か選択範囲を消してしまいました。でも大丈夫、すぐに慣れます。仮にやらかしてしまっても、Esc でノーマルモードに戻って u を押せば取り消せます(u は undo、Ctrl+r は redo です。Mac の Command+Z / Command+Shift+Z 相当だと思ってください)。
対処の方針は3つあります。
おすすめ: デフォルトのまま使う
実はマウスの設定はそのまま mouse=nvi にしておいて、コピー&ペーストは Vim 流儀(y / d / p)に任せるのが一番ラクです。僕もこの使い方に落ち着きました。
- マウスでドラッグしてビジュアル選択 →
yを押すだけで Mac のクリップボードに入る(clipboard=unnamedplusのおかげ) - マウスクリックでカーソル配置できるので、編集中も普通のエディタ感覚で使える
「マウスで選択 → Command+C」の手癖を、「マウスで選択 → y」に置き換えるだけです。覚えるのは y / d / p の3キーだけなので、慣れてしまえばこちらのほうが早いです。
どうしても Command+C を使いたいなら: 修飾キー+ドラッグ
「キーボード操作に切り替えたくない、Command+C のままで通したい」という場合は、修飾キーを押しながらドラッグするとターミナル側の選択になり、Command+C でコピーできるようになります。
修飾キーはターミナルアプリによって違います。
| ターミナル | マウスレポーティングのバイパス方法 |
|---|---|
| Ghostty | Shift+ドラッグ |
| iTerm2 | Shift+ドラッグ(Option+ドラッグは矩形選択) |
| Terminal.app | fn+ドラッグ または Shift+ドラッグ(Option+ドラッグは矩形選択) |
マウス操作自体を切りたいなら: set mouse=
set mouse=
マウス操作がすべてターミナル側の管轄になるので、ドラッグ選択してからの Command+C が普通に効きます。ただし、マウスクリックでのカーソル配置もできなくなるので、編集には少し不便です。
Neovim から Mac クリップボードに貼り付ける方法まとめ
状況に応じて使い分けられます。
| 状況 | やり方 |
|---|---|
clipboard=unnamedplus 設定済み | ノーマルモードで p |
| 設定なし | ノーマルモードで "+p |
| インサートモード中 | Command+V(ターミナルのペースト機能経由) |
最終的な init.vim
ここまでの設定を全部まとめると、こうなります。
set mouse=nvi
set clipboard=unnamedplus
set number
syntax on
set autoread
au CursorHold,CursorHoldI * checktime
au FocusGained,BufEnter * checktime
たった7行ですが、これだけで以下のことが実現します。
- マウスクリックでカーソル配置ができる
- マウスでドラッグ選択 →
yで Mac のクリップボードにコピーできる y/p/dが Mac クリップボードと直結する- インサートモードでの
Command+Vも使える - Claude Code による外部変更が自動でリロードされる
おわりに
僕の結論はシンプルで、閲覧したいだけなら bat、編集も視野に入るなら Neovim です。bat はインストールするだけで即戦力になりますし、Neovim も set clipboard=unnamedplus と set autoread の2行を入れておけば、シンタックスハイライト付きで読みつつ手直しもできる軽量な環境が手に入ります。
Neovim は最初の「モード」の概念とコピー&ペーストの流儀で戸惑いやすいですが、ヤンク(y)とデリート(d)がそのままクリップボード操作になるという発想に慣れれば、ターミナルから手を離さずに作業が完結する気持ちよさがあります。
IDE を起動するほどでもないけど cat じゃシンタックスハイライトがなくて読みづらい、そんな場面に bat と Neovim を使い分けると、Claude Code との作業がぐっと快適になります。ぜひ試してみてください。