desabilita a chave de inserção para todos os aplicativos, exceto um

4

Eu gostaria de desabilitar a tecla insert no meu teclado, porque eu geralmente acerto acidentalmente ao digitar, e isso atrapalha meu texto.

Descobri que posso usar xmodmap para desativar completamente a chave de inserção:

xmodmap -e "keycode 106 ="

Isso funciona, mas há outro problema. Acontece que midnight commander usa a tecla insert para um propósito totalmente diferente. Não para alternar o sobrescrito, como no editor de texto, mas para selecionar vários arquivos.

Esse recurso em mc é realmente útil e estou usando-o com bastante frequência.

Existe alguma maneira de desabilitar a tecla insert em editores de texto em sua função de sobrescrever ON / OFF, mas mantê-la em sua segunda função como "selecionar arquivos" em mc ?

    
por Martin Vegter 22.05.2016 / 19:36

2 respostas

5

Faça a chave Insert enviar um keysym diferente (o nome simbólico da chave que determina o que os aplicativos principais acham que é), por exemplo F25 .

xmodmap -e "keycode 106 = F25"

Configure o mc para reconhecer f25 como uma ligação para o comando Mark : copy /etc/mc.keymap (ou onde quer que o mapa de teclado que você está usando esteja localizado) para ~/.mc/mc.keymap e altere a linha Mark = insert; ctrl-t para Mark = insert; f25; ctrl-t .

    
por 23.05.2016 / 00:23
3

A maioria das ligações de tecla do Midnight Commander é personalizável. O recurso do qual você está falando parece ser Mark , que está no arquivo de mapa de teclado padrão, por exemplo, /etc/mc.keymap :

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

De acordo com a página de manual , se você fornecer seu próprio arquivo de mapa de teclado (e fazer com que o primeiro seja encontrado ), usará o arquivo em vez do mapa de teclado do sistema. Atribuindo Mark a uma seqüência de teclas diferente, você pode fazer mc ignore Inserir no caso que causa problemas.

Você pode ver os outros lugares onde Insert é usado em mc arquivos keymap por

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

que mostra, por exemplo, que é usado em 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
    
por 22.05.2016 / 20:12