ブログ内検索

テック

Macユーザーに捧ぐ!日常が変わるEmacs風ショートカット厳選まとめ

apple-emacs-shortcut-cover.avif

どうもこんにちは。最近運動サボりがちなこうじです。

どうにかしてサボれないかと色々調べていたら見つけたんですよ。その名も

Emacsキーバインド!(仮)

僕はいつもプログラムなど、文字を打つときはVimを使用しているのですが、例えば以下のように「どう考えてもVim使えねーじゃん」という場面があります。

  • ちょっと文字打ちたくて「テキストエディタ」を使用する時

  • Pagesを使用したり、Googleのドキュメントなどを使用する時

そんな時に、手軽にホームポジションを移動せずにキーを移動する便利な機能がこのMacの標準機能のショートカットなわけですよ!

こうじ
こうじ
まぁ、でも検索移動はないから、大移動の時はマウスなんだけどね

Emacsとは?

こうじ
こうじ
僕もこの記事を書こうと思って初めて知りました(笑

エンジニアやプログラマー界隈では「Vim」と並んで超有名な、歴史あるテキストエディタの名前です。

Emacsの最大の特徴は、「マウスを一切使わず、キーボードのホームポジションから指を離さずにあらゆる操作ができる」こと。

この超絶便利な「Emacs」の操作の一部を、標準機能として持っているんです。

アプリやIMEによって挙動が異なる場合もありますが、基本的にはこのショートカットを使うために何かをインストールしなければいけないといった事はなく、標準として使用することが可能です。

EmacsキーバインドがMacで使える由来

「そもそも、なんでMacにEmacsの機能が入ってるの?」と思いますよね。実はこれ、Appleの歴史と深く関わっているんです。

かつてAppleを追い出...、離れた後、スティーブ・ジョブズが立ち上げた「NeXT」という会社がありました。そこで作られた「NeXTSTEP」というOSの文字入力システムに、Emacs風のキー操作が採用されたそうです。

その後、AppleがNeXTを買収し、そのOSをベースにして現在のmacOS(当時のMac OS X)が生まれました。

こうじ
こうじ
らしいです!

どんな人に刺さる?Emacsキーバインド

マウスや矢印キーに行ったり来たりする煩わしさから解放されるEmacsキーバインド。ぶっちゃけ、Macを使っている全員に必須の機能というわけではありません。

でも、以下のような人たちには間違いなく「ぶっ刺さる」はずです。

プログラマーなどの開発者

コーディング中の「ちょっとした修正」や「ちょっとした移動」。それでいちいちマウスや矢印キーに手を伸ばすのは、正直面倒なんですよね。

そんな時にCtrl+FもしくはCtrl+Bなどを使った、ちょちょいっと移動する方法を覚えておくと、慣れてしまえばとても楽ちんです!

そもそもVim操作を日常的に使っている人は、Vim操作の使えないテキストエディタや、ブラウザの検索フォームなど、そういうところでも活躍してくれるので、かなり日常動作が楽になると思います!

こうじ
こうじ
Slackなどのチャット入力欄とかでもまじで大活躍ですよ

ブログや執筆などをしているライター系の人

ノリノリで文章をカタカタやっている時に、ちょっとした打ち間違いをしてしまった時。そんな時に、Deleteや←・→に手が伸びるのは、音ゲーやってる人はすぐホームポジションに戻せるかもしれませんが、やっぱりリズムを崩してしまう要因になるんじゃないかなぁと思います。

そんな時はスマートにCtrl+DもしくはCtrl+H!

「あ、やべ。」って時にこれで、カタカタっと修正すれば手の位置はそのまま、遠くにあるキーに手を伸ばさずとも修正できるのでとっても楽ちんです!

逆にこんな人は刺さらないかも

逆に「単調なデータ入力」だったり、メインが「入力」ではない人にはあまり刺さらないかもしれません。

NumbersやExcel、スプレッドシートなどの表計算などにも使えはしますが、あくまでも入力は補助的なものだと思いますし、基本的にはマウスに手が入っている印象があります。

Tabキーで入力項目を移動して、数字を打ってEnter、といった作業なら、これまで通りの操作の方が圧倒的に早いと思います。

また、表計算をガッツリやる方や、マウス操作が中心のデザイナーの方など、「連続して文字を打ち続ける」時間よりも「クリックや画面操作」の時間が長い方にとっては、無理して覚えるメリットは薄いかもしれません。

ホームポジションから手を離さないショートカット一覧

プログラミングやブログ執筆など、日々「意味のある文章」を打ち続けている皆さんにお届けしたい、世界が変わる(といいね!)、便利ショートカットを厳選して紹介します。

基本的にはすべて「Control(Ctrl)キーを押しながら」操作します。

矢印キーの移動

文字入力中、ちょっとだけカーソルを動かしたい時に超絶便利!

キー 効果
Ctrl + F 右に移動(Forward)
Ctrl + B 左に移動(Backward)
Ctrl + P 上に移動(Previous)
Ctrl + N 下に移動(Next)

削除系のショートカット

タイポ(打ち間違い)をした時、Deleteはホームポジションから遠すぎます。

キー 効果
Ctrl + H カーソルの前を消す(Delete。WindowsでいうとBackspace)
Ctrl + D カーソルの後ろを消す(Forward Delete。WindowsでいうとDelete)

特に Ctrl+H は、左手の小指でCtrl、右手のひとさし指でHを押せるので、慣れると息をするように文字を消せるようになります。

こうじ
こうじ
ケース的には「Ctrl + H」(Delete)の方が多いはずなんだけど、僕はなぜか「Ctrl + D」(Forward Delete)の方が頻度が高いです

行の先頭・末尾へワープ(行頭・行末移動)

長い文章やコードを書いている時、「この行の最後に文字を足したい」「行の先頭から書き直したい」という時に大活躍します。

キー 効果
Ctrl + A 行頭へ一気に移動
Ctrl + E 行末へ一気に移動(End)
こうじ
こうじ
長文で任意の場所(Vimだと「f」コマンド)に行くショートカットあればいうことないのにね!

一瞬で切り取って貼り付ける(切り取りとヤンク)

マウスでテキストを選択して、Cmd+Xで切り取って・・・という操作、実はもっとスマートにできます。

キー 効果
Ctrl + K カーソル位置から行末までを切り取り(Kill)
Ctrl + Y 切り取ったテキストを貼り付け(Yank)

例えば、Ctrl+Aで行頭へ移動からの、Ctrl+Kで切り取り。その後好きな場所でCtrl+Y。

これで、行の移動がホームポジション下で出来ちゃいます。

現在のカーソル位置から後ろを切り取りなので、限定的ではありますが、慣れると使い道はありそうです!

説明が下手くそなので実演しました!

こんなところでも活躍!Emacsキーバインド活用例

基本的なショートカットは上記でご紹介した通りですが、

かなこ
かなこ
要はエディターとかで楽になりますよ!って話でしょ?

と思っているあなた。
思ったでしょ?思ってましたよね?
思ってた事にしてください!

実はこのキーバインド、要はショートカットなので、macOSの至る所で使える「万能の移動手段」なんです。

特に日常的な操作で劇的な効果を発揮する場面を2つ紹介します。

こうじ
こうじ
むしろこのキーバインド。僕はこれが一番刺さってる気がする!

日本語入力時の「変換候補」の選択

日本語を打ってスペースキーで変換した時、候補までの移動で↓ ↑を押したりしてませんか?

かなこ
かなこ
え?スペース連打だけど。
こうじ
こうじ
シーッ!

こんな時こそ、Ctrl+N(下移動)と、 Ctrl+P(上移動)が使えます!

ホームポジションから手を離さずに、変換候補を上下にスイスイ移動できます。

これは慣れると結構使い勝手がいいんですよね。

かなこ
かなこ
え?スペースで行きすぎたらShift+スペース連打だけど?
こうじ
こうじ
だから、シーッ!だって!!

Spotlight検索(Cmd + Space)の候補移動

Macで「使ってない人いるの?」っていうくらい超絶超便利機能「Spotlight」。

アプリを立ち上げたり、ファイルを検索したりと、キーボードだけで操作できるのが魅力ですが・・・。検索結果から目当てのアプリを選ぶ時、結局「矢印キー」を押していませんか?

ここでも活躍!Ctrl+N(下移動)と、 Ctrl+P(上移動)の出番です!

検索ワードを打ち込んだ直後に、そのまま上下移動ショートカットでサッと下の候補を選択してEnterをターンッ!

これはね。マジでね。やばいよ(語彙力崩壊)

Vimなどでインサート中にちょっとした移動

僕の環境ではCusror(VS Code)では問題なくEmacs操作できたんですが、IntelliJ IDEAでは一部キーが怪しかったです。なので、IDEや設定も影響するかもしれません。

Vimでインサートモードの時にちょっと移動したい。そんな時は、

  • 一度ESCで戻ってから移動、再度インサートモード

  • 単純に矢印キーで移動

このどちらかだと思います。

ですが、こんな時にも役に立つのが移動系のショートカット!

インサート中だとしても問題なくCtrl+Fなどで移動ができます!

ESCで戻るのも面倒。矢印キーへ手を伸ばすのも面倒。そんな時にこのショートカットがホームポジションを崩さずに手軽に移動が可能になります。

まとめ

なんかずっと入力をしていると、ちょっとキーボードを離れるっていう動作がストレスに感じてくることが多くなりました。

基本的には「キーボードを見て指を動かす」というのをできればしたくないので、ノールックで色々操作するには、やはり「ホームポジションから指を動かしたくない!」と思ってしまうんです。

そういうわけで、Vimに慣れようと思った経緯があったため、「Vim操作が出来ない場所でも同じようなコトができないか?」と思っていたら思わぬ標準機能がありました(笑)

  • なるべくホームポジションから移動したくない!

  • 慣れれば化けそうな効率化はどんどんやってみたい!

  • カッコ良さそう!

と思った人はぜひ試してみてください!

関連記事

timestamps-converter-cover.avif

「このUNIXタイムスタンプいつ?」をサクッと解決!Mac開発者のための快適設定

Python+シェルスクリプトでUNIXタイムスタンプ(秒/ミリ秒)を即変換。

adobe-graduation-ceremony-cover.avif

【Adobe卒業式】年間10万円の節約!AdobeからApple Creator Studioに乗り換えた話

高額なAdobe税から卒業!解約の違約金トラップや、解約前にやるべき事などを解説。

vim-believer-cover.avif

爆速コーディングを実現するVimを布教する記事【入門編】

俺選!実務で爆速化する神コマンドを厳選して布教します。

timemachine-to-mac-transfer-cover.avif

意外と簡単!Time MachineでMac環境をお引越し(M1→M5)

Time MachineでMacを移行したらほぼそのまま復元できた話。

vite-first-guide-cover.avif

「アナタ無しでは生きられない!」Viteを使って今スグ爆速の開発環境を整えよ!

保存した瞬間にブラウザが更新されるViteの「ホットリロード」を活用した爆速開発環境を作る手順を解説!

jetstream-profile-image-cover.avif

Jetstream(Laravel)でプロフィール画像が表示されない会場はこちらです

Jetstreamで画像が保存・表示されない原因をケースごとにまとめました。

wordpress-enqueue-scripts-cover.avif

コピペで完了!WordPressでスクリプトにdefer・async・moduleを付ける方法

WordPressでスクリプトにdefer・async・moduleを付ける方法を解説。コピペで使えるサンプル付き。

cloud-document-cover.avif

使ってみたいよね?Adobeクラウドドキュメントを試してみた

Adobeクラウドドキュメントを試して感じたメリットとデメリットをまとめました。

lv-sl-error-cover.avif

Laravelでstorageの画像が表示されない件

Webアプリ(Laravel)をサーバー移動した際に画像が表示されなかった場合の備忘録です。

railx6sj-cover.avif

ssh接続エラー: Too many authentication failuresをどうにかする

SSH接続時に出現する「Too many authentication failures」のエラーの解決法についてご紹介。

kusanagi-sever-error-cover.avif

KUSANAGIでサイトが表示されない場合は初心にかえる

KUSANAGIサーバーでどうやっても希望のドメインがサイトから見れなかった場合に試してたい選択肢をご紹介。

kusanagi-laravel-cover.avif

「爆速KUSANAGI」に『爆速Laravel』をインストール

爆速WordPressで人気の高いKUSANAGIサーバーに、Laravelをインストールし、爆速で使って見ようという事になりました。


新着記事一覧

kindle-comic.png

無料で漫画を一気読み!Kindleで出産レポ・育児漫画などなど

timestamps-converter-cover.avif

「このUNIXタイムスタンプいつ?」をサクッと解決!Mac開発者のための快適設定

Python+シェルスクリプトでUNIXタイムスタンプ(秒/ミリ秒)を即変換。

adobe-graduation-ceremony-cover.avif

【Adobe卒業式】年間10万円の節約!AdobeからApple Creator Studioに乗り換えた話

高額なAdobe税から卒業!解約の違約金トラップや、解約前にやるべき事などを解説。

vim-believer-cover.avif

爆速コーディングを実現するVimを布教する記事【入門編】

俺選!実務で爆速化する神コマンドを厳選して布教します。

timemachine-to-mac-transfer-cover.avif

意外と簡単!Time MachineでMac環境をお引越し(M1→M5)

Time MachineでMacを移行したらほぼそのまま復元できた話。

apple-fitness-plus-cover.avif

体重乱高下アラフォーがApple Fitness+に行き着いた話

激しい体重の増減を繰り返したチョコザップユーザーが、コスパ最強の「Apple Fitness+」に乗り換えました。

vite-first-guide-cover.avif

「アナタ無しでは生きられない!」Viteを使って今スグ爆速の開発環境を整えよ!

保存した瞬間にブラウザが更新されるViteの「ホットリロード」を活用した爆速開発環境を作る手順を解説!

with-pomodoro-technique-cover.avif

「私のコトですか?」過集中&注意力散漫な人に刺さる!効率化ではなく“生存戦略”のポモドーロ術

集中力が「0か200」しかない人に朗報!ポモドーロ・テクニックが脳の暴走を止める最強の特効薬でした。

jetstream-profile-image-cover.avif

Jetstream(Laravel)でプロフィール画像が表示されない会場はこちらです

Jetstreamで画像が保存・表示されない原因をケースごとにまとめました。

wordpress-enqueue-scripts-cover.avif

コピペで完了!WordPressでスクリプトにdefer・async・moduleを付ける方法

WordPressでスクリプトにdefer・async・moduleを付ける方法を解説。コピペで使えるサンプル付き。

cloud-document-cover.avif

使ってみたいよね?Adobeクラウドドキュメントを試してみた

Adobeクラウドドキュメントを試して感じたメリットとデメリットをまとめました。

lv-sl-error-cover.avif

Laravelでstorageの画像が表示されない件

Webアプリ(Laravel)をサーバー移動した際に画像が表示されなかった場合の備忘録です。