Jak efektywnie wysyłać tekst wprowadzony w wierszu poleceń do schowka systemowego bez użycia myszy?

14

Powiedzmy, że wpisałem następujące długie polecenie w wierszu polecenia

 $ some very long command that I want to copy to the clipboard

Jak mogę to skutecznie umieścić w schowku systemowym? Używam Gnome Terminal 2.23.1.

Wiem, że mogę pobrać mysz, podświetlić ją i skopiować, ale chcę mieć ogólne rozwiązanie klawiatury.

Byłoby również dobrze, gdyby uogólniono na wiele programów wiersza polecenia.

Na przykład, w bash w trybie vi, mogę nacisnąć, va następnie edytować polecenie w vimie, a tym samym użyć funkcji kopiowania Vima do schowka, ale to nie działa, gdy używasz R w wierszu poleceń. Jest również trochę powolny.

Chciałbym, jeślibym w trybie vi mógł nacisnąć yy i skopiować zawartość linii do schowka systemowego, ale to nie działa. Co więcej, wszelkie polecenia szarpiące nie wydają się kopiować zawartości do schowka systemowego; wydają się kopiować tylko do bufora używanego przez bash.

AKTUALIZACJA:

Po wysłaniu znalazłem

Jeromy Anglim
źródło
1
Nie do końca to, o co prosisz: za pomocą ekranu możesz osiągnąć to, o co prosisz, postępując zgodnie z tą odpowiedzią: askubuntu.com/questions/56570/…
enzotib
Po tej odpowiedzi ( askubuntu.com/a/503861/43594 ) możesz włączyć Klawisze myszy w Universal Access i używać klawiatury numerycznej do poruszania myszą, a cyfra pięć działa jak kliknięcie. Po dwukrotnym szybkim kliknięciu wybierze słowo, na które wskaźnik się przesuwa. Kiedy zostanie szybko trzykrotnie kliknięty, wybierze całą linię. To wraz z odpowiedziami na temat kopiowania (Ctrl-Shift-C) powinno zrobić większość tego, czego potrzebujesz.
James

Odpowiedzi:

3

Możesz również użyć menedżera schowka, takiego jak parcellite. Jest to menedżer schowka GTK +, który ma również funkcje schowka w wierszu poleceń

Możesz go użyć za pomocą wiersza polecenia, używając

echo "some very long command that I want to copy to the clipboard" | parcellite
##or##
parcellite "some very long command that I want to copy to the clipboard"

Nie jest instalowany domyślnie, więc będziesz musiał zainstalować parcellite przez sudo apt-get install parcellite

Nitin Venkatesh
źródło
1
dzięki, przynajmniej kiedy jestem w bash, czasami używałem echo my command | xclip -se c; jednak gdy polecenie zawiera cytaty i inne znaki specjalne, echoczęsto nie kopiuje polecenia dosłownie.
Jeromy Anglim
1

Więc zamknięcia, które udało mi się uzyskać, to użycie historii i xclip w połączeniu z tym

echo !! | xclip

Spowoduje to umieszczenie ostatniego polecenia w schowku środkowego przycisku. Wciąż szukam czegoś lepszego, ponieważ chciałbym sprowadzić to do jednego polecenia. Jednak rozłączam się, ponieważ historia nie działa w skryptach powłoki i nie wiem, czy istnieje sposób na !!prawidłowe użycie jej w aliasie. Oczywiście nie wydaje się, żeby to było dokładnie to, o co prosisz o moją intencję, aby wykorzystać to do robienia notatek o tym, co robię. Jakieś przemyślenia?

użytkownik27643
źródło
Ponadto nadal występuje problem kopiowania poleceń z cudzysłowami.
Jeromy Anglim
0

Powinieneś być w stanie używać Ctrl+ Shift+ Cdo kopiowania i Ctrl+ Shift+ Vdo wklejania w dowolnym miejscu w terminalu.

Dirk Hartzer Waldeck
źródło
3
Nadal potrzebujesz myszy, aby zaznaczyć tekst.
enzotib
doh! bardzo ważny punkt
Dirk Hartzer Waldeck
2
Co nasuwa pytanie, czy można dostosować terminal lub bash, aby móc wybierać tekst za pomocą klawiatury?
Jeromy Anglim
@JeromyAnglim Powiązane: stackoverflow.com/q/312213/1172302
Nikos Alexandris,