web-dev-qa-db-ja.com

bashのbindコマンドでMacOSコマンドキーを使用する

私のubuntubashでは、Ctrl-yキーコンボを再マップして、テキストをクリップボードにコピーしました。

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

できます。今、私はMacbookに移行しています。上記のCommandキーの代わりにCtrlキーを使用するのが好きです。 Mac OSのコマンドキーを含むキーバインドの例がネット上にありません。そして、説明されているように、コマンドCommand-yを使用してsed -n lのキーコンボを取得しようとしました here ですが、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}))
}
5
user93868

コンソールVimでCMDマッピングを使用のコメントの1つによれば、 Command Terminal.appでキーを押しますが、iTerm2ではできます

あなたはおそらく修飾子を探しています shift、 control、たとえば、 alt または meta キー。

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

そのダイアログを示すスクリーンショットをいくつか示します。

showing the keyboard preferences screen

2番目のスクリーンショットは Option (単独で、または他の修飾子と組み合わせて)、しかし Command ターミナルで実行されているプログラムでは使用できません。

showing the available modifiers for keys

6
Thomas Dickey

ITerm2を使用している場合に役立つトリックがあります...

  1. [設定]-> [キー]-> [キーバインディング]に移動します
  2. カスタマイズするキーのコンボを「無視」に設定して、デフォルトの機能から切り離します
  3. [設定]-> [プロファイル]-> [キー]に移動します
  4. キーコンボを設定して、ctrl相当のUnicode 16進コードを送信します。たとえば、^ Rは0x12です。
0
Ethan Joffe