BashバインディングコマンドでMac OSコマンドキーを使用する

BashバインディングコマンドでMac OSコマンドキーを使用する

Ctrl-y私のUbuntu bashでは、テキストをクリップボードにコピーするためにキーの組み合わせを再マップしました。

bind -x '"\C-y": copy_line_from_x_clipboard'

効果があるMacBookに移行しているので、上記のCommandキーの代わりにキーを使用することをお勧めしますCtrl。 Mac OSコマンドキーを含むキーバインディングの例をオンラインで見たことはありません。次のようにCommand-yコマンドを使用してキーの組み合わせを取得しようとしています。sed -n lここCommand-yただし、キーストロークを入力すると空白行が表示されます。

興味のある人のためにクリップボードからテキストを貼り付けるために呼び出される関数は次のとおりです。

copy_line_from_x_clipboard() {
        local n=$READLINE_POINT
        local l=$READLINE_LINE
       local s=$(xsel -ob)
       READLINE_LINE=${l:0:$n}$s${l:$n:$((${#l}-n))}
       #READLINE_LINE=${l:0:$n}$s
       READLINE_POINT=$((n+${#s}))
}

答え1

一コメントによるとコンソールVimでCMDマッピングを使用するCommand、Terminal.appのキーは使用できません。できるiTerm2で。

あなたは探しているかもしれません修飾子、例えば、またはキーのようなものshiftです。controlaltmeta

Terminal.appのキーボード設定には、これらの修飾子を使用する初期キー定義セットがあり、これらの定義をOption変更したり新しい定義を追加したりできます。

以下は、ダイアログボックスを示すいくつかのスクリーンショットです。

キーボード設定画面を表示

2番目のスクリーンショットはOption(単独でまたは他の修飾子と一緒に)表示されますが、Command端末で実行されているプログラムでは使用できません。

キーに使用可能な修飾子の表示

答え2

iTerm2を使用している場合は便利なヒントがあります...

  1. 基本設定 - >キー - >キーバインディングに移動します。
  2. カスタマイズしたいキーの組み合わせを「無視」に設定して、基本機能から切り離します。
  3. 基本設定 - >プロフィール - >キーに移動します。
  4. Ctrlキーと同等のUnicode 16進コードを送信するようにキーの組み合わせを設定します。たとえば、^Rは0x12です。

関連情報