URxvtを使用したコピーと貼り付け


27

私は、Debian jessieでURxvt 9.20を使用しています。gnome-terminalで使用したようなテキストをコピー&ペーストする方法を探しています(Ctrl+ Insertコピー、Shift+ Insert貼り付け)。

異なるurxvtコンソールで動作ますが、urxvtとiceweaselの間では動作しません。

私はarchlinuxのマニュアルに従って試してみましたが、うまくいきません(実際には使用したくありませんがShift+ Ctrl+ C/ V試してみる価値がありました)。

.Xresources:

! ******************
! urxvt config
! ******************

! Disable Perl extension
! If you do not use the Perl extension features, you can improve the security
! and speed by disabling Perl extensions completely. 
URxvt.perl-ext:
URxvt.perl-ext-common:

! Font spacing
! By default the distance between characters can feel too wide. It's controlled
! by this entry: 
! URxvt.letterSpace: -1

! -- Fonts -- !
URxvt.font:xft:Monospace:pixelsize=13
URxvt.boldfont:xft:Monospace-Bold:pixelsize=13
!URxvt*font:  -xos4-terminus-medium-*-*-*-14-*-*-*-*-*-iso8859-15,xft:terminus:pixelsize:12
!URxvt*boldFont:  -xos4-terminus-bold-*-*-*-14-*-*-*-*-*-iso8859-15,xft:terminus:bold:pixelsize:12
!URxvt*italicFont:  xft:Bitstream Vera Sans Mono:italic:autohint=true:pixelsize=12
!URxvt*boldItalicFont:  xft:Bitstream Vera Sans Mono:bold:italic:autohint=true:pixelsize=12

! Disable scrollbar
!URxvt*scrollBar: false

! Scrollbar style - rxvt (default), plain (most compact), next, or xterm
URxvt.scrollstyle: plain

! Background color
!URxvt*background: black
URxvt*background: #1B1B1B

! Font color
!URxvt*foreground: white
URxvt*foreground: #00FF00

! Other colors
URxvt*color0: black
!URxvt*color1: red3
URxvt*color1: #CD0000
URxvt*color2: green3
!URxvt*color3: yellow3
URxvt*color3: #C4A000
URxvt*color4: blue2
!URxvt*color4: #3465A4
URxvt*color5: magenta3
URxvt*color6: cyan3
URxvt*color7: gray90
URxvt*color8: grey50
URxvt*color9: red
URxvt*color10: green
URxvt*color11: yellow
!URxvt*color12: blue
URxvt*color12: #3465A4
URxvt*color13: magenta
URxvt*color14: cyan
URxvt*color15: white
! ******************
! /urxvt config
! ******************

マウスでテキストを選択してコピーし、中クリックで貼り付けられることを知っていますか?そうでない場合、それで十分ですか?
テルドン

2
ここでの問題は、2つのプログラムが異なるX-Windows選択を使用していること、従来のプログラムPRIMARYがShift + Insertを使用して選択を使用していること、および他のシステムのキーバインドを模倣しようとする新しいプログラムがCLIPBOARD同じキーバインドの選択を貼り付けることです。GTK +ではPRIMARY、マウスを使用せずに貼り付けるのが難しくなりました(@terdonが言ったように中央クリック、または3番目のボタンエミュレーションがオンの場合は左+右クリック)。しかし、これはプログラムがプログラム間でデータを渡さない理由を説明していますが、なぜアーチwikiの提案が機能しなかったのでしょうか。
njsg

ArchWIkiからの提案をどのように試しましたか?あなたがXを起動するために、グラフィカルログイン画面を使用している場合は、使用してXのリソースを再ロードする必要がありますxrdb(それがあるべきxrdb ~.Xresourcesか、似たような)。いずれにしても、再起動する必要がありますurxvt。一部のディストリビューションでは、perl拡張機能を備えた個別のパッケージをインストールする必要がありますが、これrxvt-unicodeはdebian のベースパッケージに含まれているようです(ただし、間違っている可能性があります)。
njsg

1
@terdon、コメントありがとう。マウスで選択し、中クリックで貼り付けても実際に機能します。残念ながら、それは私が達成したいものではなく、私が慣れているようにCtrl + Insert / Shift + Insertを使用したいです(習慣とマントラは私たちを効率的かつ高速に動作させ、マウスをあまり使用していません(私はi3wmを使用))。
トーマス・ジョン

@njsgは、プライマリ/クリップボードの違いを説明してくれてありがとう。ArchWikiの「カスタムキーバインディング」で言及されているPerl拡張を試しましたが、違いはありませんでした(もちろん、使用する前に.Xresourcesの「Disable Perl extension」の部分をコメントアウトしました)。-はい、$ xrdb -merge ~/.Xresource最初にした-はい、urxvtを再起動したか、新しいurxvtターミナルウィンドウを開いたが、これは最も重要なポイントを言及するのを忘れたのと同じ効果がある:デスクトップ環境がインストールされていない:-私はm Windowsマネージャー(i3wm)のみを使用-グラフィカルログインマネージャーを使用します
トーマスジョン

回答:


16

残念ながら、Xウィンドウシステムにはいくつかの異なるコピーペーストメカニズムがあります。

Rxvtは、ほとんどの旧式のXアプリケーションと同様に、プライマリ選択を使用します。一般に、マウスで何かを選択すると、それが自動的にプライマリ選択にコピーされ、中央クリックして貼り付けると、プライマリ選択が貼り付けられます。

CtrlGnome-terminalやFirefoxなどの最新のGUIツールキットを使用するアプリケーションの+ CおよびCtrl+ V(またはその他のキーバインディング)は、クリップボードからコピー/貼り付けします。

選択範囲の操作を容易にするツールがあります。特に、マウスで選択するかCtrl+を押すかどうかに単一の選択をコピーするC場合は、autocutsel.xinitrcデスクトップ環境の起動プログラムから起動するか)を実行します。選択の1つで、他の選択に自動的にコピーします。


20

テキストを貼り付ける場合、urxvt / rxvt-unicodeでmiddle buttonPRIMARY選択を貼り付け、Alt/Meta+ middle buttonを使用してCLIPBOARD を貼り付けることができます。

コピーするには、ターミナルでテキストをマークするだけで、PRIMARY選択にコピーされます。ただし、CLIPBOARDの選択にコピーするにはいくつかの作業が必要です。:私はあなたがスクリプトのrxvt-ユニコード-9.19に含まれており、このようなスクリプトになってしまったとリンクArchlinuxページからの情報を組み合わせhttps://gist.github.com/xkr47/98224ed6b0860cb55ec0を。それは1が使用することができますCtrl+ InsertまたはCtrl+ Shift+ c`クリップボードに現在選択されているテキストをコピーします。

お役に立てれば。

記録のために、デスクトップ環境も実行していません。Sawfishをウィンドウマネージャーとして使用します。

ヒント:「xclip」プログラムを使用して、ターミナルでクリップボードを監視できます。

while :; do echo -ne '\033[31;1mCLIPBOARD: ' ; xclip -o -sel c ; echo ; echo -ne '\033[32;1mPRIMARY:   ' ; xclip -o -sel p ; echo ; echo -e '\033[m--------' ; sleep 1 ; done

または「xsel」プログラムを使用して:

while :; do echo -ne '\033[31;1mCLIPBOARD: ' ; xsel -b -o ; echo ; echo -ne '\033[32;1mPRIMARY:   ' ; xclip -p -o ; echo ; echo -e '\033[m--------' ; sleep 1 ; done

サイドトピック:どのようにPRIMARYとのEmacsでクリップボードの選択作業に関する情報:emacswiki.org/emacs/CopyAndPaste
ジョナス・ベルリン

Altキー/メタ+真ん中のボタンは、Debianに私の作品
ジン

これは正解です。
ウィニー

15

コピー/貼り付けPRIMARY(ユーザーが一部のデータを選択するときに使用)およびCLIPBOARD(ユーザーが一部のデータを選択し、呼び出しなどによってクリップボードに「コピー」するよう明示的に要求するときに使用される)組み込みのメカニズムがありますアプリケーションの「編集」メニューの下の「コピー」)。Xのさまざまなクリップボードの詳細

以下のためのCLIPBOARDバッファがあるCTRL+META+C(これはCTRL+ALT+Cコピーしための標準的なPCキーボード用)CTRL+META+VCTRL+ALT+Vペースト用)。

urxvt manからの引用:

選択:テキストの選択と貼り付け

テキスト選択および挿入/貼り付けメカニズムの動作は、xterm(1)に似ています。

選択

領域の先頭で左クリックし、領域の末尾までドラッグして放します。右クリックして、マークされた領域を拡張します。左ダブルクリックして単語を選択します。リソースtripleclickwordsによって変更されない限り、左トリプルクリックで論理行全体(複数の画面行にまたがることがあります)を選択します。

Metaキー(またはMeta + Ctrlキー)(コンパイル:フリル)を押しながら選択を開始すると、通常の選択ではなく長方形の選択が作成されます。このモードでは、選択されたすべての行が選択内の独自の行になり、末尾の空白に視覚的に下線が付けられ、選択から削除されます。

貼り付け

urxvtウィンドウで中マウスボタンを押して放すと、PRIMARY選択(またはMeta修飾子を指定したCLIPBOARD)の値が、キーボードで入力されたかのように挿入されます。

Shift-Insertを押すと、PRIMARY選択の値も挿入されます。

rxvt-unicodeは、Ctrl-Meta-cバインディングを提供し、CLIPBOARD選択と対話します。最初のバインディングでは、内部選択の値がCLIPBOARD選択にコピーされ、2番目のバインディングでは、CLIPBOARD選択の値が挿入されます。


ソリューションがマニュアルページにあると思わないのはなぜですか?これですべてが明確になりました!ありがとうございました!
エンリコマリアデアンジェリス

1
ちなみに、右クリックして貼り付ける前に何かを選択すると、プライマリ選択とクリップボードのどちらが貼り付けられるかを忘れていました。今では明らかだ:PRIMARY
エンリコマリアデアンジェリス

12

選択からクリップボードへのperl拡張を使用して、urxvtをプライマリとクリップボードの両方にコピーできます。これにより、それらの同期が維持されるため、urxvtで一度コピーするだけで、どちらを使用するアプリケーションでも動作するはずです。

URxvt.perl-ext-common: selection-to-clipboard

2
この拡張機能のショートカットを変更できますか?デフォルトのctrl-alt-c / vは好きではありません。ctrl-shift-c / vが欲しいです。
Trismegistos

3
@Trismegistos、ここに
コーダー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.