Macでは、コントロールキーを押しながら Hキーを押すと「バックスペース」になります。
これは、ASCIIの制御コード「BS」を入力するときに、コントロールキーを押しながら0x40足した文字「H」を入力したことに由来しています。
1. macOSのControl + H は bashに由来する
macOSには Controlキーによる、編集作業のショートカットキーがあります。
これらの多くは、UNIXプログラムの Emacsや bashのキーバインドに由来します。
macOSで Control + H(^h)は、バックスペースの役割になります。
しかし、これは Emacs だと、ヘルプの表示です。
バックスペースではありません。
一方、bashでは バックスペースになっています。
つまり、macOSでは bash を踏襲しているようです。
2. Control + H は ACSIIの制御コードに由来する
bash の多くのショートカットキーは Emacsに由来します3が、 C-h の場合は さらに Emacs より遡り、ASCIIでの「制御コード」の慣習によるものです。
ASCIIのコード表をみると、
バックスペース(BS)の制御コードは「0x08」です。
一方、「H」は「0x48」です。
16進数での下位が同じ「8」になっているのがポイント。
ASCIIの「制御文字」をキーボードから入力する場合、コントロールキーを押しながら 制御文字の文字コードに 0x40 を足した文字を入力するようになっていました4。
逆にいうと、コントロールキーを押しながら英字キーを押すと、その「0x40」分を引いた制御コードが入力されるわけです。
同様の例に C-j, C-m の改行があります。
ただし、macOSで採用されているのは Control + H(^h)だけのようです。
こちらもどうぞ。
なぜ Macにはコマンドキーとコントロールキーがあるのか? 【ターミナル操作】
コマンドキーの操作系列とコントロールキーの操作系列が重ならないのがメリットです。 インターネット利用や画像編集などGUIの操作とターミナル作業がスムーズに「繋がる」のです。 「コマンドキー」と「コントロールキー」 Macのキーボードには「コマンドキー」と「コントロールキー」があります。 それって、違うキーなの? そもそも似たようなキーが2つもあるなんて謎ですよね。わたしもそうだったんですが、使っているうちに「あぁ、そういうことか!」と眼から鱗の落ちました。 ということで、今回...
Macで Control+M を改行に設定する(Karabiner-Elementsの設定)
MacBookの controlキーは、UNIX系のショートカットキー操作が利用できるのが面白い特徴です。 ところが、一部のキー操作はアプリによって動作したり、しなかったり、ということがありました。 control-mは returnキーと同等ではないのか? 例えば、「control-m」のキー操作。Emacsやターミナルでは「改行(return)」にバインドされているキー操作です。 しかし、macOSのアプリで操作していると、これが動作するときと、しないときがあることに気づ...
[Mac] control + T のショートカット(文字の「転置」)
Macで controlキー押しながら T を押すと、「文字の転置」になります。カーソル位置の左右の文字を入れ替えて、カーソルを次に進めます。 英文タイプミスならともかく、日本語ではあまり利用する機会はありません。 元に戻すには、いったんカーソルを左に移動してから、もう一度 control + T です。 また、control + T を連打すると、カーソル位置の左にあった文字が、どんどん右に移動していきます(バブルソートみたいな感じで)。 macOSでのcontrolキーの...
ASCIIコード表 フリー
この 作品 は クリエイティブ・コモンズ 表示 - 継承 4.0 国際 ライセンスの下に提供されています。
http://creativecommons.org/licenses/by-sa/4.0/
https://chiilabo.co.jp/licenses-image/
この 作品 は クリエイティブ・コモンズ 表示 - 継承 4.0 国際 ライセンスの下に提供されています。
http://creativecommons.org/licenses/by-sa/4.0/
https://chiilabo.co.jp/licenses-image/
(補足)
- GNU Emacs Manual – Help
- bashのキーバインド(キーボードショートカット) まとめ – readlineとbind、ついでにstty編 – うまいぼうぶろぐ
- 「ターミナル内のシェル は bash です。これは元々「Emacs風キーバインド」のよう」 – Emacs 風キーバインド – 半月記
- 「制御文字をキーボードから入力するときは、制御文字 の文字コードに0x40を足した文字を、Ctrlキーを押しながらタイプ する」 – Character Code
QRコードを読み込むと、関連記事を確認できます。