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.
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.
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.
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.
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.
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.
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 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.
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.