Emacs последователности от клавишни комбинации след пренасочване на CapsLock с Autokey

Направих просто пренасочване на CapsLock към Control с autohotkey:

Capslock::Control   ; make Caps Lock the control button

Това работи добре, но в Emacs, ако трябва да изпълня клавишна последователност като Ctrl-x Ctrl-f, докато задържам клавиша CapsLock непрекъснато през цялото време, това, което се регистрира, е Ctrl-x f. За да получа правилната последователност, сега трябва да пусна CapsLock между натисканията на клавиши като Ctrl-x <release> Ctrl-f, което е много неудобно.

Има ли начин да направите повторното свързване, така че задържането на CapsLock да работи точно като задържането на бутона Control?

Също така опитах следния фрагмент без успех:

#IfWinActive ahk_class Emacs
{
CapsLock::
Sendinput {Ctrl Down}
KeyWait, CapsLock
Sendinput {Ctrl Up}
return
}

Използването на Send или Sendplay в горното вместо Sendinput също не решава проблема ми.

Моята система:

Windows 7 32bit AHK v1.1.13.01 Emacs 24.3

Благодаря ти!


person user673592    schedule 04.12.2013    source източник
comment
Просто използвайте друга програма. KeyTweak и sharpkeys са безплатни и имат прост GUI за превключване на Caps Lock към Ctrl.   -  person abo-abo    schedule 08.01.2014
comment
Добре, пробвах KeyTweak и той работи, като единственият проблем е, че времето за регистрация на ключ понякога е изключено (C-x C-v C-m винаги се регистрира като C-x C-m C-v).   -  person user673592    schedule 09.01.2014
comment
Бих предпочел решение с автоматична бърза клавиша, но ако не бъде намерено такова до края на наградата, ще ви дам точките, ако изпратите това като правилен отговор. Помощта по въпроса с времето също ще бъде много ценена...   -  person user673592    schedule 09.01.2014
comment
Използвах Emacs на Windows 7 от около година и не съм имал този проблем. Проблемът е, че сега не си спомням дали използвах KeyTweak или sharpkeys. Можете ли да опитате другия и да видите дали проблемът продължава?   -  person abo-abo    schedule 09.01.2014
comment
Опитах и ​​двете и двете се държат по един и същи начин, т.е. има проблем с времето и също така нито едно не регистрира удвоени натискания на клавиши като C-c C-c...   -  person user673592    schedule 12.01.2014
comment
Добре, ще погледна, когато имам достъп до лаптопа си. Все още имам Windows там за игри. Значи казваш, че не можеш дори C-c C-c?   -  person abo-abo    schedule 12.01.2014


Отговори (3)


Това е, което използвам и работи:

*Capslock::LCtrl

Звездицата е документирана в помощта под Управление на клавиатурата > Бързи клавиши и горещи низове:

Заместващ знак: Задействайте бързия клавиш, дори ако са задържани допълнителни модификатори. Това често се използва във връзка с пренасочване на клавиши или бутони. Например:

*#c::Изпълни Calc.exe ; Win+C, Shift+Win+C, Ctrl+Win+C и т.н. всички ще задействат тази клавишна комбинация.

*ScrollLock::Run Notepad ; Натискането на Scrolllock ще задейства тази бърза клавишна комбинация дори когато модифициращите клавиши са натиснати.

Този символ се игнорира в Windows 95/98/ME.

Всъщност имам и този, Win+Caps Lock, ако наистина искам Caps Lock:

<#Capslock::Capslock
person acelent    schedule 14.01.2014

Не съм сигурен защо не работи правилно за вас. Добавих вашето пренасочване към моя съществуващ скрипт и изглежда, че работи добре. Можете ли да публикувате повече от това, което имате? Имам следните команди в горната част на моята, но не мисля, че трябва да повлияят на проблема ви.

#Persistent
#SingleInstance, Force

Командите GetKeystate и SetKeyDelay може да е от полза.

person colinwurtz    schedule 05.12.2013
comment
Благодаря за съветите... първоначалните флагове за съжаление не помогнаха... проблемът продължава. - person user673592; 13.12.2013

Опитайте тази;

SetCapsLockState, AlwaysOff
CapsLock:: SendInput, {LCtrl Down}
Capslock Up:: SendInput, {LCtrl Up}
person Michael    schedule 08.01.2014
comment
Съжалявам, нямам късмет... същото поведение като другите фрагменти, които опитах. - person user673592; 09.01.2014
comment
Може би проблемът е с клавиша Capslock. Опитахте ли да зададете друг клавиш като Ctrl, за да видите какво ще се случи? - person Michael; 10.01.2014
comment
Няколко предложения, не знам дали ще ти помогнат. Опитайте да затворите всеки друг AHK скрипт, който изпълнявате, вижте дали това помага. Ако работи на други места, само не в EMACS, опитайте да разгледате вградените клавишни комбинации за бърз достъп на EMACS. - person Michael; 14.01.2014