2009-02-03 7 views
7

Я ищу способ, чтобы мой ключ управления и клавиша блокировки ключа были переключены, когда я нахожусь в окне emacs, но когда я перехожу к любой другой программе, такой как Firefox, я хочу иметь возможность использовать обычную кнопку управления для новые окна, вкладки и т. д.Как переделать ключи, когда в Emacs?

Дополнительная информация: Я использую Ubuntu, но ответы для всех систем хороши, поскольку кто-то может захотеть узнать, как это сделать в своей системе.

+0

какую ОС вы используете? – thekidder

+1

Требуется только одна команда (например, xmodmap ~/.xmodmap-swap), вы можете сделать ярлык для нее на панели задач), чтобы вернуть ключи в нормальное состояние, прежде чем передавать их кому-то другому. :) – ShreevatsaR

ответ

8

Emacs никогда не видит ключевой код CapsLock (под X в любом случае), поэтому вы не можете переназначить ключ в Lisp. Посмотрите на эту страницу для деталей:

http://www.emacswiki.org/emacs/MovingTheCtrlKey

2

Для глобально переназначающих ключей есть xmodmap. xkeycaps - это интерактивный инструмент. Вы можете установить контроль над обеими ключами.

Поскольку вы хотите переназначить ключи только для Emacs (которые я нахожу несколько недобросовестными), вам нужно заглянуть внутрь Emacs для решения. Это должно быть возможно, потому что вы можете перепроверять все ключи, но может быть слишком утомительно менять все ключи, если модификаторы не могут быть заменены.

Лично я карту CapsLock сочинить, чтобы напечатать все виды забавных персонажей, таких как ä, ß, а, þ, «, -, ...

+0

Причина, по которой я хочу, потому что, когда я глобально переназначаю ключи, а кто-то другой использует компьютер, мне дается безостановочное дерьмо. – Anton

7

На окнах с помощью Auto Hot Key вы можете добиться этого с этой частью код вставляется в сценарий по умолчанию:

#IfWinActive, [email protected]  
    CapsLock::Control 
#IfWinActive 

Auto Hot Key - очень удобная утилита, и это также бесплатное программное обеспечение, как в GPL.

+1

Что делает @ в этом сценарии AHK? –

+1

@JisangYoo Заголовок Bar в Emacs on Windows читает «emacs @ COMPUTER_NAME», поэтому обезьяна в этом случае не является особым символом AHK, а частью названия – boskom