Czy kopiowanie tekstu Ctrl + C w terminalu gnome?

70

Czy mogę wykonać Ctrl+ Cpolecenie kopiowania, jeśli w terminalu jest podświetlony tekst ?
W przeciwnym razie powinien zachować swoje normalne zachowanie.

(Jeśli istnieje terminal, który może to zrobić inaczej niż terminal gnome, to prawdopodobnie również w porządku).

Mehrdad
źródło
1
Nie musisz używać myszy; na klawiaturze Mac możesz użyć shift+ enter+ fn. I na „normalnej” klawiaturze myślę, że to shifti insert.
David Thomas
Potwierdzam. Po prostu używam innej kombinacji copy-fu na „normalnej” klawiaturze: Ctrl + Insert do kopiowania (i Shift + Insert do wklejania), która nie powoduje konfliktu z przerwaniem programu Ctrl + C
kza

Odpowiedzi:

74

Możesz zmienić przypisanie klawiszy dla Wytnij i Wklej z domyślnego Ctrl+ Shift+ C, Ctrl+ Shift+ Vna to, co mówisz, a mianowicie Ctrl+ C, Ctrl+ V, w menu Edycja → Skróty klawiaturowe . Chociaż powinieneś również zmienić domyślne znaczenie terminala związane z Ctrl+ C(przerwanie), na przykład w ten sposób

stty intr ^J

(Wybrałem Ctrl+, Jponieważ nie pamiętam, aby wiązało się to z jakąś akcją, ale możesz dokonać własnego wyboru).

Nie sądzę, że możliwe jest zachowanie domyślnej akcji przerwania dla Ctrl+ Ctylko wtedy, gdy nie ma podświetlonego tekstu.

enzotib
źródło
1
Jak zauważył @Pithikos w odpowiedzi mangoDrunk, po zmianie przypisania skrótu Kopiuj do Ctrl + C, możesz użyć Ctrl + Shift + C, aby przerwać bez konieczności konfigurowania czegokolwiek innego.
dubrox
1
Ustawiłem go na ^ Q, ponieważ zwykle jest to „odmrażanie / uruchamianie”, które jest rzadko używane, szkodliwe i bliższe CTRL. Jeśli ktoś zdecyduje się to zrobić, nie może zapomnieć o
ponownym przypisaniu
Zauważ, że nie można ustawić kombinacji obejmującej użycie Shift stty. (Ustawiłem na ^ X, ponieważ „cięcie” nie ma tutaj sensu.)
Evgeni Sergeev
39

Ctrl+ Cjest już przypisany do innego polecenia, które przerywa działanie programu uruchomionego w terminalu Na przykład ping www.google.com zacznie pingować Google, dopóki nie zatrzyma się. Robisz to, naciskając Ctrl+C

Nie mogli więc po prostu zmienić przypisania tej kombinacji.

Podświetl tekst, który chcesz skopiować, naciśnij Ctrl+ Shift+ Ci zostanie on skopiowany do schowka. Ctrl+ Shift+ Vi wklejasz go.

Daj mi znać, jeśli to nie zadziała ...

Dan
źródło
16
Zamiast powiedzieć, że te skróty klawiszowe mają inne konkretne znaczenie w terminalu, prawdopodobnie bardziej poprawne jest stwierdzenie, że różne aplikacje konsoli oczekują, że będą mogły z nich korzystać, więc jeśli emulator terminala ich nie przekaże, może to uniemożliwić korzystanie z tych aplikacji .
James Henstridge
6
OS X jest nieco mądrzejszy: gdy zaznaczony jest jakiś tekst, interpretuje Ctrl+Cjako kopię, a gdy nie jest zaznaczony, interpretuje go jako przerwanie.
Behrang
5
W rzeczywistości OS X nie jest mądrzejszy. Skrót klawiszowy do kopiowania to Cmd-C, a nie Ctrl-C.
Andrei Maxim,
28

Oprócz tego, co powiedział @Dan, istnieje inna opcja kopiowania i wklejania tekstu w Linuksie, która jest o wiele szybsza i łatwiejsza w użyciu, ponieważ nie trzeba przełączać się z myszy (której używasz, aby dokonać wyboru) na klawiaturę :

  • zaznaczenie tekstu myszą powoduje skopiowanie go do schowka
  • środkowe kliknięcie wkleja go.

Ta funkcja jest szczególnie przydatna w terminalu, na przykład podczas składania polecenia z fragmentów tekstu, które są już na ekranie.

Działa to we wszystkich aplikacjach, więc można skopiować i wkleić tekst ze strony internetowej na terminal itp.

Bufor schowka używany do kopiowania i wklejania środkowego kliknięcia jest oddzielny od bufora używanego dla Ctrl-C / Ctrl-V, co umożliwia kopiowanie dwóch różnych bitów tekstu w tym samym czasie.

Siergiej
źródło
25

Jak już wspomniano, Ctrl+ Cjest zwykle używany do przerywania programu. Ale zamiast używać Ctrl+ Shift+ Cdo kopiowania, co robię znacznie częściej niż przerywanie procesu, zmieniam ustawienie, aby mieć Ctrl+ Cdo kopiowania i Ctrl+ Shift+ Cdo przerywania.

Możesz to zrobić w Terminalu GNOME, przechodząc do „Edycja” -> „Skróty klawiaturowe ...” i mapując akcję „Kopiuj” na Ctrl+ Ci „Wklej” na Ctrl+ V. Polecenie przerwania zostanie automatycznie przypisane do Ctrl+ Shift+ C.

mangoDrunk
źródło
1
Ale jak odwzorować Ctrl + Shift + C na przerywanie procesu?
kramer65
11
Stało się to dla mnie automatycznie. Wszystko, co zrobiłem, to Ustaw Kopiuj na Ctrl + C, a po zapisaniu Ctrl + Shift + C przerwał.
mangoDrunk
1
@mangoDrunk powodem jest to, że holding Shift + Ctrl + <key>zasadniczo drukuje ten sam znak co Ctrl + <key>. Możesz przetestować za pomocąread
Pithikos
Proponuję to zrobić, ponieważ kopiuję dużo wklejania więcej niż przerywam proces i łatwo jest zapamiętać ctrl + shift + C jako przerwanie zamiast zmieniać mój zwyczaj kopiowania, który jest taki sam wszędzie indziej.
flyingdrifter
3

Aby wyciąć i wkleić ( Ctrl+ V, Ctrl+ C) działa w konsoli lub terminalu, umieść następujący kod w terminalu, aby automatycznie zmienić powiązania klawiszy:

gconftool-2 -t str -s /apps/gnome-terminal/keybindings/copy "<Control>c"

gconftool-2 -t str -s /apps/gnome-terminal/keybindings/paste "<Control>v"
użytkownik165696
źródło
1

Przepraszam, że napisałem odpowiedź na ten temat, wygląda na to, że wydałem zbyt wiele mojej reputacji na nagrodę za to, że mogłem opublikować komentarz.

Nie ma sposobu, aby zmienić zachowanie skrótów klawiaturowych w zależności od tego, czy jest zaznaczony tekst, czy nie, i unikałbym ponownego przypisania Ctrl-C terminala.

ALE możesz łatwo się przyzwyczaić

  • Ctrl+ Insdo kopiowania
  • Shift+ Insdo wklejenia

Działa to praktycznie wszędzie (z wyjątkiem Nautilusa , westchnienia) i prawie nigdy nie ingeruje w nic!

Walter Tross
źródło
1

Czy ktoś chciał, abyś mógł użyć:

> stty intr ^K         # free Ctrl+C for copy use Ctrl+K instead
> stty lnext ^-        # free Ctrl+V for paste use ^- instead
> stty -g
> stty -g > ~/.stty    # store the settings in home directory

Dodaj następujące elementy do ~/.bashrc

case $- in
 *i*)
   stty `cat ~/.stty`     #  reload the stored stty settings
   bind -u quoted-insert  #  unbind the quoted-insert function of bash - free Ctrl+V for paste
esac

A następnie edytor gconf lub jakoś zmienić skróty klawiszowe terminali na CTRL+ Cdla Kopiuj i CTRL+ Vdla Wklej.

Sandip Chitale
źródło
Argh ... formatowanie zostało przyspieszone. Zobacz: sandipchitale.blogspot.com/2008/10/…
Sandip Chitale
1

w Lxterminal (domyślny terminal w Lxde) możesz w pełni dostosować skróty:

wprowadź opis zdjęcia tutaj

Woeitg
źródło
0

Myślę, że nie możesz, ponieważ w terminalu gnome Ctrl+ C, Ctrl+ X, Ctrl+ Vnie działają. Aby wycinać, kopiować i wklejać, musisz zaznaczyć tekst, kliknąć prawym przyciskiem myszy i wybrać akcję, którą chcesz wykonać

użytkownik21857
źródło
nadal możesz używać skrótów do cięcia w terminalu, są to ctrl + shift + c (kopiowanie) i ctrl + shift + v (wklej) i ctrl + shift + x.
Rens,
0

Jak już wspomniano, Ctrl-C nie będzie działać z powodu przerwania, ale właśnie wymyśliłem sposób, który zadziałał dla mnie. Moim celem było posiadanie tylko dwóch klawiszy, a nie trzech, a najlepiej czegoś, do czego jestem przyzwyczajony, a nie w zbyt niewygodnym miejscu na klawiaturze. Klawiatura, którą mam na moim Linux-ie, ma klawisz „Windows”, w tym samym miejscu co klawisz Command na komputerze Mac. Więc właśnie poszedłem do Edycja> Skróty klawiaturowe, kiedy zmieniłem skróty, aby używać tego klawisza, mówi Super + C i Super + V. Czasami też używam komputera Mac, więc łatwo było się do tego przyzwyczaić.

twórca
źródło