2013-03-01 12 views
5

Ich bin ein Emacs-Benutzer, der Sublime Text 2 untersucht. Ich habe die Standard-Emacs-Tastenbelegungen neu zugeordnet und bin daran gewöhnt, mit Alt + i, Alt + k zu gehen , Alt + j, Alt + l für oben, unten, links und rechts. Ich hatte keine Probleme, diese Schlüssel in Sublime Text neu zu ordnen.Stoppt die Alt-Taste und öffnet das Menü in Sublime Text 2

Das Problem ist, dass, wenn ich diese Tasten zum Navigieren im Menü verwenden, erscheint, obwohl ich es im ablenkungsfreien Modus ausgeblendet habe. Ich möchte das Menü beenden, wenn ich die Alt-Taste drücke.

Wenn möglich, möchte ich den Schlüssel neu zuordnen, um das Menü auf etwas anderes (wie Alt + Leerzeichen) anzuzeigen. Ansonsten möchte ich das Menü mit der Alt-Taste insgesamt deaktivieren (und Hotkeys und die Konsole für alles verwenden).

Ich führe Sublime Text auf Windows XP.

+0

Haben Sie erwogen, autohotkey zu verwenden? –

+0

Ich habe versucht, autohotkey mit 'LAlt :: return ', aber das Deaktivieren der Alt-Taste insgesamt, die alle Alt-* Tasten funktioniert gestoppt. – Omnimike

Antwort

4

Das Problem, das ich habe war, dass ein Schlüssel Ich war mit einem mnemonic auf dem Menü in Konflikt rebinding. Konkret hatte ich Alt + i auf etwas abgebildet, während es auch das Kürzel für Find war.

Um das Problem zu beheben, entfernte ich die Mnemonics aus dem Menü, die das angezeigte Menü gestoppt. Gehen Sie dazu zu Einstellungen -> Pakete durchsuchen und öffnen Sie die Standard/Main-Menü-Datei. Dort können Sie alle "Mnemonic": "*" Zeilen entfernen, um die Mnemonics loszuwerden.

Wenn Sie die Alt-Taste drücken, wird das Menü immer noch angezeigt. Wenn Sie diese deaktivieren möchten, können Sie das folgende AutoHotkey Skript (Danke Armin) verwenden:

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 

Dieses nur linke Alt stoppt das Menü rechts Alt Erziehung wird noch wie gewohnt arbeiten.

+5

Vielleicht hast du eine Ahnung, wie wir das mit Sublime Text 3 machen können, dieses verdammte Ding hat mein Leben zur Hölle gemacht. Jede Hilfe wäre großartig. – manoj2411

+0

Der Klassenname der Fenster von Sublime Text 3 lautet «PX_WINDOW_CLASS», aber wenn ich das Skript anpasse, kann ich es nicht funktionieren lassen. – onirix

1

Wenn Sie Autohotkey verwenden, können Sie versuchen, #IfWinActive zu verwenden, das Hotkeys nur anwenden wird, wenn ein bestimmtes Fenster aktiv ist. Dann würde Ihr Code so etwas wie diese

aussieht
#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