キーバインディング機能で端末の編集可能な文字列に値を貼り付けることはできますか?

キーバインディング機能で端末の編集可能な文字列に値を貼り付けることはできますか?

Bashバインディングについて知っています。 bind -x '"\C-k":"mc"'- この例では、編集可能なコマンドが完了していない間にmcを実行できます。このようにして多くのマクロを実行できると思います。これはX11なしで作業するときに便利です。

次の方法でテスト値を貼り付けようとします。

bind -x '"\C-o":"echo -n 123"'
bind -x '"\C-o":"echo -n 123 >> /dev/pts/12"
bind -x '"\C-o":"xclip -out"'
bind -x '"\C-o":"expect exp.txt"'

しかし、結果は

ここに画像の説明を入力してください。

別のアイデア:

  • bashのクリップボード(Ctrl-w、Ctrl-y)を使用してください。 Man bashはこれを「キルリング」と呼びます。しかし、プログラムで使用する方法が見つかりません。
  • テキストの各文字を押すことをシミュレートするプログラムとしてエコーされます。

ベストアンサー1

見つけました。man bashコマンドの説明ではこれについて説明しますbind

編集可能な文字列には変数があります:READLINE_LINE、、、READLINE_MARKREADLINE_POINT

その後、コマンドは次のようになります。

bind -x '"\C-o":"READLINE_LINE=$READLINE_LINE$(date '+%Y%m%d-%H%M%S')"'

ここに画像の説明を入力してください。

おすすめ記事