矢印キー上下の代わりにcontrol + nとcontrol + pを激推ししたい話

はじめに

突然ですが、

macbookの矢印キーの上下、すっごく押しにくくないですか??

左右は他のキーと同じサイズだから許す。ただし上下キー、テメーはダメだ。

場所が遠い。小さい。すこぶる小さい。なんでCAPSキーよりも小さいの *1 。
今使っているmacの前はwindowsを使っていたので、「下キーは左右キーの間、上キーはその上」のつもりでタイピングしてしまい頻繁に打ち間違えます。下キー押そうとすると50%の確率で上キー押します。上キー押そうとすると50%の確率でshiftキーを押します。
しかもこのタイプミスがなかなか治らない。

ということで…

control+ncontrol+pを使いましょう

今回伝えたいのはこれだけです。tldrです。
長い文章を読みたくない人はこれだけ頭に入れてブラウザバックしてもいいくらいです🙃
以下control+n^ncontrol+p^pと表記します。

効果

  • 「カーソルを上下に動かす」操作のために手をホームポジションから動かさずに済む
    -> 文字を打つ流れのままカーソル移動ができる
    -> コーディングなどの作業が圧倒的に早くなる💪

副作用

  • タイプ数が増えます -> (個人的には)あんまり気になりません。
  • 慣れるまで少し効率が落ちます -> 頑張って慣れましょう。慣れたら楽になること請け合いです。

^n^pが使える場所

矢印キー上下でできる操作の大多数が^n^pでできます。タイプ数は増えるけど、右手をホームポジションからキーボードの右下に持っていくより圧倒的に楽。

  • chromeの検索候補の上下移動
    tab,shift+tabでも同様のことができます。どっちでも上下キーより楽。

  • XcodeなどなんかしらのIDE
    エディタはもちろん、候補の変更も^n,^pで。 (Xcode以外のエディタはあまり検証してません)

  • ターミナル
    コマンドの履歴を行ったり来たり。

まとめ

もうまとめです。
こういう話を知っている人ってエンジニアの中でどれくらいいるんだろう、実はエンジニアの中じゃ常識だったらひたすら内容薄い記事になるなぁと不安になりながら書きました 👼
でも私は^nと^p使うようになってからエンジニアとしてのQOLが爆上がりしたので、みなさんも^nと^pを使って素晴らしいキーバインド生活をお送りください。

おまけ

キーボードビューア

この記事で出てきている↓これ、キーボードビューアと言います。

反応したキーが可視化されるので、キーボードの調子がおかしい時に開いて動作確認してみましょう *2 。

画面右上のをクリック > キーボードビューアを表示から出せます。

^nと^p以外の^(1文字)キーも一緒に激推ししたい話

キーバインドを覚えるのが コーディングより 好きで、定期的にキーバインドを覚えるようにしています。
コマンドは英単語と一緒に覚えると吉です。

キー効果覚え方
^n次の行へ移動(下キーのような動作)Next
^p前の行へ移動(上キーのような動作)Prveious
^f1文字右(前方)へ移動(右キーと同じ)Forward
^b1文字左(後方)へ移動(左キーと同じ)Backward
^a行の先頭へ移動line he A d
^e行末尾へ移動line End
^dカーソルの右の文字を削除Delete
^hカーソルの左の文字を削除(deleteキーと同じ)
^kカーソルから行末までの文字全て削除Kill line
^w直前の1単語を削除(ターミナルのみ、alt+deleteと同じ)Word rebout(すり潰す)
^uカーソルから行頭までの文字を削除(ターミナルのみ、⌘+deleteと同じ)c U t *3
^y^kや^wで削除した文字列を貼り付けYank
^tカーソルの左右にある文字を入れ替えTranspose
^lカーソル位置を画面の中心にする(一部アプリ) or 画面の文字をクリアする(ターミナルのみ)c L ear screen
^k(文字入力中に)全てカタカナに変換
^j(文字入力中に)全てひらがなに変換
^l(文字入力中に)全て全角英数字に変換
^;(文字入力中に)全て半角英数字に変換

ブラウザでもcontrolキーのショートカットを激推ししたい話

エンジニア稼業と切っても切れないのがネットでの調べ物。
ブラウザでもショートカットを多用するとネットサーフィン調べ物も捗るというものです。
chromeのショートカット一覧

よく使うのは、新しいタブを開く、閉じる、間違えて閉じたタブを再度開く(⌘t、⌘w、⌘T)、検索欄にフォーカスする(⌘l)、特定のタブに切り替える(⌘1~8、⌘9)などあります

でも私が他の方があまり使っていないけど激推ししたいのはcontrol+tabです。
効果は隣のタブに移動するだけです。でもGUIでタブをクリックして切り替えるより圧倒的に楽です。

emacsキーバインドを確認する

$ bind -p

"\C-g": abort
"\C-x\C-g": abort
"\e\C-g": abort
"\C-j": accept-line
"\C-m": accept-line
# alias-expand-line (not bound)
# arrow-key-prefix (not bound)
# backward-byte (not bound)
"\C-b": backward-char
"\eOD": backward-char
"\e[D": backward-char
"\C-h": backward-delete-char
"\C-?": backward-delete-char
"\C-x\C-?": backward-kill-line
"\e\C-h": backward-kill-word
"\e\C-?": backward-kill-word
"\eb": backward-word
"\e<": beginning-of-history
"\C-a": beginning-of-line
"\eOH": beginning-of-line
...

bash -pでものすごい量のemacsキーバインドが出てきます *4 。mac OSのキーバインドはemacsが基になっているものも多いので、見ると勉強になるかもしれません。

*1: [wikipedia]でも存在意義が疑われているcapsキー、FORTRAN書く人くらいしか困らなさそう。偏見ですが

*2: MacBookのバタフライキーボードはAppleでも無償の修理に対応しているくらい壊れやすく、打鍵の調子がおかしい時はキーボードビューアを見て正しく反応しているのか調べてみるのも手です。

*3: bashでは行頭 ~ カーソルまで削除、zshでは行全体を削除するらしいです。私はbash教徒の⌘+delete派なので^uはほぼ使わないです。

*4: emacsのものすごい量のキーバインドは修飾キーが7つあるスペースカデットキーボードの影響を受けており、写真を見るとこの記事くらいの量のキーバインドなら覚えてもいいかな…というお気持ちになります