Nycklar

Du kan göra många anpassningar av tangentbordsfunktionerna i Eclipse på inställningssidan Allmänt > Tangenter. I Eclipse används tangenttryckningar och tangentsekvenser för att anropa kommandon.

Tangenttryckningar, sekvenser och bindningar

En tangenttryckning är när du trycker på en tangent på tangentbordet och samtidigt håller ned någon av tangenterna Ctrl, Alt (Alternativ på Macintosh), Skift eller Kommando (endast på Macintosh.) Exempel: om du håller ned Ctrl och sedan trycker på A skapas tangenttryckningen Ctrl+A. Om du endast trycker på Ctrl skapas ingen tangenttryckning.

En tangentsekvens är en eller flera tangenttryckningar. I Emacs tilldelas sekvenser vanligen två eller tre tangenttryckningar för kommandon. Exempel: tangentsekvensen för kommandot Stäng alla i emacs är Ctrl+X Ctrl+C. När du vill ge det kommandot trycker du på Ctrl+X och därefter Ctrl+C. Även om Eclipse hanterar tangentsekvenser med godtycklig längd rekommenderas högst fyra tangenttryckningar för ett snabbkommando.

En tangentbindning är en tilldelning av en tangentsekvens till ett kommando.

Scheman

Ett schema är en uppsättning bindningar. Eclipse innehåller två scheman:

Standardschemat innehåller en allmän uppsättning bindningar som de flesta användare känner igen som vanliga tangentsekvenser för välkända kommandon. Exempel: Ctrl+A är tilldelad till Markera allt och Ctrl+S till Spara.

Emacs-schemat innehåller en uppsättning tangentbindningar som känns igen av Emacs-användare. Exempel: Ctrl+X H är tilldelat Markera allt och Ctrl+X S till Spara.

Det är viktigt att förstå varför Emacs-schemat utökar standardschemat. Emacs-schemat är inte en fullständig uppsättning bindningar som standardschemat. Det lånar kommandon från standardschemat och definierar endast de Emacs-bindningar som skiljer sig från standardschemat. I allmänt är det endast väl kända kommandon som Markera allt och Spara som har speciella Emacs-tangentsekvenser.

Välj vilket schema du vill arbeta med genom att ändra schemainställningen i inställningarna för tangenter. Om du väljer standardschemat ignoreras alla Emacs-bindningar. Om du väljer Emacs-schemat gäller Emacs-tangentsekvenserna före tilldelningarna i standardschemat.

Kontexter

Tangentbindingarna varierar utifrån kontexten i Eclipse.

Ibland kan den aktiva delen vara en Java-filsredigerare, där en annan uppsättning tangentsekvenser kan vara lämpligare än om det gällde redigering av HTML-filer. Exempel: Ctrl+B är tilldelad Bygg i en Java-filsredigeraren medan Ctrl+B är tilldelad Fet stil i en HTML-redigerare. Sammanhanget bestäms av den aktiva delen men kan även styras av fönstret eller dialogrutan. Om ingen kontext väljs anges i fönster för arbetsmiljön.

Det finns nio olika kontexter i Eclipse. De är följande:

I likhet med konfigurationer kan kontexter utöka andra kontexter. Exempel: Redigera Java-källa lånar tangentbindningar från Redigera text som i sin tur lånar tangentbindningar från I fönster.

Anm. Aktivera inte en tangentbindning till en kontext som den utökar. Exempel: Flytta inte en tangentbindning för Redigera text till kontexten I dialogrutor och fönster. Det kan ge oväntade resultat.

En del tangentbindningar kan fungera i dialogrutor. De tilldelas kontexten I dialogrutor och fönster. Ett exempel är tangentbindningen för "klipp ut". Det går att ändra de här tangentbindningarna. Exempel: Ctrl+X kan användas för "klipp ut" i dialogrutor och Ctrl+W för samma kommando i fönster.

Plattform och språkmiljö

Tangentbindningar varierar också utifrån plattform och språkinställningar. I Macintosh är Kommando+S tilldelat Spara istället för Ctrl+S. För kinesiska (zh) är Alt+/ tilldelat innehållshjälp istället för Ctrl+mellanslag.

Aktuell plattform och språkmiljö bestäms när Eclipse startas och gäller för alla Eclipse-förekomster.

Anpassa tangentbindningar

Med flertangentsekvenser, scheman och kontexter är det mycket att tänka på när man ska skapa egna tangentbindningar. För att förenkla görs alla tangentanpassningar på inställningssidan Allmänt > Tangenter.

Tangentinställningssidan med Emacs som aktiv konfiguration och Stäng-kommandot aktiverat

I det här exemplet har vi valt Emacs som schema och kommandot Stäng i listan över kommandon. Information och kommandot och aktuell tangentbindning visas.

Lägg märke till att Stäng har tre tangentsekvenser tilldelade: Ctrl+F4 och Ctrl+W i standardschemat samt Ctrl+X K i Emacs-schemat. Båda är tilldelade i kontexten I fönster. Det betyder att om användaren väljer standardschemat så tilldelas Ctrl+F4 och Ctrl+W till Stäng med Ctrl+X K inte gör det. Om du däremot väljer Emacs tilldelas Ctrl+X K till Stäng. Eftersom Emacs även lånar tangentbindningar från standardschemat tilldelas Ctrl+F4 och Ctrl+W även till Stäng om de inte har tilldelats något annat kommando i Emacs-schemat. I det här exemplet är "Ctrl+W" tilldelat Klipp ut i Emacs-schemat.

Nedanför listan över tangentsekvenser som har tilldelats till Stäng finns det en plats för att lägga till eller ta bort tangentbindningar. Standardkontext blir I fönster.

Om du skriver tangentsekvensen Ctrl+W blir knappen Lägg till aktiv. Nedanför knappen Lägg till visas även en lista över alla kommandon som tangentsekvenser Ctrl+W har tilldelats till. I det här exemplet är Ctrl+W tilldelat till Klipp ut i kontexten I fönster och dialogrutor. Om du klickar på knappen Lägg till så tilldelas Ctrl+W till Stäng.

Tangentbindningar är dynamiska

Tangentbindningar görs via insticksprogram som i Eclipse kan läggas till eller tas bort. Det kan orsaka att insticksprogrammens tangentbindningar läggs till eller tas bort. Därför lagras anpassade tangentbindningar i Eclipse. I exemplet ovan tilldelades Ctrl+Alt+W till Klipp ut i Emacs-schemat. Även om du installerar ett nytt insticksprogram som till delar Ctrl+Alt+W till ett annat kommando så behålls din tilldelning till Klipp ut i Eclipse.

Konfliktlösning

Det finns endast ett begränsat antal enkla, vanliga tangenttryckningar som kan tilldelas den mängd kommandon som finns. Vi har sett att schema, kontext, plattform och språkmiljö partitionerar tangentsekvenstilldelningar i domäner där de inte är i konflikt. Tänk på Ctrl+B i exemplet ovan om kontexten inte fanns. Ett insticksprogram skulle tilldela Ctrl+B till Bygg och det andra skulle tilldela Ctrl+B till Fet stil. Hur löser Eclipse den konflikten?

Även om antal konflikter drastiskt reduceras genom användning av ovanstående mekanismer kan de fortfarande förekomma. Två insticksprogram kan oberoende av varandra tilldela samma tangentsekvens till olika kommandon i samma kontext, schema, plattform och språkmiljö. Exempel: ett insticksprogram tilldelar Ctrl+F4 i kontexten I fönster för standardschemat till ett av kommandona. Det är i konflikt med Eclipse tilldelning av Ctrl+F4 till kommandot Stäng i samma kontext och schema.

Det här är en konflikt. Det är inte rätt att anropa båda kommandona eller endast välja ett av dem för den här tangenttryckningen. Det enda riktiga att göra är att ignorera båda tangentbindningarna vilket gör att Ctrl+F4 blir oanvändbar i den här kontexten och i det här schemat.

De här typerna av konflikter kan lösas genom att du tilldelar en tangentsekvens till ett av kommandona.

En annan typ av konflikt kan orsakas av tangentsekvenser med flera tangenttryckningar. Exempel: i Emacs-schemat finns det många flertangentskombinationer som börjar med tangenttryckningen Ctrl+X. Ctrl+X K är tilldelad Stäng. Ctrl+X H är tilldelad Markera alla.

Som tidigare nämnts lånar Emacs-schemat tangentbindningar från standardschemat. I standardschemat är Ctrl+X tilldelat Klipp ut. Även om Emacs-schemat inte definierar om Ctrl+X så krävs Ctrl+X för många av tangentbindningarna. När man trycker Ctrl+X och har valt Emacs-schemat har man många möjliga tangentkombinationer att välja mellan. Det vore inte bra om kommandot Klipp ut utfördes då.

Regeln för den här typen av konflikt är att Ctrl+X tilldelad till Klipp ut ignoreras. Annars skulle det inte vara möjligt att använda många av tangentkombinationerna i Emacs-schemat.

Närliggande begrepp
Hjälpfunktioner i Eclipse
Ändra tangentbindningar
Hjälp

Närliggande referenser
Teckensnitts- och färginställningar i Eclipse