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

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

Я хотел бы отключить эту insertклавишу на клавиатуре, так как я часто нажимаю ее случайно при наборе текста, и это портит мой текст.

Я обнаружил, что могу использовать xmodmapдля полного отключения клавиши вставки:

xmodmap -e "keycode 106 ="

Это работает, но есть еще одна проблема. Оказывается, midnight commanderиспользует insertклавишу для совершенно другой цели. Не для переключения перепечатки, как в текстовом редакторе, а для выбора нескольких файлов.

Эта функция mcна самом деле полезна, и я ею довольно часто пользуюсь.

Есть ли способ отключить insertклавишу в текстовых редакторах в ее роли ВКЛ/ВЫКЛ замены, но оставить ее во второй роли «выбора файлов» в mc?

решение1

Сделайте так, чтобы Insertклавиша отправляла другой keysym (символическое имя клавиши, определяющее, какой ее считают приложения клавиш), например F25.

xmodmap -e "keycode 106 = F25"

Настройте mc для распознавания f25в качестве привязки для Markкоманды: copy /etc/mc.keymap(или там, где находится используемая вами раскладка клавиатуры) ~/.mc/mc.keymapи измените строку Mark = insert; ctrl-tна Mark = insert; f25; ctrl-t.

решение2

Большинство сочетаний клавиш Midnight Commander настраиваются. Функция, о которой вы говорите, похоже,Отметка, который находится в файле раскладки клавиатуры по умолчанию, например /etc/mc.keymap:

[panel]
Search = ctrl-s; alt-s
Mark = insert; ctrl-t

Согласностраница руководства, если вы предоставите свой собственный файл раскладки клавиатуры (и сделаете его первым найденным), он будет использоватьчтофайл вместо системной раскладки. НазначаяОтметкана другую последовательность клавиш, вы можете сделать mcигнорирование Insertв случае, если это вызывает проблемы.

Вы можете увидеть другие места, где Insertиспользуется в mcфайлах раскладок,

dpkg -L mc |xargs grep -i -n insert 2>/dev/null

что показывает, например, что он используется в InsertOverwrite.

Binary file /usr/bin/mc matches
/etc/mc/mc.keymap.emacs:81:Mark = insert; ctrl-t
/etc/mc/mc.keymap.emacs:302:InsertFile = f15
/etc/mc/mc.keymap.emacs:304:InsertOverwrite = insert
/etc/mc/mc.keymap.emacs:322:InsertLiteral = ctrl-q
/etc/mc/mc.keymap.emacs:365:Up = k; y; insert; up; ctrl-p
/etc/mc/mc.keymap:80:Mark = insert; ctrl-t
/etc/mc/mc.keymap:220:Store = ctrl-insert
/etc/mc/mc.keymap:221:Paste = shift-insert
/etc/mc/mc.keymap:302:InsertFile = f15
/etc/mc/mc.keymap:304:InsertOverwrite = insert
/etc/mc/mc.keymap:322:InsertLiteral = ctrl-q
/etc/mc/mc.keymap:362:Up = k; y; insert; up; ctrl-p
/etc/mc/mc.keymap.default:80:Mark = insert; ctrl-t
/etc/mc/mc.keymap.default:220:Store = ctrl-insert
/etc/mc/mc.keymap.default:221:Paste = shift-insert
/etc/mc/mc.keymap.default:302:InsertFile = f15
/etc/mc/mc.keymap.default:304:InsertOverwrite = insert
/etc/mc/mc.keymap.default:322:InsertLiteral = ctrl-q
/etc/mc/mc.keymap.default:362:Up = k; y; insert; up; ctrl-p
/etc/mc/mcedit.menu:450:I       Insert `Changelog' string
/etc/mc/mcedit.menu:467:i       Insert a out of command to cursor.
Binary file /usr/bin/mcview matches
Binary file /usr/bin/mcdiff matches
Binary file /usr/bin/mcedit matches

Связанный контент