Tastaturets funktion kan i stor udstrækning tilpasses i Eclipse vha. indstillingssiden
Generelt > Taster
. I Eclipse bruges tastanslag og tastsekvenser til at starte bestemte kommandoer.
Et "tastanslag" 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 tastanslaget Ctrl+A
. Et tryk på selve ændringstasten udgør ikke et tastanslag.
En "tastsekvens" er ét eller flere tastanslag. 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 tastanslaget Ctrl+X
, efterfulgt af tastanslaget Ctrl+C
.
Selv om tastsekvenserne i Eclipse kan have en vilkårlig længde, anbefales det, at tastaturgenvejene ikke er mere end fire tastanslag lange.
En "tastbinding" er tildelingen af en tastsekvens til en kommando.
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.
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 et antal forskellige kontekster. Her er nogle eksempler:
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.
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.
Med tastsekvenser, der består af flere tastanslag, 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.
I dette eksempel vil vi binde CTRL+5 til kommandoen Om. Standardværdien er, at alle de mulige tastbindinger vises på indstillingssiden Taster. Du kan se, at kommandoen Om vises i kategorien Hjælp. Du kan binde kommandoen ved at flytte fokus til tekstboksen Binding og trykke på CTRL og 5 på samme måde, som hvis du udførte kommandoen.
Når du trykker på CTRL+5, har du oprettet en binding for Om. I kolonnen yderst til højre vises et U, der viser, at det er en brugerbinding. Hvis der er en konflikt med en anden tast, vil der også blive vist et C. Bindingen vil være i standardkonteksten, "I vinduer". Du kan nu bruge kombinationsboksen Når til at ændre konteksten for tastbindingen (f.eks. flytte bindingen til "Tekstredigering").
Hvis du nu ville tilføje endnu en tastbinding til Om, kan du bruge knappen Kopiér kommando til at oprette en ekstra kommandoindgang, som du kan binde en anden tast til. Du kan slette en binding ved at bruge knappen Fjern binding eller blot flytte fokus til tekstboksen Binding og trykke på backspace.
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.
Se på eksemplet herover, hvor CTRL+6
blev tildelt til Om
i skemaet Standard. Antag, at du vil installere en ny plugin, som tildeler CTRL+6
til en bestemt kommando. Eclipse bevarer din tildeling til Om
.
Der er kun et endeligt antal enkle, fælles tastanslag 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?
Selv om 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 tastanslaget. I stedet vises dialogboksen Tastassistance med de modstridende kommandoer, så brugeren kan vælge en af dem. Dialogboksen Tastassistance er den samme dialogboks, der viser kommandovalgmuligheder for tastbindinger bestående af flere tastanslag. Hvis der f.eks. er bundet to kommandoer til F12, kunne følgende blive vist (på engelsk):
Hvis brugeren skaber en konflikt ved oprettelse af en tastbinding, vises de bindinger, der er i konflikt med hinanden, på listen Konflikter. Listen kan bruges til at navigere mellem tastbindingerne, der er i konflikt med hinanden, så de kan ændres.
Disse typer konflikter kan løses ved eksplicit at tildele tastsekvensen til én af kommandoerne eller fjerne den fra den anden.
En anden type konflikter kan forårsages af flere tastsekvenser, der består af flere tastanslag. I skemaet Emacs er der f.eks. mange tastsekvenser, der starter med tastanslaget 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
. Selv om 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.
Hjælp til handicappede i Eclipse
Revidér tastbindinger
Hjælp