Tastaturfunksjonen kan i stor grad tilpasses i Eclipse ved hjelp av preferansesiden
Generelt > Taster. I Eclipse tilordnes tasttrykk og tastsekvenser
for å aktivere bestemte kommandoer.
Et "tasttrykk" vil si at det trykkes på en tast på tastaturet, samtidig som en eller flere kombinasjonstaster eventuelt holdes nede:
Ctrl
, Alt
(Option
på Macintosh), skift
eller
kommandotast
(bare på Macintosh.) For eksempel får man ved å holde Ctrl
nede og trykke på A
tasttrykket Ctrl+A
.
Å trykke på en av kombinasjonstastene regnes ikke i seg selv som et tasttrykk.
En "tastsekvens" er ett eller flere tasttrykk. Tradisjonelt har Emacs tilordnet to eller tre tasttrykksekvenser til bestemte kommandoer. For eksempel er den normale tastsekvensen tilordnet til Lukk alle
i emacs Ctrl+X Ctrl+C
. For å oppgi en tastsekvens trykker man på tasttrykket Ctrl+X
etterfulgt av tasttrykket Ctrl+C
.
Selv om Eclipse støtter tastsekvenser med vilkårlig lengde, anbefales det at direktetaster begrenses til maksimalt fire tasttrykk.
En "tastbinding" er tilordning av en tastsekvens til en kommando.
Et "skjema" er et sett med tastbindinger. Eclipse inneholder to skjemaer:
Standard-skjemaet inneholder et generelt sett med bindinger, i mange tilfeller gjenkjennbart som tradisjonelle tastsekvenser for velkjente kommandoer.
For eksempel er Ctrl+A
tilordnet til Velg alle
,
og Ctrl+S
til Lagre
.
Emacs-skjemaet inneholder et sett med tastbindinger som er kjent for brukere av Emacs.
For eksempel er Ctrl+X H
tilordnet til Velg alle
og Ctrl+X S
til Lagre
.
Det er viktig å forstå hvorfor Emacs-skjemaet sier at det "utvider Standard". Emacs-skjemaet er ikke et komplett
sett med bindinger som Standard-skjemaet. I stedet låner det fra skjemaet Standard når det er mulig,
og definerer eksplisitte Emacs-bindinger bare når de skiller seg fra
Standard-skjemaet. Generelt har bare velkjente kommandoer som
Velg alle
, Lagre
osv. spesifikke Emacs-tastsekvenser knyttet til seg.
Velg det skjemaet du er mest komfortabel med, ved å endre "Skjema"-innstillingen på tastpreferansesiden. Hvis du velger skjemaet Standard, blir alle Emacs-bindinger ignorert. Hvis du velger skjemaet Emacs, får eksplisitte Emacs-tastsekvenstilordninger forrang foran eventuelle motstridende i skjemaet Standard.
Tastbindinger kan variere avhengig av gjeldende kontekst i Eclipse.
Noen ganger kan den aktive delen være et Java-filredigeringsprogram, for eksempel, der et annet sett med tastsekvenstilordninger kan
passe bedre enn om den aktive delen var et HTML-filredigeringsprogram. La oss ta et spesifikt eksempel: Ctrl+B
er typisk tilordnet til
Bygg
i en kontekst som Java-filredigering, mens Ctrl+B
er tilordnet funksjonen Uthev tekst
i en kontekst som HTML-filredigering. Denne konteksten bestemmes vanligvis av den aktive delen, men den kan også påvirkes av aktivt vindu eller
aktiv dialogboks. Hvis den aktive delen ikke velger en bestemt kontekst, vil arbeidsbenken definere den aktive konteksten til
I vinduer.
Eclipse har ni forskjellige kontekster. Det er disse:
I likhet med konfigurasjoner kan kontekster utvide andre kontekster. For eksempel låner konteksten Redigering av Java-kilde tastbindinger fra konteksten Redigering av tekst, som på sin side låner tastbindinger fra konteksten I vinduer.
Merk: Det anbefales ikke å overføre en tastbinding til en kontekst som utvides. For eksempel anbefales det ikke å flytte en tastbinding fra konteksten an Redigering av tekst til konteksten I dialogbokser og vinduer. Dette kan gi uventede resultater.
Det er mulig at enkelte tastbindinger virker i dialogbokser. Disse tastbindingene tildeles til konteksten I dialogbokser og vinduer. Ett eksempel på en slik tastbinding er tastbinding for "Klipp ut". Det er mulig å endre disse tastbindingene. Det er for eksempel mulig å bruke Ctrl+X som Klipp ut i dialogbokser, men Ctrl+W som Klipp ut i vinduer.
Tastbindinger varierer også med plattform og språkmiljø. På Macintosh-plattformen er
kommandotast+S
tilordnet til Lagre
i stedet for det vanlige Ctrl+S
.
I kinesiske språkmiljøer (zh) er Alt+/
tilordnet til Content Assist
i stedet for det vanlige Ctrl+Space
.
Gjeldende plattform og språkmiljø er bestemt når Eclipse starter, og varierer ikke i løpet av en Eclipse-forekomst.
Med flertrykks tastsekvenser,
skjemaer og kontekster er det mange ting å huske på når du tilpasser tastbindinger. For å gjøre
det lettere utføres alle tasttilpasninger på preferansesiden
Generelt > Taster.
I dette eksempelet har vi valgt Emacs som skjema og kommandoen
Lukk
fra listen over kommandoer. Informasjon om denne kommandoen, sammen med gjeldende tastbindinger, er vist.
Merk at Lukk
har tre tastsekvens tilordnet: Ctrl+F4
og Ctrl+W
i
Standard-skjemaet og Ctrl+X K
i Emacs-skjemaet. Begge er tildelt i konteksten I vinduer. Så hvis brukeren definerer skjemaet til
Standard, blir Ctrl+F4
og Ctrl+W
tilordnet til
Lukk
, mens Ctrl+X K
ikke blir det. Hvis du definerer skjemaet til
Emacs, vil imidlertid Ctrl+X K
bli tildelt til Lukk
. Siden Emacs-skjemaet også låner tastbindinger fra
Standard-skjemaet, vil dessuten Ctrl+F4
og Ctrl+W
også blir tilordnet til
Lukk
, forutsatt at disse tastbindingene ikke allerede er knyttet til en annen kommando i
Emacs-skjemaet. I dette eksempelet er "Ctrl+W" knyttet til Klipp ut
i Emacs-skjemaet.
Nedenfor listen over tastsekvenser tilordnet til Lukk
er det plass til å legge til eller fjerne tastbindinger. Som standard velges konteksten I vinduer.
Vi skriver tastsekvensen Ctrl+W
, og knappen "Legg til" blir aktivert. Dessuten vises en liste over alle kommandoer som tastsekvens Ctrl+W
allerede er tilordnet til,
under Legg til-knappen. Vi kan se at Ctrl+W
for tiden er tilordnet til kommanoen
Klipp ut
i konteksten I dialogbokser og vinduer . Vi klikker på Legg til-knappen for å tilordne Ctrl+W
til Lukk
.
Tastbindinger følger med plugin-moduler, og i Eclipse kan plugin-moduler legges til eller fjernes. Dette kan gjøre at tastbindinger som er opprettet av disse plugin-modulene, legges til eller fjernes. Eclipse lagrer tilpassede tastbindinger på en måte som kompenserer for dette. La oss se på eksempelet over, der Ctrl+Alt+W
var tilordnet til Klipp ut
i Emacs-skjemaet. Si
at du installerer en ny plugin-modul som tildeler Ctrl+Alt+W
til en bestemt kommando.
Eclipse vil bevare din tilordning til Klipp ut
.
Det finnes bare et endelig og begrenset antall enkle, vanlige tasttrykk til å tildele til en rekke
forskjellige kommandoer. Vi har sett at skjema, kontekst, plattform og språkmiljø alle fordeler tastsekvenstilordninger
på områder der de ikke vil være i motstrid med hverandre. La oss ta tilfellet med Ctrl+B
over hvis det ikke hadde fantes kontekster, En plugin-modul ville tilordne Ctrl+B
til Bygg
, en annen plugin-modul ville
tilordne Ctrl+B
til Uthev tekst
. Hvordan vil Eclipse løse denne konflikten?
Selv om konfliktene reduseres drastisk ved bruke av de nevnte mekanismene, kan de fortsatt forekomme. To plugin-moduler kan uavhengig av hverandre tilordne samme tastsekvens til forskjellige kommandoer med samme kontekst, skjema, plattform og språkmiljø. La oss si at en plugin-modul har tilordnet Ctrl+F4
i konteksten
I vinduer og Standard-skjemaet til en av sine kommandoer. Dette står i direkte motstrid til Eclipse tilordning av Ctrl+F4
til lukkekommandoen i samme kontekst og skjema.
Dette er en konflikt. Det passer ikke å aktivere begge kommandoene, og det passer heller ikke å bare velge en av de to for tilordning
av tasttrykket. Det eneste vi kan gjøre, er å ignorere begge tastbindingene, slik at
Ctrl+F4
i praksis blir ubrukelig i denne konteksten og dette skjemaet.
Denne typen konflikter kan løses av ved at du eksplisitt tilordner tastsekvensen til en av disse kommandoene.
En annen type konflikt kan oppstå ved bruk av flertrykks tastsekvenser. I Emacs-skjemaet er for eksempel mange flertrykks sekvenser som begynner med
tasttrykket Ctrl+X
. Ctrl+X K
, tilordnet til Lukk
. Ctrl+X H
er tilordnet til Velg alle
.
Som tidligere nevnt låner Emacs-skjemaet tastbindinger fra Standard-skjemaet. I Standard-skjemaet er Ctrl+X
tilordnet til Klipp ut
. Selv om
Emacs-skjemaet ikke eksplisitt omdefinerer Ctrl+X
, må brukeren trykke på
Ctrl+X
som en del av mange tastbindinger. Når du i Emacs-skjemaet trykker på Ctrl+X
, oppgir du halvparten av mange mulige tilordnede tastsekvenser. Du forventer ikke at handlingen Klipp ut
skal utføres på dette tidspunktet.
For denne typen konflikt er regelen at tastsekvensen Ctrl+X
, som er tilordnet til
Klipp ut
, ignoreres. Ellers ville det ikke være mulig å fullføre mange av tastbindingene i Emacs-Konfigurasjonen.
Tilgjengelighetsfunksjoner i Eclipse
Endre tastbindinger
Hjelp