nie można wkleić za pomocą xclip poza terminalem

40

Próbuję skopiować z terminala za pomocą xclipa i wkleić go do środowiska pulpitu unity w edytorze tekstu gedit. Mogę skopiować i wkleić za pomocą xclip w terminalu:

$ cat line-size.c | xclip
xclip -o > input5.txt
cat input5.txt
#include <stdio.h>
...

Jednak po naciśnięciu klawiszy control + v, aby wkleić do programu gedit, wkleja tylko ostatnią rzecz, którą skopiowałem na pulpicie jedności, na przykład coś z przeglądarki Firefox.

Jak wkleić do aplikacji GUI coś, co skopiowałem z terminala?

JohnMerlino
źródło

Odpowiedzi:

71

Myślę, że to tylko kwestia zrozumienia różnych schowków wyboru używanych przez xclipnarzędzie

   -selection
          specify  which X selection to use, options are "primary" to use
          XA_PRIMARY (default), "secondary" for  XA_SECONDARY  or  "clip‐
          board" for XA_CLIPBOARD

Kiedy robisz cat line-size.c | xclipto domyślnym zachowaniem jest kopiowanie do podstawowego bufora wyboru X - aby wkleić z tego bufora, musisz użyć środkowego kliknięcia myszy zamiast kombinacji Ctrl+ v.

Zamiast tego skopiuj do schowka, aby wkleić za pomocą Ctrl+ v, musisz zrobić

cat line-size.c | xclip -selection clipboard
steeldriver
źródło
1
Równie łatwo można go wkleić, przesyłając do xclip bez dodatkowych argumentów. Zamiast Ctrl + v wystarczy użyć środkowego kliknięcia myszy.
TheBicentennialMan
Można to zmienić naxclip < line-size.c -selection clipboard
JamesTheAwesomeDude
@SubhamoySengupta zobacz moją edycję
kbtzr
5
Instrukcja cat line-size.c | xclip -sel clipma taki sam wynik, żecat line-size.c | xclip -selection clipboard
Geison Santos
Nie mogę sobie wyobrazić, aby domyślnym przypadkiem użycia xclipbyła interakcja z czymś innym niż schowkiem użytkownika.
aaaaaa
6

Na wszelki wypadek, jeśli ktoś szuka najkrótszej wersji bez użycia aliasów. Używając something|xclip -se czamiast goły something|xclip, możesz nacisnąć Ctrl + V / Ctrl + Shift + V i zobaczyć pożądany wynik. Gdzie something — cat somefile.txtna przykład.

mieszaniec
źródło