Заставить Ctrl+C копировать текст в gnome-терминал?

Можно ли заставить Ctrl + C выполнить команду копирования, если в терминале есть выделенный текст?
В противном случае он должен сохранить свое нормальное поведение.

(Если есть терминал, который может сделать это, кроме gnome-терминала, это, вероятно, тоже хорошо.)

10 ответов

Решение

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

stty intr ^J

(Я выбрал Ctrl+J, потому что я не помню, чтобы это ассоциировалось с каким-либо действием, но вы можете сделать свой собственный выбор.)

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

Как уже отмечалось, Ctrl + C обычно используется для прерывания программы. Но вместо того, чтобы использовать Ctrl + Shift + C для копирования, что я делаю гораздо чаще, чем прерывание процесса, я изменяю настройку на Ctrl + C для копирования и Ctrl + Shift + C для прерывания.

Вы можете сделать это в GNOME Terminal, перейдя в "Редактировать" -> "Сочетания клавиш..." и сопоставить действие "Копировать" с Ctrl + C и "Вставить" с Ctrl + V. Команда прерывания будет автоматически переназначена на Ctrl + Shift + C.

Ctrl + C уже назначен другой команде, которая прерывает программу, запущенную в терминале. Например, ping www.google.com начнет пинговать Google до тех пор, пока вы не скажете ей остановиться. То, как вы делаете это, нажав Ctrl + C

Таким образом, они не могли просто изменить назначение этой комбинации.

Выделите текст, который вы хотите скопировать, нажмите Ctrl + Shif t + C, и он будет скопирован в буфер обмена. Ctrl + Shif t + V и вы вставите его.

Дайте мне знать, если это не сработает...

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

  • выделение текста мышью копирует его в буфер обмена
  • средний щелчок вставляет это.

Эта функция особенно полезна в терминале, например, при сборке команды из битов текста, которые уже находятся на экране.

Это работает во всех приложениях, поэтому можно копировать и вставлять текст с веб-страницы в терминал и т. Д.

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

Чтобы заставить вырезать и вставлять (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"

Извините за написание ответа, похоже, что я потратил слишком много своей репутации на награду за то, что смог опубликовать комментарий.

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

НО можно легко привыкнуть

  • Ctrl+Ins для копирования
  • Shift+Ins для вставки

Это работает практически везде (кроме Наутилуса, вздох) и почти никогда ни с чем не сталкивается!

Кто-то хотел, чтобы вы могли использовать:

> 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 для вставки.

В Lxterminal (терминал по умолчанию в Lxde) вы можете полностью настроить ярлыки:

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

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

На терминаторе вы можете изменить привязки, выполнив следующие действия:

  • right-click на экране терминала. Выберите Предпочтения.
  • Перейдите в раздел "Связки клавиш".
  • double-click в команде, заданной для Копировать (Ctrl+Shift+C по умолчанию), а затем нажмите Ctrl+C на клавиатуре.
  • Команда Копировать изменена. Повторите для команды " Вставить".
  • Выйти из настроек.

Теперь вы можете использовать обычный Ctrl+C и Ctrl+V для копирования и вставки соответственно.

Другие вопросы по тегам