我想禁用insert键盘上的按键,因为我在打字时经常不小心按下它,它会弄乱我的文本。
我发现我可以用来xmodmap
完全禁用插入键:
xmodmap -e "keycode 106 ="
这可行,但还有另一个问题。事实证明,midnight commander
将insert密钥用于完全不同的目的。不是用于切换改写,如在文本编辑器中,而是用于选择多个文件。
这个功能mc
其实很有用,我也经常使用。
有没有什么方法可以禁用insert文本编辑器中的按键作为覆盖开/关的角色,但保留它的第二个角色作为“选择文件” mc
?
答案1
使Insert密钥发送不同的密钥符号(密钥的符号名称,决定应用程序认为它是什么密钥),例如F25
。
xmodmap -e "keycode 106 = F25"
配置 mc 以识别f25
为Mark
命令的绑定:复制/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