Все приложения, которые вы упомянули, являются gtk+
приложениями, поэтому на них довольно легко ответить. Почему ... Потому что во всех gtk+
приложениях ( кроме одного ) Shift+ Insertвставляется из CLIPBOARD - т.е. это эквивалентно Ctrl+ V. Ярлык жестко закодирован в gtkentry.c
(строка 2022) и gtktextview.c
(строка 1506):
gtk_binding_entry_add_signal (binding_set, GDK_KEY_Insert, GDK_SHIFT_MASK,
"paste-clipboard", 0);
Это также задокументировано в Справочном руководстве GTK + 3 под GtkEntry
:
The “paste-clipboard” signal
void
user_function (GtkEntry *entry,
gpointer user_data)
The ::paste-clipboard signal is a keybinding signal which gets emitted
to paste the contents of the clipboard into the text view.
The default bindings for this signal are Ctrl-v and Shift-Insert.
Насколько я знаю , что это было сделано для обеспечения согласованности с другими DE (см KDE
«s Qt
клавиш в QTextEdit Class
) и ОС Windows 1 . Единственным исключением является . После долгих дебатов разработчики решили (для совместимости с другими терминалами) , что, в , + следует вставить из ПЕРВИЧНЫХ и + + должны вставить из буфера обмена (хотя у вас есть возможность настроить некоторые ярлыки).
gnome-terminal
gnome-terminal
ShiftInsertCtrlShiftV
Что касается того, как вы вставляете выделение с помощью сочетания клавиш ... нет простого пути.
Самый простой способ - назначить ярлык для запускаемого скрипта xdotool click 2
(имитирует нажатие средней кнопки мыши). Хотя это работает (и должно работать со всеми или с большинством DE и наборов инструментов), оно работает только в том случае, если курсор мыши находится на самом деле над полем ввода текста, в противном случае происходит сбой.
Другой относительно простой способ - через Gnome Accessibility, если он доступен в вашей системе. Это также требует присутствия цифровой клавиатуры. Перейдите к Universal Access
>> Pointing & Clicking
и включите Mouse Keys
. Убедитесь, что NumLock
выключен. Затем вы можете использовать цифровые клавиши для перемещения курсора и щелчка. Чтобы смоделировать щелчок средней кнопкой мыши, нажмите (и отпустите) *(звездочку), затем нажмите 5(вот краткое руководство ). Это решение, кажется, всегда работает в gtk+
окружающей среде. Недостатком является то, что для этого требуется Gnome Accessibility
и цифровая клавиатура. Кроме того, вы не можете настроить ярлык.
На gnome-bugzilla было предложено интересное решение (ошибка 643391) . (Обновление 2018: проблема теперь перенесена сюда .) Требуется исправление некоторых исходных файлов и настройка параметров конфигурации в ~/.config/gtk-3.0/gtk.css
(или ~/.gtkrc-2.0
для gtk+
2 приложений). Я не пробовал это лично, но отзывы положительные.
В идеале вы должны исправить исходные файлы и определить "paste-selection"
сигнал, а затем связать Shift+ Insertс "paste-selection"
вместо "paste-clipboard"
. Код Энди (прикрепленный в сообщении об ошибке, связанном выше) может послужить руководством для того, как это сделать. Даже тогда это будет влиять только на gtk+
приложения (я не KDE/Qt
парень, поэтому я не знаю, как изменить Qt
поведение приложений).
1: (не говоря уже о CUA IBM)
Я извиняюсь: я не могу написать комментарий из-за репутации, поэтому я пишу как ответ. Это не прямое решение, но оно помогает мне ...
Вы можете использовать комбинацию информации:
Отредактируйте gtk theme и разрешите привязку клавиш по своему желанию .
Пример создания привязки клавиш gtk 3.0 в css темы .
Пример переопределения gtk keybindings и unbind .
Пример модификации связывания клавиш для gnome-терминала
Автоматический запуск autocutsel с параметрами по умолчанию для синхронизации CLIPBOARD с CUTBUFFER (это необязательно). Эта ссылка только для информации о проблеме.
Используйте clipman для доступа к нескольким буферам (PRIMARY и CLIPBOARD), без выбора автосинхронизации (двунаправленная автоматическая синхронизация делает неправильным).
Поэтому я просто выбираю gtk theme и изменяю CSS темы на нужные комбинации клавиш для сигналов copy-clipboard (Ctrl + Insert) и paste-clipboard (Shift + Insert).
источник