Taster

Tastaturets funktion kan tilpasses i stor udstrækning i Eclipse vha. indstillingssiden General > Keys. I Eclipse bruges tasttryk og tastsekvenser til at starte bestemte kommandoer.

Tasttryk, tastsekvenser og tastbindinger

Et "tasttryk" betyder et tryk på en tast på tastaturet, samtidig med at du holder én af disse ændringstaster nede: Ctrl, Alt (Alternativ på en Macintosh), Skift eller Kommando (kun Macintosh.) Hvis du f.eks. holder Ctrl nede og derefter trykker på A, frembringer du tasttrykket Ctrl+A. Et tryk på selve ændringstasten udgør ikke et tasttryk.

En "tastsekvens" er ét eller flere tasttryk. Traditionelt knyttede Emacs to eller flere tastsekvenser til bestemte kommandoer. Den tastsekvens, der normalt er knyttet til Luk alle i emacs, er Ctrl+X Ctrl+C. Når man skal indtaste denne tastsekvens, trykker man tasttrykket Ctrl+X, efterfulgt af tasttrykket Ctrl+C. Selvom tastsekvenserne i Eclipse kan have en vilkårlig længde, anbefales det, at tastaturgenvejene ikke er mere end fire tasttryk lange.

En "tastbinding" er tildelingen af en tastsekvens til en kommando.

Skemaer

Et "skema" er et sæt bindinger. Eclipse inkluderer to skemaer:

Standardskemaet indeholder et generelt sæt bindinger, i mange tilfælde genkendelige som traditionelle nøglesekvenser for velkendte kommandoer. For eksempel er Ctrl+A knyttet til Vælg alle, og Ctrl+S er knyttet til Gem.

Skemaet Emacs indeholder et sæt tastbindinger, som brugere af Emacs er fortrolige med. For eksempel er Ctrl+X H knyttet til Vælg alle, og Ctrl+X S er knyttet til Gem.

Det er vigtigt at forstå, hvorfor man siger, at skemaet Emacs "udvider Standard". Skemaet Emacs er ikke et komplet sæt bindinger på samme måde som skemaet Standard. Derimod låner det fra skemaet Standard, når det er muligt, og definerer kun eksplicitte bindinger af Emacs-typen, når de afviger fra skemaet Standard. Generelt er kun de velkendte kommandoer som Vælg alle, Gem osv. tildelt bestemte Emacs-tastsekvenser.

Vælg det skema, du er mest fortrolig med at bruge, ved at ændre indstillingen "Skema" på indstillingssiden for taster. Hvis du vælger skemaet Standard, ignoreres alle Emacs-bindinger. Hvis du vælger skemaet Emacs, får eksplicitte Emacs-tastsekvenstildelinger højere prioritet end eventuelle sammenfaldende tildelinger i skemaet Standard.

Kontekster

Tastbindingerne kan variere i forhold til den aktuelle kontekst i Eclipse.

Nogle gange kan den aktive del f.eks. være en Java-fileditor, hvor et andet sæt tastsekvenstildelinger kan være mere egnet, end hvis den aktive del var en HTML-fileditor. Eksempelvis er Ctrl+B typisk knyttet til Byg i en kontekst som Java-filredigering, mens Ctrl+B er knyttet til Gør tekst fed i en kontekst som HTML-filredigering. Denne kontekst bestemmes som regel af den aktive del, men den kan også blive påvirket af det aktive vindue eller den aktive dialogboks. Hvis den aktive del ikke vælger en bestemt kontekst, indstiller arbejdsbænken den aktive kontekst til I Windows.

Eclipse inkluderer ni forskellige kontekster. Det drejer sig om:

Næsten som ved konfigurationer kan kontekster udvide andre kontekster. Konteksten Redigering af Java-kilde låner f.eks. tastbindinger fra konteksten Tekstredigering, som igen låner tastbindinger fra konteksten I vinduer.

Bemærk: Det anbefales ikke at oprykke en tastbinding til en kontekst, som den udvider. Eksempelvis anbefales det ikke at flytte en tastbinding af typen Tekstredigering til konteksten I dialogbokse og vinduer. Dette kan give uventede resultater.

Nogle tastbindinger kan fungere i dialogbokse. Disse tastbindinger er knyttet til konteksten I dialogbokse og vinduer. Et eksempel på en sådan tastbinding er tastbindingen for "klip". Det er muligt at ændre disse tastbindinger. F.eks. kan "klip" være Ctrl+X i dialogbokse, men Ctrl+W i vinduer.

Platform og sprogkonventioner

Tastbindinger kan også variere i forhold til platform og sprogkonventioner. På Macintosh-platformen er Kommando+S knyttet til Gem i stedet for Ctrl+S. I kinesiske sprogkonventioner (zh) er Alt+/ knyttet til Indholdsassistance i stedet for Ctrl+Mellemrum.

Den aktuelle platform og sprogkonvention bestemmes, når Eclipse startes, og ændres ikke i løbet af en Eclipse-forekomst.

Tilpas tastbindinger

Med tastsekvenser, der består af flere tasttryk, skemaer og kontekster, er der meget at holde styr på, når man tilpasser bindinger. For at gøre tingene lettere udføres al tasttilpasning på indstillingssiden Generelt > Taster.

Indstillingssiden Taster, der viser Emacs som aktiv konfiguration og kommandoen Luk valgt

I dette eksempel har vi angivet Emacs som skema og har valgt kommandoen Luk på listen over kommandoer. Der vises oplysninger om denne kommando sammen med de aktuelle tastbindinger.

Bemærk, at der er tildelt tre tastsekvenser til Luk: Ctrl+F4 og Ctrl+W i skemaet Standard og Ctrl+X K i skemaet Emacs. Begge er tildelt i konteksten I vinduer. Hvis brugeren derfor indstiller skemaet til Standard, bliver Ctrl+F4 og Ctrl+W tildelt til Luk, mens Ctrl+X K ikke gør. Hvis du imidlertid indstiller skemaet til Emacs, bliver Ctrl+X K tildelt til Luk. Da skemaet Emacs desuden låner tastbindinger fra skemaet Standard, bliver Ctrl+F4 og Ctrl+W også tildelt til Luk, forudsat at disse tastbindinger ikke er tildelt til en anden kommando i skemaet Emacs. I dette eksempel er "Ctrl+W" bundet til Klip i skemaet Emacs.

Under listen over tastsekvenser, der er tildelt til Luk, er der et sted, hvor du kan tilføje eller fjerne tastbindinger. Som standard vælges konteksten som I vinduer.

Vi skriver tastsekvensen Ctrl+W, hvilket bevirker, at knappen "Tilføj" bliver aktiveret. Desuden vises en liste over alle de kommandoer, som allerede er tildelt tastsekvensen Ctrl+W, under knappen Tilføj. Vi kan se, at Ctrl+W i øjeblikket er tildelt til kommandoen Klip i konteksten I vinduer og dialogbokse. Vi klikker på knappen "Tilføj" for at tildele Ctrl+W til Luk.

Dynamikken i tastbindinger

Tastbindinger er plugins, og i Eclipse kan plugins tilføjes eller fjernes. Det kan bevirke, at tastbindinger, der erklæres af disse plugins, bliver tilføjet eller fjernet. Eclipse gemmer tilpassede tastbindinger på en måde, der kompenserer for dette. Kig på eksemplet ovenfor, hvor Ctrl+Alt+W blev knyttet til Klip i skemaet Emacs. Antag, at du vil installere en ny plugin, som tildeler Ctrl+Alt+W til en bestemt kommando. Eclipse bevarer tildelingerne til Klip.

Konfliktløsning

Der er kun et endeligt antal enkle, fælles tasttryk tilgængelige til at tildele til en lang række kommandoer. Vi har set, at skema, kontekst, platform og sprogkonvention alle inddeler tastsekvenstildelinger i domæner, hvor der ikke opstår konflikter. Tag f.eks. Ctrl+B ovenfor, hvis der ikke fandtes kontekster. Den ene plugin ville måske knytte Ctrl+B til Byg, den anden ville knytte Ctrl+B til Gør tekst fed. Hvordan ville Eclipse løse denne konflikt korrekt?

Selvom konflikter reduceres voldsomt vha. ovenstående mekanismer, kan de stadig opstå. To plugins, der er uafhængige af hinanden, kunne knytte den samme tastsekvens til forskellige kommandoer med samme kontekst, skema og sprogkonvention. Antag, at en plugin knyttede Ctrl+F4 i konteksten I vinduer og skemaet Standard til en af sine kommandoer. Dette medfører en direkte konflikt, hvis Eclipse knytter Ctrl+F4 til kommandoen Luk i samme kontekst og skema.

Dette er en konflikt. Det ville ikke være korrekt at starte begge kommandoer, og det ville heller ikke være korrekt blot at vælge, at én af de to kommandoer skulle modtage tasttrykket. Det eneste rigtige at gøre ville være at ignorere begge tastbindinger, så Ctrl+F4 slet ikke kunne bruges i denne kontekst og dette skema.

Disse typer konflikter kan løses ved eksplicit at knytte tastsekvensen til én af kommandoerne.

En anden type konflikter kan forårsages af flere tastsekvenser, der består af flere tasttryk. I skemaet Emacs er der f.eks. mange tastsekvenser, der starter med tasttrykket Ctrl+X. Ctrl+X K er knyttet til Luk. Ctrl+X H er knyttet til Vælg alle.

Som tidligere nævnt låner skemaet Emacs bindinger fra skemaet Standard. I standardskemaet er Ctrl+X knyttet til Klip. Selvom skemaet Emacs ikke eksplicit omdefinerer Ctrl+X, kræver mange af dets tastbindinger, at der trykkes på Ctrl+X. Når man trykker på Ctrl+X i skemaet Emacs, har man halvvejs indtastet en af de mange mulige tildelte tastsekvenser. Man forventer ikke, at funktionen Klip startes på dette tidspunkt.

Ved denne type konflikt er reglen, at tastsekvensen Ctrl+X, der er tildelt til Klip, bliver ignoreret. Ellers ville det ikke være muligt at færdiggøre mange af tastbindingerne i Emacs-konfigurationen.

Relaterede begreber
Hjælp til handicappede i Eclipse
Revidér tastbindinger
Hjælp

Relaterede referencer
Font- og farveindstillinger i Eclipse