web-dev-qa-db-ja.com

Ctrl-Insertを使用してXTermからコピーする方法は?

Firefoxのようなアプリケーションでは Ctrl-Insert そして Shift-Insert のように働く Ctrl-c そして Ctrl-vsecondaryクリップボードを変更する)が、XTermでは機能しないのように 一般的な Ctrl-Shift-c そして Ctrl-Shift-v

  1. Ctrl-Insert はクリップボードを変更せず、代わりに現在のプロンプトに文字どおり;5~を出力します。
  2. Shift-Insert セカンダリの代わりにprimaryクリップボードを貼り付けます。

これを .inputrc またはそれ以外で修正できますか? 2ストローク クロスプラットフォームのカットアンドペーストのショートカット どこにでもあるといいでしょう。

4
l0b0

xtermは、FirefoxやWebでさえも発明される何年も前に確立されたものであり、アプリケーションリソースによって制御されています。これらは、/usr/share/X11/app-defaults/XTermなどのファイルや、xrdb -qで表示されるX11サーバーが保持する情報など、いくつかの場所からマージされます。これらのリソースをオーバーライドするには、たとえば、ファイル~/.Xdefaultsに次のようなものを配置します。

XTerm*VT100.Translations:       #override\n\
 Shift Ctrl <KeyPress> v: insert-selection(CLIPBOARD)\n\
 Shift Ctrl <KeyPress> c: copy-selection(CLIPBOARD)\n

これはバインドします ctrl-shift-v クリップボードの内容を挿入します。私はあなたが何を望んでいたのか正確にわかりません、それで man page をチェックして、関数とPRIMARY、SECONDARY、CUT_BUFFER0の選択を確認してください。


あなたはおそらく追加することができます(前の行のバックスラッシュを忘れないでください):

Shift <Key>Insert: insert-selection(SECONDARY)\n\
Ctrl  <Key>Insert: copy-selection(SECONDARY)\n
8
meuh

これはxtermからテキストをコピーするにはどうすればよいですか(Awesome、Debian、VirtualBox)?に類似しており、提案された回答の一部が含まれています。

ただし、バックグラウンドとして、xtermはXイベント(xevを使用して確認できます)を受け取り、さまざまな方法でそれらを処理します。

  • ために controlinsert、xtermは、control-およびinsert-keysのイベントを確認し、アプリケーションに送信する一連の文字を構成します(例:^[[28;5~)。
  • shiftinsert xtermの defaulttranslationsresource の一部であるため、処理方法が異なります。これは、Xツールキットライブラリの機能ですbefore xtermはイベントを表示できます。 translationsリソースでは、次の行です。
 Shift Insert:insert-selection(SELECT、CUT_BUFFER0)\ n\

このリソースのSELECTキーワードは、xtermによって、selectToClipboardリソースに応じてPRIMARYまたはCLIPBOARDのいずれかとして解釈されます。 (またはクリップボードに選択メニューエントリ)。ちなみに、CLIPBOARDは二次選択ではありません。二次選択の説明については、ICCMの 2.6.1.2。二次選択 を参照してください。

selectToClipboard リソースを有効にするには、これを$HOME/.Xdefaultsファイル(またはxrdbを使用している場合でも他のリソースファイル)に追加します。

xterm*selectToClipboard: true

controlおよびshift修飾子(いずれかの順序)、およびinsertキーを使用して翻訳を追加することもできます。他の質問で私の答えを適応させる:

xterm*VT100.Translations: #override \
                 Shift <Key>Insert:    insert-selection(SELECT) \n\
                 Ctrl <Key>Insert:     insert-selection(SELECT) \n\
                 Ctrl Shift <Key>V:    insert-selection(SELECT) \n\
                 Ctrl Shift <Key>C:    copy-selection(SELECT)

X Toolkitの翻訳パーサーは、キーワードのさまざまなスペルを認識します。したがって、KeyKeyPressおよびKeyDownと同じです。しかし、Ctrlは、 control キー。

あなたがいる間できた追加 controlC そして controlV、これは一般的にはお勧めできません。これらのコントロールキーは端末で(デフォルトで)便利だからです。

$ stty -a
speed 38400 baud; rows 40; columns 80; line = 0;
intr = ^C; quit = ^\; erase = ^H; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff
-iuclc -ixany -imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
echoctl echoke

参考文献:

3
Thomas Dickey