Narzędzie do kopiowania i wklejania ze schowka wiersza poleceń?


127

W systemie Windows korzystałem z narzędzi do kopiowania i wklejania schowka z wiersza poleceń ...

  • pclip.exe i gclip.exe

Były to porty UnixUtils dla Windows (ale obsługiwały tylko zwykły tekst). Było kilka innych rodzimych narzędzi Windows, które mogły pisać / rozpakowywać dowolny format.

Szukałem czegoś podobnego w Menedżerze pakietów Synaptic, ale nic nie mogę znaleźć.

Czy jest tam coś, za czym tęskniłem? ... a może jest to dostępne w skryptach Bash?

Typ narzędzia, które chciałbym móc czytać / zapisywać przez std-in / std-out lub file-in / file-out i obsługiwać Unicode, Rich Text Format, obraz itp. Formaty schowka ...

NB: Nie szukam menedżera schowka.


Zobacz powiązane pytanie z unix.SE: unix.stackexchange.com/questions/30093/…
landroni


vim[enter]"+P : 3 (uruchom vim, a następnie z " rejestru - tj. Ze schowka systemowego - wklej tekst) . Następnie masz (jeden) najlepszych edytorów tekstu na wyciągnięcie ręki, więc możesz :w filename. Ponadto zawsze uruchamiam vim w tmux, co oznacza, że ​​jeśli muszę skopiować trochę tekstu do terminala, po prostu wybieram (z vlub Vdo wyboru linii), a następnie "+y(który szarpa lub kopiuje do schowka), a następnie robię nowy tmux panel i można <ctrl> + <shift> + v, aby wkleić. Dodatkowo skorzystam okazjonalnie, xsel -b > filenamejeśli będę musiał zapisać schowek do pliku. Na zdrowie ^ u ^
dylnmc

Odpowiedzi:


131

Używam Xsel Zainstaluj xsel , ale używam go tylko z tekstem zwykłym i tekstem Unicode.


xselmożna skopiować i wkleić do trzech różnych „schowków”. Domyślnie używa podstawowego wyboru systemu X Window , który jest w zasadzie tym, co aktualnie jest zaznaczone. System X Window ma również opcję dodatkową (która nie jest często używana) oraz opcję schowka . Prawdopodobnie szukasz wyboru schowka , ponieważ takie jest środowisko pulpitu (np. Gnome, KDE, XFCE) do swojego schowka. Aby użyć tego z Xsel:

xsel --clipboard < new-clipboard-contents.txt
xsel --clipboard > current-clipboard-contents.txt

1
Adi ... xsel wydaje się (?) Oparty tylko na tekście (jak wspomniałeś), więc szukam bardziej wszechstronnego narzędzia ... Jednak bardzo interesujące było dla mnie przeczytanie jego dokumentacji informacyjnej ... Wiedziałem, że kliknięcie środkowym przyciskiem myszy (w terminalu) wkleiłoby aktualnie zaznaczony tekst do wiersza poleceń, ale nie zdawałem sobie sprawy, że ta funkcja dotyczy większości aplikacji X ... Najnowszy wybór tekstu może być wklejone za pomocą środkowego kliknięcia (ale niektóre aplikacje wydają się go zastępować) .. Dwa schowki! .. Bardzo przydatne ... Muszę przeczytać więcej o 3. buforze wyboru X.
Peter.O,

Xsel działa z tekstem Unicode. Więcej informacji o schowkach X można znaleźć na stronach wiki freedesktop : freedesktop.org/wiki/Specifications/ClipboardsWiki .
Adi Roiban,

Muszę omijać te nowe informacje ... 3 schowki! PODSTAWOWY, WTÓRNY, SCHOWEK ... To bardzo różni się od tego, do czego jestem przyzwyczajony w systemie Windows ... Trzeci „SCHOWEK” wydaje się być taki sam jak schowek Windows / Mac ... ale tutaj jest absurdalnie późno .. Wrócę do tego jutro ... (Intersting, ale za dużo, by czytać teraz ..)
Peter.O

Dzięki ... xselwykonuje zadanie (dla tekstu) ... Coś może się pojawić w przypadku innych formatów.
Peter.O,

6
xsel -bjest skrótem od xsel --clipboard.
Andrei Duma,

85

xclip Zainstaluj xclip może być jednym z twoich wyborów.

cat samples.sh | xclip -sel clip

możesz także ustawić go w pliku .bashrc, używając aliasu.

alias clipboard='xclip -sel clip'

Kluczem do wklejenia danych binarnych do pliku xclipjest określenie, jakie typy multimediów masz w schowku. W przypadku PNG możesz:

xclip -selection clipboard -t image/png -o > "`date '+%Y-%m-%d_%T'`.png"

Więc teraz ~/Dropbox/.mybashrc;) możesz dodać alias (clipboard2photo), aby łatwo wkleić go do pliku obrazu (może kiedyś będziemy go mieć na Nautilusie ).


Wygląda dobrze, ale po prostu nie miałem okazji się temu przyjrzeć, ale ... Zrobię to jak najszybciej ...
Peter.O,

xclip obsługuje także tylko zaznaczenia tekstu.
Steve Beattie

2
Ponadto polecenie może być tak krótkie, jakxclip -se c
Jeromy Anglim

1
Nie rozumiem, dlaczego nie ma tego na stronie
podręcznika

1
Pojawia się to podczas próby wklejenia zdjęć do pliku Błąd: obraz docelowy / png niedostępny
Emilio Nicolás

12

Parcellite

Od wielu lat używam parcitelu jako menedżera schowka. Działa w obszarze powiadomień i oferuje wiele opcji zarządzania zarówno podstawowym wyborem, jak i standardowym schowkiem freedesktop.org.

Ikona tacy

To była moja odpowiedź na zarządzanie elementami schowka.

Preferencje


Wygląda to na dobrą aplikację panelową. „Działania” są przydatne ... ale niestety nie jest to narzędzie, którego szukam. Zmieniłem brzmienie mojego pytania, aby podać bardziej szczegółowe informacje ... Może dokładnie tym, czego szukam, jest niejasny skrypt Pythona lub coś podobnego ... Było kilka bardzo dobrych rodzimych narzędzi tylko do systemu Windows, więc sądzę, że gdzieś w Ubuntu / Świat Linuksa ...
Peter.O,

Do Twojej wiadomości, Parcellite ma fajną funkcję - historię kopiowanego tekstu. Aby aktywować automatyczne wklejanie z okna historii, powinieneś równieżinstall xdotool
Noam Manos

10

Niedawno natknąłem się na narzędziach xclip-copyfile, xclip-cutfileoraz xclip-pastefile(pakiet xclip). Te narzędzia umożliwiają kopiowanie / wycinanie / wklejanie całych plików za pomocą wiersza polecenia.

Możesz zobaczyć ich stronę man tutaj.



3

Możesz do tego użyć CopyQ . Ze strony:

Menedżer schowka z zaawansowanymi funkcjami

  • CopyQ to menedżer schowka z historią do przeszukiwania i edycji.
  • Obsługuje Linux i Windows.
  • Eksperymentalne wsparcie dla OS X 10.9+.
  • Przechowuj tekst, HTML, obrazy i każdy inny niestandardowy format.
  • Zaawansowany interfejs wiersza poleceń i skrypty.

Aby skopiować plik tekstowy:

copyq action "cat /tmp/file.txt" "" && copyq select 0

Aby skopiować obraz (musisz wskazać typ MIME):

copyq write image/png - < file.png && copyq select 0

Aby skopiować plik danych (musisz wskazać typ MIME):

copyq write application/pdf - < file.pdf && copyq select 0

Sprawdź ich wiki, aby uzyskać więcej dokumentacji i przykładów użycia .

Możesz zainstalować go za pomocą ppa: noobslab / Indicator PPA lub ręcznie pobierając wstępnie spakowane.deb pliki najnowszej stabilnej wersji z sekcji Pobieranie projektu .


1
Ppa nie jest aktualne, przynajmniej dla Ubuntu 16.04, lepiej jest pobrać ją bezpośrednio z witryny GitHub wydanej przez CopyQ .
Nicolai

3

Jeśli chcesz po prostu skopiować tekst do schowka:

echo -n "some-text" | xclip -selection clipboard


2

Ciasto

Niedawno wydano nowy menedżer schowka z obsługą apletu wskaźnika (choć jeszcze nie w archiwum). Oprócz śledzenia historii schowka tekstowego będzie również przechwytywać i utrwalać wpisy schowka danych (Pliki, Foldery itp.), Które mogą być przydatne, jeśli często manipulujesz plikami za pomocą środowiska GUI / Schowka.

alternatywny tekst

Możesz dodać następujący PPA :ppa:hel-sheep/pastie


Dzięki za sugestię Marco, ale nie potrzebuję menedżera schowka. Czasami wklejam jakiś tymczasowy tekst do pliku tekstowego, ale faktycznie okazuje się, że „menedżer historii” spowalnia rzeczy (ale to tylko ja). Naprawdę szukam narzędzia wiersza polecenia, które może selektywnie wyodrębniać / przechowywać specyficzny Format z / na clipboad .. jestem zakładając schowka Ubuntu jest podobny do systemu Windows (ja być ogłuszone, czy to istotnie różne, bo użytkowników wymagania są takie same na każdej platformie) ... I” jestem pewien, że ktoś uzna Twoją sugestię za przydatną.
Peter.O,


1

A co z ustawieniami demona GPaste , apletem demona zarządzania schowkiem z interfejsem DBus:

  • GPaste to pakiet do zarządzania schowkami dla GNOME napisany w Vala
  • Wygląd ustawień GPaste został zaktualizowany, aby lepiej pasował do najnowszego GNOME
  • Demon jest teraz w pełni wyrównany (koniec odpytywania, mniejsze zużycie energii)
  • GPasteClipboard ma teraz sygnał „zmiany właściciela” podobny do tego z GtkClipboard
  • Nowe ustawienie, aby ustawić maksymalną ilość pamięci używanej przez dane w historii
  • Tryb FIFO został usunięty (brak projektu)
  • Czyszczenie i modernizacja kodu
  • g_paste_history_add jest teraz pełny transfer
  • g_paste_keybinder_add_keybinding jest teraz pełny

Instalacja:

Aby zainstalować go w systemie Ubuntu 13.10 , 13.04 , 12.10 lub 12.04 , użyj poniższych poleceń:

sudo add-apt-repository ppa:webupd8team/gnome3
sudo apt-get update
sudo apt-get install gnome-shell-extensions-gpaste

Lub zainstaluj gpasteprzez synaptic package manager(a także gnome-shell-extensions-gpastejeśli używasz Gnome-Shell).

Inną opcją jest instalacja przez software-center.

wprowadź opis zdjęcia tutaj



1

W przypadku formatu RTF stosuję tę procedurę: kopiuję tekst do schowka w aplikacji. Jeśli nie jestem pewien, czy to rtf czy co, używam tego polecenia, aby sprawdzić:

xclip -selection clipboard -o -t TARGETS

Kiedy wydrukuje coś takiego:

CELE

text / rtf

text / richtext

Więc nie mogę się powstrzymać przed głośnym wykrzyknięciem: „Ojej, to genialne! Niech Bóg błogosławi linux!” Po tej modlitwie, po prostu oczywista rzecz:

xclip  -selection clipboard -o -t text/rtf > mypreciousRTFcontent.rtf

Następnie przetwarzam to wszystko w libreoffice i wysyłam do wszystkich moich przyjaciół jako spam.

:-)


-1

Tak jest. Spróbuj, tmuxktóry jest bardziej zaawansowany niż screen. Aby zainstalować tmux, wpisz to w terminalu:

sudo apt-get install tmux

Spróbuj także gpm. Polecenia gpmi tmuxmogą być dobrą kombinacją ...


2
Screen to emulator wielu terminali, a nie menedżer schowka.
Marco Ceppi

Wygląda na to, że screen i tmux działają tylko na poziomie terminala (nie mogę znaleźć żadnego odniesienia do „schowka” w żadnej z ich dokumentacji informacyjnej ) ... To, czego szukam, to ogólnosystemowe narzędzie do kopiowania i wklejania schowka ... Prawdopodobnie nie powinienem używać terminala jako znacznika ... Typ narzędzia, którego chcę, będzie w stanie czytać / zapisywać za pomocą standardowego wejścia / wyjścia standardowego lub wejściowego pliku / wyjściowego i obsługiwać Unicode / Formaty schowka tekstu sformatowanego / obrazu / itp.
Peter.O,

Właśnie znalazłem referencję na temat przepełnienia stosu ... gpmdotyczy „schowka” na terminalu innym niż X, i GNU screenma również swój „schowek”… Rozumiem teraz, dlaczego o nich wspomniałeś… To świetna informacja i doprowadziło mnie do głębszego zrozumienia tego, co dzieje się za kulisami ... Na razie będę trzymać się podstawowego „systemu selekcji” Xterm (clipboad). „Schowek” Linuksa wydaje się tak różny od Windowsa, że to, czego szukałem, może być wykonane tutaj w zupełnie inny sposób .. +1 :)
Peter.O
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.