ctrlBashでは、+を押してvそのまま挿入を開始します。アキュムレータモードでEscキーを押すとbashが表示されます^[
。私はそれをファイルにリダイレクトしますesc
。
また、逐語モードでctrlキーを押すと[bashが表示されます^[
。私はそれをファイルにリダイレクトしますctrl
。
次に、2つのファイルを比較した結果、同じものが見つかりました!
$ echo '^[' > esc
$ echo '^[' > ctrl
$ diff esc ctrl
$
Ctrl+[とEsc同じコンテンツを生成するのはなぜですか?
^[
ここC0およびC1制御コード?それでは、Wikiの記事には^[
Escapeと言われていますがctrl+[もEscapeなのはなぜですか?
基本的な問題は、キーバインディングを確認して生成したいということです。
(zsh)$ bindkey -L
...
bindkey "^['" quote-line
...
だから私は入力する必要ESC+'
がありますかctrl+[+'
?
ベストアンサー1
^A
これは文字コード1で、^@
NULバイトを表すために使用されるCtrl-Aと同じロジックに従うようです。ここでは^
、Ctrlを別のキーで表現する一般的な方法です。
つまり、与えられた入力文字コードは次のようになります。Ctrl-foo金持ちビット6がクリアされ、文字コードが64減少します。したがって、A
文字コード^A
1は文字コード65、0の64、27の@
ESCです。 ESC には別個のキーがありますが、制御文字も生成する Enter キーと Tab キーもあるので、それほど珍しいものではありません。^@
[
^[
もちろん、現代のシステムの仕組みは、キーマップやキーバインディングの設定方法などの他の要因によっても変わります。また、たとえば、文字コードが64未満の場合はどのように機能するのか尋ねないでください。端末で試しましたが、NULバイトが出ました。Ctrl-something^1
Ctrl-space