2013-03-01 12 views
5

Jestem użytkownikiem Emacsa patrzącym na Sublime Text 2. Zamapowałem domyślne wiązania klawiszy Emacsa i przyzwyczaiłem się do poruszania się przy użyciu Alt + i, Alt + K , Alt + j, Alt + L dla górnego, dolnego, lewego i prawego. Nie miałem żadnych problemów z zamianą tych kluczy w Sublime Text.Klawisz Stop wywołujący menu w Sublime Text 2

Problem polega na tym, że za każdym razem, gdy używam tych klawiszy do poruszania się po menu, pojawia się, mimo że ukryłem je w trybie wolnym od zakłóceń. Chciałbym zatrzymać menu, gdy naciskam klawisz Alt.

Jeśli to możliwe, chciałbym zmienić klucz do wyświetlania menu na coś innego (np. Alt + spacja). W przeciwnym razie chciałbym wyłączyć menu wymyślanie klawisza Alt (i używać skrótów klawiszowych i konsoli do wszystkiego).

Używam Sublime Text w systemie Windows XP.

+0

Czy zastanawiałeś się nad używaniem autouruchamiania? –

+0

Próbowałem autohotkey z 'LAlt :: return', ale to całkowicie zablokowało klawisz Alt, co zatrzymało działanie wszystkich klawiszy Alt- *. – Omnimike

Odpowiedz

4

Problem miałem było to, że klucz byłem ponownego wiązania skonfliktowany z mnemoników w menu. W szczególności miałem Alt + i zamapowany na coś, podczas gdy był to również mnemonik dla Find.

Aby rozwiązać problem, usunąłem z menu mnemoniki, co zatrzymało pojawianie się menu. Aby to zrobić, przejdź do Preferences -> Browse Packages i otwórz plik menu Default/Main.sublime. Tam możesz usunąć wszystkie "mnemoniczne": "*", linie, aby pozbyć się mnemoników.

Naciśnięcie klawisza Alt spowoduje wyświetlenie menu. Jeśli chcesz wyłączyć tę można wykorzystać następujący skrypt AutoHotkey (dzięki Armin):

SetTitleMatchMode RegEx 
#IfWinActive .*Sublime Text 2.* 
    LAlt & esc::return ;This can be any key, not just escape. It's needed to get AutoHotkey to treat Alt as a prefix key. 
    ~LAlt::return 
#IfWinActive 

Zatrzymuje tylko lewy Alt wychowywanie menu, prawy Alt będzie nadal działać jak zwykle.

+5

Niezależnie od tego, czy masz jakieś pojęcie o tym, jak możemy to zrobić z Sublime Text 3, ta cholerna rzecz sprawiła, że ​​moje życie stało się piekłem. Każda pomoc byłaby świetna. – manoj2411

+0

Nazwa klasy okien Sublime Text 3 to "PX_WINDOW_CLASS", ale w adaptacji skryptu i tak nie mogę tego zrobić. – onirix

1

Jeśli używasz Autohotkey, możesz spróbować użyć funkcji #IfWinActive, która będzie stosować klawisze aktywacji tylko wtedy, gdy niektóre okna są aktywne. Wtedy twój kod będzie wyglądać następująco

#IfWinActive, Emacs ; the name of the window 
~LAlt::return ;this enables the LAlt + hotkey action but disables LAlt 
LAlt & space::tooltip,do stuff 
... 
#IfWinActive ;end