1 つのアプリケーションを除くすべてのアプリケーションで挿入キーを無効にする

1 つのアプリケーションを除くすべてのアプリケーションで挿入キーを無効にする

insert入力中に誤ってキーを押してしまい、テキストが乱れてしまうことが多いため、キーボードのキーを無効にしたいと思います。

xmodmap挿入キーを完全に無効にするには、次の方法を使用できることがわかりました:

xmodmap -e "keycode 106 ="

これは機能しますが、別の問題があります。キーをまったく異なる目的でmidnight commander使用していることが判明しましたinsert。テキスト エディターのように上書きを切り替えるためではなく、複数のファイルを選択するためです。

この機能はmc実際に便利なので、私は頻繁に使用しています。

insertテキスト エディターでキーを上書きのオン/オフとして無効にし、2 番目の役割である「ファイルの選択」のままにする方法はありますか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

関連情報