💡 この記事の3行まとめ
- Dockerを触っている最中に
⌃Sが効かない原因は、多くの場合キーの奪い合いです。とくにターミナルは⌃Sを「出力の一時停止」として横取りします。 - 症状を「無反応」「出力が止まる」「前面のアプリでだけ効かない」の3つに分ければ、触るべき設定は1か所に絞れます。
- Mac専用OCR翻訳『Zipp』は
⌃Sで囲んで 0.3秒、Apple Visionによる端末内処理。無料でダウンロード(登録不要)、1日15回まで使えます。
📌 この記事の対象読者
- Dockerのログを読もうとして
⌃Sを押したら、何も起きない、あるいは画面が止まった方 - ターミナルでは効くのに、Docker Desktopのウィンドウでは効かないと感じている方
- キーボードを外部のものに変えてから、ショートカットの挙動が変わった方
⌃S が効かないとき、起きていることは3通りしかない
Dockerのログを読みたい瞬間に ⌃S を押して、反応がない。このとき、実際に起きていることは大きく3つに分かれます。原因が違えば対処も違うので、まずどれなのかを決めることが近道です。
1つ目は、ターミナルが ⌃S を横取りしている場合です。Unix系の端末には、伝統的に ⌃S が「出力の一時停止(XOFF)」として割り当てられています。docker logs -f でログが流れている最中に ⌃S を押すと、翻訳ツールに届く前に端末側が「流れを止める合図」として受け取り、画面の更新が止まります。止まったように見えるので、多くの人は「アプリが落ちた」と誤解します。実際には端末が生きていて、⌃Q を押せば流れが戻ります。
2つ目は、別のアプリが先にキーを確保している場合です。ターミナル、エディタ、ブラウザ、ランチャー。それぞれが独自にキー割り当てを持っています。前面にあるアプリが ⌃S を自分の操作として登録していると、そのアプリの中では翻訳ツールの呼び出しが発火しません。逆に、アプリを切り替えると急に効くようになります。この「アプリ依存」の挙動は、キー競合の典型的なサインです。
3つ目は、キーボード側の違いです。JIS配列とUS配列では control の位置が違います。外部キーボードに変えた、キーボードの修飾キーの割り当てを変更した、といった変更のあとに挙動が変わったなら、ソフトではなくどのキーが control として送出されているかを疑うべきです。
この3つは、症状の出方がはっきり違います。無反応なら2か3、出力が止まるなら1、特定のウィンドウでだけ効かないなら2です。症状から原因を決められるので、闇雲に設定を触る必要はありません。
もう一点、Docker特有の事情を加えておきます。docker logs -f や docker compose up は出力が流れ続けます。流れている画面を囲もうとすると、囲んでいる最中に対象が動きます。これはキー競合とは別の問題ですが、症状としては「狙った場所を囲めない」という形で現れ、競合と混同されがちです。流れを止めてから囲むという運用を先に決めておくと、切り分けが大幅に楽になります。
解決策:症状別に切り分け、設定を1か所だけ変える
手順1:まず ⌃Q を押して、状態を戻す
⌃S を押したあとに画面の更新が止まったら、⌃Q(Control + Q) を押します。端末の出力一時停止は、これで解除されます。プロンプトが戻り、ログが再び流れ始めるなら、原因は1つ目の「端末の横取り」で確定です。
この確認を最初に行う理由は、状態を戻さないと次の検証ができないからです。止まったままでは、翻訳ツールが動かなかったのか、端末が止めていただけなのかを区別できません。まず戻す。次に、もう一度だけ押して同じことが起きるかを見る。再現すれば確定です。
手順2:ターミナル側の割り当てを確認して、必要な1つだけ変える
原因が端末の横取りだと分かったら、対処は2択です。
- 運用で避ける:
docker logs --tail 80のように出力を止めてから囲む。流れていない画面なら、⌃Sを押しても止まる対象がありません。これがいちばん安全で、設定を一切変えません。 - 設定を変える:端末の flow control を無効にする、またはキー割り当てを変更する。ただしこれは端末全体に影響します。
⌃Sを別の用途で使っている作業があるなら、先に洗い出してください。
おすすめは前者です。Dockerのログを読む目的は「原因の行を特定する」ことなので、流れ続ける画面である必要はありません。--tail と --no-log-prefix を組み合わせれば、読みたい数十行だけが静的に残ります。動く画面を追うより、止まった画面を囲むほうが速い。これは競合の回避であると同時に、読み方の改善でもあります。
tmuxやウィンドウ分割を使っている場合は、プレフィックスキーとの組み合わせも確認します。プレフィックスの後に押すキーが別の意味を持つことがあるため、囲む操作はプレフィックスなしの素の状態で行うのが確実です。
手順3:前面のアプリを変えて、同じ操作を試す
原因が2つ目(アプリ依存)なら、検証は単純です。Docker Desktopのウィンドウを前面にした状態と、ターミナルを前面にした状態で、それぞれ ⌃S を押します。片方でだけ効くなら、そのアプリのキー割り当てが原因です。
この場合の対処は、読む場所を固定することです。ログはターミナルに、翻訳の結果は最前面に表示される。Zippは訳を最前面に出すため、囲んだあとにアプリを切り替える必要がありません。逆に、翻訳のたびにウィンドウを行き来する運用になっていると、どのアプリが前面かで挙動が変わり、原因が見えにくくなります。
3つ目のキーボード要因が疑われるときは、システムの修飾キー設定で control の位置を確認し、可能なら内蔵キーボードで同じ操作を試します。内蔵で効いて外部で効かないなら、原因はキーボード側です。ソフトの設定をいくら変えても解決しません。
キー競合の切り分けを比べる
【症状の判別】
従来:無反応か停止かを区別せず、勘で設定を変える
Zipp:⌃Q で戻るかどうかで即座に判別できる
【出力が流れる画面】
従来:囲んでいる最中に対象が動き、失敗しやすい
Zipp:--tail で止めてから囲めばズレない
【前面アプリへの依存】
従来:アプリごとに挙動が変わり、原因が追えない
Zipp:訳が最前面に出るため、切り替えが発生しない
【設定変更の範囲】
従来:端末全体の割り当てを変え、他の作業に影響する
Zipp:設定を変えずに運用で回避できる
【ログの扱い】
従来:調査のためクラウドへ送ることがある
Zipp:Apple Visionで端末内処理・画面画像の外部保存ゼロ
【試しやすさ】
従来:競合の切り分けに時間がかかる
Zipp:無料でダウンロード(登録不要)/1日15回まで
よくある質問(FAQ)
Q. ⌃Q を押しても戻りません。 A. 端末の一時停止ではない可能性があります。まず別のウィンドウで新しいシェルを開き、そこで ⌃S を試してください。新しいウィンドウで効くなら、元のウィンドウの状態(出力待ちやプロセスの停止)が原因です。docker logs を -f なしで実行し直すのも有効です。
Q. flow control を無効にすると、何か壊れますか? A. ⌃S が別の操作(履歴の検索など)に割り当てられている環境では、その操作の挙動が変わります。変更する前に、自分が ⌃S を何に使っているかを確認してください。設定を変えずに --tail で回避するほうが影響は小さいです。
Q. Docker Desktopの画面でも同じように使えますか? A. 使えます。画面に表示されている文字を読むため、ターミナルでもGUIでも同じ操作です。ただしウィンドウが小さいと折り返しが増えるので、読みたい範囲が見える大きさに広げてから囲んでください。
Q. 1日15回で、競合の検証は足りますか? A. 検証は「押して、戻して、もう一度押す」の3回程度で結論が出ます。回数を使うのは実際の読解なので、検証で消費する分はわずかです。原因が決まってしまえば、その後の運用では囲む回数だけが増えます。
効かない原因は、たいてい1つに絞れる
⌃S が効かないと、つい「ツールが壊れている」と考えます。しかし実際には、端末が横取りしている、別のアプリが先に取っている、キーボードが別のキーを送っている。この3つのどれかであることがほとんどです。そして、⌃Q で戻るか、アプリを変えると効くか、内蔵キーボードなら効くか。この3つの確認で、原因は絞れます。
原因が分かれば、あとは運用の問題です。流れるログは止めてから囲む。翻訳のたびにウィンドウを移動しない。この2つを決めるだけで、Dockerのログを読む速度は安定します。
▼ 無料でダウンロード(登録不要・1日15回まで)
zipp-mac.surge.sh
`