「Git 用のGUIアプリをわざわざ全部のデバイスにインストールするのは面倒だなー」とか「Terminal でよくGit を使うんだけどもっと楽できないのかなー」と感じたことはありませんか?
そんな人のために、この記事ではTerminal 上でGit を最も効率よく使うためのキーボードショートカットを紹介します。
この記事ではなるべく便利なキーボードショートカットを厳選していますが、目次から「実際に使えるかもな」「使ってみたい」と感じられるものから見てみてください。なぜならショートカットキーを覚えるコツは、”実際に使ってみること”だからです。
以前のコマンドに管理者権限を付け加えて実行し直す
半年に一度くらい「古いフォルダを削除するか」とrm
コマンドを実行したけど管理者権限がないと言われ「あーー、確かにそうですね」と呟きながら、矢印キー(▲
と◀
)だけでコマンドの先頭に移動してsudo
をつけ、実行し直したことはありませんか?
Apps % rm -r MyApp rm: SeaMark/.git/objects/2e: Permission denied rm: SeaMark/.git/objects: Permission denied rm: SeaMark/.git: Permission denied rm: SeaMark: Permission denied
直前のコマンドに管理者権限を付与したいだけならsudo !!
で実現できます。
% sudo !! sudo rm -r MyApp Password: ⚿
しかし、それより前のコマンドに管理者権限を付与したい場合は矢印キーで履歴を遡る必要がありますね。
遡った以前のコマンドがどんなに長くても、以下の4つのショートカットキーで管理者権限を付与して再実行できます。
▲
: コマンド履歴(管理者権限がないコマンド)を表示⌃A
: カーソルを行の先頭に移動sudo␣
をタイプ⏎
: カーソルがどこにあろうとreturn を押すだけでコマンドが実行されます。
comand not found: gti
おそらくgitを使ったことがある人の大半は、以下のようなミスをしたことがあるでしょう。
MyApp % gti push origin Release/macOS/NavigationSideBar zsh: command not found: gti
打ち直すのは面倒ですね。そんなときは以下のショートカットコンビネーションをやってみましょう。
▲
: 直前のコマンド履歴(間違ったコマンド)を表示⌃A
: カーソルを行の先頭に移動▶
×2: カーソルをi
に合わせる⌃T
:t
とi
を転置 transpose する⏎
: カーソルがどこにあろうとreturn を押すだけでコマンドが実行されます。
ブランチ名やファイル名を最速ペーストする
git pull
やgit add
のときなど、何度も何度も同じ名前をマウスで選択してコピーしてペーストすることはありませんか?しかもそれが長い名前だとマウスで選択するときに余計な文字や改行まで含まれたり…
以下のショートカットキーの組み合わせで、面倒な「マウスを使ってファイルパスを選択し、コピペする」を省略します。
⇧⌘ダブルクリック
普通のダブルクリックは単語だけを選択しますが、⇧⌘
を付け加えるとファイルパスを選択できます。⇧⌘V
Terminal 内で選択中のテキストをカーソルの場所にペーストします。
クリップボードの内容は変わりません。
コツは⇧⌘
を離さないことです。実際の2つのシチュエーションごとに、どのように活用できるか見てみましょう。
Git のブランチ名を最速ペーストする
git branch⏎
git pull origin␣
まで入力- “1” の結果で表示された目的のブランチを
⇧⌘
を押さえながらダブルクリック ⇧⌘
を押さえたままV
を押す
長すぎるファイルパスを最速でgit add
する
似たようなシチュエーションとして、変更が加わったファイルをgit add
することもよくあります。
ファイルパスが短い場合は入力中にTab
を押すことでディレクトリ名やファイル名が補完されますが、ファイルパスが長くなるほどタイプする時間は比例して長くなってしまいます。
ブランチ名をペーストするのと基本的にやり方は変わりませんが、git add
は何度も連続して実行することが避けられない時があります。そこで何度もgit add
をタイプしなくていいような方法をまとめました。
git status⏎
git add␣
までタイプする- “1” の結果で表示された、目的のファイルパスを
⇧⌘
を押しながらダブルクリック ⇧⌘
を離さずV
を押す⏎
: コマンドを送信↑
: 直前のコマンドの表示⌃W
: カーソルから左側の1単語を消す(ファイルパス部分をまるっと削除)- “3” へ戻る
今書いているコマンドを中断する
▲
と▼
で履歴を遡ってもお目当てのコマンドが見つからず、delete⌫ キーを何度も押してコマンドを削除していた時期が筆者にもあります。
長ったらしいコマンドを書いているけど実行せずに中断する方法は以下の2つの方法があります。
⌃U
: 行全体を削除する⌃Y
:⌃U
で消した内容の復活
⌃C
: ブレークする(コマンドを実行せずに、新しい行へ移動する)⌘.
でも操作は同じ
エラーと一緒に送られてきたURL をすぐに開く
エラー関しての詳しい説明をすることなく、ただURL を返してきて「詳しくはここみてね」という扱いを受けることはよくあります。
Landmarks % git push -u origin main Username for 'https://github.com': *** Password for 'https://***@github.com': remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead. remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information. fatal: Authentication failed for 'https://github.com/***/Landmarks.git/'
そんなときは、⌘
を押しながらURLをダブルクリックするとそのリンク先をデフォルトブラウザーで開いてくれます。
チャットアプリで共有するとき
「このコマンドを打つとこのようなエラーが返ってきます」という文言を添えて、Terminal のスクリーンショットを送りたい時に活用してほしいのが以下の3つのコマンドです。
⌘K
: 画面をクリアする⌘+
: フォントサイズを1段階大きくする⇧⌘▲
: マーク間を選択する
因みに、Mac で1つのアプリを選択してスクリーンショットをとるショートカットは⇧⌘5
です。
Terminal のスクショに余計な情報を入れない
Terminal スクショを共有して原因を同僚や先輩に尋ねるときは、なるべく聞きたい内容以外の情報(ノイズ)をスクショから減らすようにしましょう。(何がエラーの原因になるのかが全くわからない時は動画でも撮って聞くしかないですが…)
⌘K
は現在カーソルが表示されている行が一番上になるように画面をクリアします。この機能を有効活用して不要な情報を減らしてみましょう。
フォントサイズを調整する
あのままのスクショでも良いのですが、ちょっとした改善点はまだあります。上のスクリーンショットのTerminal はフォントが小さくて少しだけ見にくいです。スクリーンショットを共有する際は⌘+
でフォントを大きくしましょう。フォントを小さくする時は⌘-
、元のサイズに戻すときは⌘0
です。
実行したコマンドとその結果を最速でコピーする
また、最近のチャットアプリではチャット内にコードを挿入できるので、できれば画像だけでなく入力したコマンドとその結果のテキストデータを載せてあげるといいかもしれませんね。
そのような、コマンドと結果を選択したい時は⇧⌘▲
で、マークごとに選択範囲を拡大することができます(⇧⌘▼
でマークごとに選択範囲を縮小できることもあるのですが、うまくいかないときはesc
キーを押してやり直しましょう)。
番外編: 履歴からコマンドを検索して表示したい
つい最近、「断片的にしか覚えていない、昔使った便利なコマンドをまた実行したい」と思うことがありました。この記事用に動画からGIF を作るコマンドです。コマンド名も”ffmp”なんとかしか覚えていませんし、そのオプションも完璧に忘れています。
そんな時はzshのショートカットキーの⌃R
を使いましょう。⌃R
はユーザーが入力した文字を使って過去のコマンドを検索し、マッチした結果を最近使った順に表示してくれます。百聞は一見にしかずということで、下のGIFを見るか是非ご自分の環境でやってみてください。
以下が、例として使った.movファイルから.gifファイルを作るコマンドです。多少の警告は無視して使っています。もし皆さんが試しに使ってみてまたいつか使いたいなと思ったときは⌃R
で検索してみてください。
ffmpeg -i in.mov -pix_fmt rgb24 -r 10 -f gif - > out.gif
その他のzshのキーボードショートカットキーは以下の記事にてまとめています。
まとめ
今回の記事では以下のショートカットキーをシチュエーション別に説明しました。
⌃A
: カーソルを行の先頭にどうする⌃T
: カーソルの両隣の文字を転置する⇧⌘ダブルクリック
: ファイルパスを選択する⇧⌘V
: 選択中のテキストをペーストする⌃W
: 1単語をまるっと消す⌘ダブルクリック
: ダブルクリックしたURLを開く⌃U
: 行全体を消す⌃C
: ブレークする⌘K
: 画面をクリアする⌘+
: フォントを大きくする⇧⌘↑
: マーク情報を使って選択範囲を拡張する⌃R
: コマンド履歴の検索
紹介したショートカットキーが身についてきて、「もっと便利なショートカットキーを知りたい」と感じてきたら以下の記事をご覧ください。
私はもっと速い方法を知ってるよ!という方はぜひコメント欄や私のTwitterアカウントへのメンションで教えてください。