Створення Ctrl + C копіювання тексту в gnome-термінал?


70

Чи можна мені зробити Ctrl+ Cвиконати команду копіювання, якщо в терміналі є виділений текст ?
В іншому випадку він повинен зберігати свою нормальну поведінку.

(Якщо є термінал, який може це робити, крім gnome-терміналу, це, мабуть, теж добре.)


1
Не потрібно користуватися мишкою; на клавіатурі Mac можна використовувати shift+ enter+ fn. І, на звичайній клавіатурі, я думаю, що це shiftі є insert.
Девід Томас

Я підтверджую. Я просто використовую ще одну суміш copy-fu на "звичайній" клавіатурі: Ctrl + Insert for copy (і Shift + Insert for paste), яка не суперечить перериванню програми Ctrl + C
kza

Відповіді:


74

Ви можете змінити прив'язку клавіш для "Вирізати та вставити" із стандартних Ctrl+ Shift+ C, Ctrl+ Shift+ Vна те, що ви говорите, а саме Ctrl+ C, Ctrl+ V, у меню Правка → Комбінації клавіш . Хоча ви також повинні змінити значення терміналу за замовчуванням, пов'язане з Ctrl+ C(перервати), наприклад, таким чином

stty intr ^J

(Я вибрав Ctrl+, Jтому що не пам'ятаю, це асоціюється з якоюсь дією, але ви можете зробити власний вибір.)

Я не думаю, що можна зберегти дію переривання за замовчуванням для Ctrl+ Cлише тоді, коли текст не виділений.


1
Як зазначає @Pithikos у відповіді mangoDrunk, після перестановки ярлика Copy на Ctrl + C ви можете використовувати Ctrl + Shift + C для переривання без необхідності налаштовувати щось інше.
dubrox

1
Я встановив його на ^ Q, оскільки зазвичай це "розморожування / запуск", яке рідко використовується, шкідливе і наближається до CTRL. Якщо хтось вирішить зробити це також, він не повинен забути перезаписати "старт" спочатку: stty start ^ J
k3a

Зауважте, що неможливо встановити його на комбінацію із використанням Shift stty. (Я встановив це на ^ X, оскільки "різання" тут не має сенсу.)
Сергійєв Євген

39

Ctrl+ Cвже призначено іншій команді, яка перериває програму, що працює в терміналі. Наприклад, ping www.google.com почне писати Google, поки ви не скажете йому зупинитися. Як це зробити, натискаючи Ctrl+C

Отже, вони не могли просто змінити призначення цієї комбінації.

Виділіть текст, який потрібно скопіювати, натисніть Ctrl+ Shift+ Cі він скопіюється у буфер обміну. Ctrl+ Shift+ Vі ви вставляєте його.

Повідомте мене, якщо це не працює ...


16
Замість того, щоб сказати, що ці зв'язки клавіш мають інші терміни в терміналі, можливо, правильніше сказати, що різні консольні програми очікують, що вони зможуть їх використовувати, тому, якщо емулятор терміналу не передасть їх, це може зробити ці програми непридатними .
Джеймс Генстридж

6
OS X трохи розумніша: коли обраний якийсь текст, він трактується Ctrl+Cяк копія, а коли не вибраний текст, він трактує як переривання.
Беранг

5
Насправді OS X не розумніша. Ярлик клавіатури для копіювання - це Cmd-C, а не Ctrl-C.
Андрій Максим

28

Крім того, що сказав @Dan, є ще один варіант вставки тексту для копіювання в Linux, який я знаходжу набагато швидше і простіше у використанні, оскільки не потрібно переходити від миші (яку ви використовуєте для здійснення вибору) на клавіатуру :

  • вибравши текст за допомогою миші, копіює його в буфер обміну
  • середній клацання миші вставляє його.

Ця функція особливо корисна в терміналі, наприклад, при складанні команди з бітів тексту, які вже є на екрані.

Це працює у всіх програмах, тому можна копіювати та вставляти текст із веб-сторінки на термінал тощо.

Буфер буфера обміну, який використовується для копіювання пасти середнього клацання, є окремим від того, який використовується для Ctrl-C / Ctrl-V, що дозволяє одночасно скопіювати два різних біта тексту.


25

Як уже зазначалося, Ctrl+ Cзазвичай використовується для переривання програми. Але замість використання Ctrl+ Shift+ Cдля копіювання, що я роблю набагато частіше, ніж переривання процесу, я змінюю налаштування на " Ctrl+" Cдля копіювання та Ctrl+ Shift+ Cдля переривання.

Ви можете зробити це в терміналі GNOME, перейшовши в "Редагувати" -> "Комбінації клавіш ..." і зіставити дію "Копіювати" на Ctrl+ Cі "Вставити" в Ctrl+ V. Команда переривання автоматично переставляється до Ctrl+ Shift+ C.


1
Але як я можу відобразити Ctrl + Shift + C на переривання процесу?
kramer65

11
Це сталося автоматично для мене. Все, що я зробив, було встановлено Copy в Ctrl + C, і після збереження цього Ctrl + Shift + C стало перериванням.
mangoDrunk

1
Причина @mangoDrunk полягає в тому, що утримування Shift + Ctrl + <key>по суті друкує той самий символ, що і Ctrl + <key>. Ви можете протестувати зread
Pithikos

Я пропоную зробити це, тому що я копіюю вставку ЛОТ більше, ніж я перериваю процес, і легко запам'ятати ctrl + shift + C як переривання, а не змінювати звичку копіювати, яка однакова скрізь.
літаючапідрядник

3

Щоб зрізати та вставити ( Ctrl+ V, Ctrl+ C) роботу в консолі чи терміналі, введіть такий код у термінал, щоб автоматично змінити прив’язки клавіш:

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

gconftool-2 -t str -s /apps/gnome-terminal/keybindings/paste "<Control>v"

1

Вибачте за те, що написали відповідь на це, схоже, що я витратив занадто багато своєї репутації на винагороду за те, що я міг розмістити коментар.

Немає можливості змінити поведінку комбінацій клавіш залежно від того, є вибір тексту чи ні, і я б уникав перепризначення Ctrl-C терміналу.

АЛЕ, можна легко звикнути

  • Ctrl+ Insдля копіювання
  • Shift+ Insдля наклеювання

Це працює практично скрізь (крім Наутілуса , зітхаючи), і навряд чи коли-небудь заважає!


1

Хтось, кого ви хочете, ви можете використовувати:

> 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

Додайте до ~/.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

А потім редактор gconf або щось таке, щоб змінити прив'язки клавіш терміналів до CTRL+ Cдля копіювання та CTRL+ Vдля вставки.


Argh ... формат накрутився. Дивіться: sandipchitale.blogspot.com/2008/10/…
Sandip Chitale

1

у Lxterminal (термінал за замовчуванням у Lxde) ви можете повністю налаштувати ярлики:

введіть тут опис зображення


0

Я думаю, що ви не можете, бо в терміналі gnome Ctrl+ C, Ctrl+ X, Ctrl+ Vне працюють. Для вирізання, копіювання та вставки потрібно виділити текст, клацнути правою кнопкою миші та вибрати дію, яку потрібно зробити


ви все ще можете використовувати скорочення для вирізання в терміналі, це ctrl + shift + c (копія) і ctrl + shift + v (вставлення) і ctrl + shift + x.
Ренс

0

Як вже було сказано, Ctrl-C не працюватиме через використання переривання, але я просто з'ясував спосіб, який працював на мене. Моя мета полягала у тому, щоб мати лише дві клавіші, не три, а краще щось, до чого я звик, а не в занадто незручному місці на клавіатурі. Клавіатура, яку я маю у своєму вікні Linux, має клавішу "Windows", там же, що і клавіша Command на Mac. Тож я просто перейшов до меню Правка> Комбінації клавіш, коли я змінив ярлики, щоб використовувати цю клавішу, там написано Super + C і Super + V. Я іноді також використовую Mac, тому до цього було легко звикнути.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.