Я использую Kubuntu 10.04. Я хотел бы изменить некоторые стандартные сочетания клавиш для bash (терминал).
Вот ярлыки, которые я хотел бы установить:
Ctrl- Cскопировать выделенный текст в терминале в буфер обмена.
Ctrl- Vвставить из буфера обмена в терминал.
Ctrl- Zотменить редактирование текущей строки в терминале.
Ctrl- Shift- C(или даже лучше, Super- C) прекратить команду.
Ctrl- Shift- Z(или Super- Z) быть фоновой командой.
Ctrl- Shift- V(или Super- V), чтобы быть буквальной командой вставки (или что-нибудь еще Ctrl- zделали раньше).
Как мне сделать эти изменения?
Кстати, мне нравится, как терминал работает в OS X. Использование клавиши командной строки делает все команды копирования / вставки очень согласованными (в отличие от многих других вещей в OS X).
PS Я прочитал справочную страницу bash, и это не помогло. Это дало мне идеи, но мне нужны конкретные примеры для вышеуказанных комбинаций. Благодарю.
Ответы:
Это не функции bash, это функции драйвера терминала. Как таковые, они указаны
stty(1)
.источник
Это почти полностью решено сейчас. Часть решения была впервые доведена до моего сведения MTK358 на http://www.linuxquestions.org/questions/linux-software-2/change-bash-shortcut-keys-such-as-ctrl-c-818170/ , Он указал на (довольно очевидный, очень к моему стеснению) тот факт, что сочетания клавиш копирования и вставки можно легко изменить с помощью настроек меню konsole. Как только я увидел это, потребовалось около 1 минуты, чтобы настроить Ctrl-C и Ctrl-V для копирования и вставки с помощью терминала.
Другая часть решения должна была быть понятна со страницы руководства stty, но это не было (для меня). В итоге я просто экспериментировал, основываясь на различных подсказках, таких как те, что были опубликованы выше.
Я решил, какой не числовой ключ я хочу заменить Ctrl-C в качестве команды завершения. (Я использовал "к"). Я никогда не находил никакой информации о том, как передать модификатор сдвига в stty, поэтому я отказался от этого. После этого я должен был ввести в командной строке следующее:
stty intr \ ^ k
Я проверил, что все работает как хотелось.
Теперь мне просто нужно было поместить одну вышеупомянутую команду (stty intr \ ^ k) в сценарий запуска. Я не уверен, какой из них "правильный". Я хотел бы, чтобы это изменение было системным и постоянным.
Любые предложения относительно того, в какой сценарий я должен поместить команду?
И, наконец, что касается ответов на проповеди, они не нужны и бесполезны.
источник
Некоторые из них могут быть установлены с помощью обычного механизма сочетания клавиш KDE. В меню «Настройки» Konsole нажмите «Настроить ярлыки», и вы получите диалоговое окно, которое можно использовать для изменения привязок клавиш для функций, которые обрабатываются KDE. Это позволит вам переназначить Ctrl + C для копирования и Ctrl + V для вставки - но имейте в виду, что после этого эти последовательности клавиш больше не будут передаваться на терминал, поэтому вы не сможете использовать Ctrl + C, чтобы прервать программу, например.
Другие функции контролируются
readline
библиотекой, которую вы можете настроить, отредактировав файл~/.inputrc
. Чтобы получить Ctrl + Z, чтобы отменить любые изменения, сделанные в текущей строке, вы хотите добавитьно эта последовательность клавиш, вероятно, уже захвачена терминалом, поэтому вам, возможно, придется использовать ее,
stty
чтобы отсоединить, прежде чем она заработает. Сначала ищите^Z
в выводеstty -a
(как показано в ответе Игнасио), а затем, например, если он появляется вsusp = ^Z
, запуститечтобы открепить это сопоставление клавиш.
Другие изменения, о которых вы спрашиваете, должны быть сделаны,
stty
как говорит Игнасио, поскольку это терминальные функции, но я не совсем уверен, как именно. Проблема в том, что я не знаю, распознает ли терминал Shift или, если да, как передать эту информациюstty
.источник
Bash использует
emacs
илиvi
режим в командной строке. Он не имеет понятия «выбор» или «буфер обмена». Он использует такие вещи, как «kill buffer» и «point», «mark», «word», «line», «kill» и «yank» и т. Д.Попытка включить в него функциональность в стиле GUI будет в лучшем случае разочаровывающей и не будет работать полностью. Вы должны попытаться объединить функции
stty
,readline
и ваш терминал (предположительноTerminal.app
для вас). Вам нужно будет переназначить функции , такие какintr
,susp
,lnext
и т.д., так что вы можете использовать свои возможности.Я настоятельно рекомендую против таких радикальных модификаций. Он просто не предназначен для того, чтобы делать то, что вы хотите.
Когда в Риме...
источник
Я запустил Ubuntu и изменил ярлык для копирования по умолчанию Ctrl+ Shift+C на более обычный и простой Ctrl+ C. Это , однако , заставил меня бежать в проблему не в состоянии послать команду прерывания ^ C .
Благодаря ответу @Paul я нашел команду запуска
Позволит мне отправить команду прерывания, используя Ctrl+ K. Однако эту команду нужно было запускать каждый раз, когда я открываю терминал, что создает трудности (как он сам упомянул).
С небольшим количеством дальнейших исследований (поиск в Google) я обнаружил, как выполнять команду каждый раз, когда открывается терминал (в любом случае, в Ubuntu) .
Таким образом, в конечном итоге выполнение следующей команды (один раз) (в Ubuntu 18.04 и, вероятно, более) даст ожидаемое поведение каждый раз.
Наконец, стоит упомянуть, что вы не должны использовать Kкнопку. Вы можете поменять букву k во всех приведенных выше командах на любой выбранный вами буквенный ключ.
источник