Klávesy

Funkci klávesnice lze v Eclipse široce přizpůsobit. V rámci Eclipse je možné přiřadit jednotlivým klávesám i sekvencím kláves konkrétní příkazy.

Klávesové úhozy, sekvence kláves a vazby kláves

'Klávesový úhoz' je stisknutí klávesy na klávesnici, volitelně s přidržením jedné či několika modifikačních kláves: Ctrl, Alt (Option na počítačích Macintosh), Shift, nebo Command (pouze na počítačích Macintosh.) Například přidržením klávesy modifikátoru Ctrl a následně stiskem písmene A se vygeneruje klávesový úhoz Ctrl+A. Stisk samotných modifikačních kláves nepředstavuje klávesový úhoz.

'Sekvence kláves' představuje jeden či několik klávesových úhozů. V editoru Emacs byly zpravidla ke konkrétním příkazům přiřazeny sekvence kláves obsahující dva až tři klávesové úhozy. Například normální sekvence kláves přiřazená k příkazu Zavřít vše v editoru emacs je Ctrl+X Ctrl+C. Pro zadání této sekvence kláves je nutné provést klávesový úhoz Ctrl+X, za nímž následuje Ctrl+C. Přestože Eclipse podporuje sekvence kláves libovolné délky, doporučuje se, aby klávesové zkratky nebyly delší než 4 úhozy kláves, případně méně.

'Vazbou kláves' se nazývá přiřazení sekvence kláves k příkazu.

Schémata

'Schéma' je množina vazeb. Eclipse obsahuje dvě schémata:

Výchozí schéma obsahuje obecnou množinu vazeb kláves, v mnoha případech snadno rozpoznatelných uživateli jako tradiční sekvence kláves. Například Ctrl+A je přiřazeno příkazu Vybrat vše, Ctrl+S je přiřazeno příkazu Uložit.

Schéma Emacs obsahuje množinu vazeb kláves známých uživatelům editoru Emacs. Například Ctrl+X H je přiřazeno příkazu Vybrat vše, Ctrl+X S je přiřazeno příkazu Uložit.

Je důležité si uvědomit, proč konfigurace Emacs 'rozšiřuje Výchozí konfiguraci'. Schéma Emacs není kompletní množinou vazeb kláves, jako je tomu u Výchozího schématu. Namísto toho si vypůjčuje od Výchozího schématu kdekoli je to možné a definuje explicitní vazby kláves ve stylu editoru Emacs v případech, kde se tyto liší od Výchozího schématu. Obecně platí, že konkrétní sekvence kláves editoru Emacs jsou asociovány pouze s dobře známými příkazy jako např. Vybrat vše, Uložit atd.

Uživatel si sám vybere, které schéma mu nejlépe vyhovuje. Za tímto účelem provede změnu nastavení 'Schématu' na stránce předvoleb pro klávesy. Pokud uživatel zvolí Výchozí schéma, všechny vazby kláves Emacs budou ignorovány. Pokud uživatel zvolí schéma Emacs, explicitní přiřazení sekvencí kláves ve stylu editoru Emacs budou mít vyšší prioritu, než odpovídající přiřazení ve Výchozím schématu.

Kontexty

Vazby kláves se mohou měnit v závislosti na aktuálním kontextu Eclipse.

Někdy může být aktivní částí editor souborů Java, například když je vhodnější používat odlišnou množinu přiřazení sekvencí kláves, než kdyby aktivní částí byl editor souborů HTML. Jako konkrétní příklad lze uvést sekvenci kláves Ctrl+B, která je v kontextu úprav souborů Java zpravidla přiřazena příkazu Build, zatímco v kontextu úprav souborů HTML je Ctrl+B přiřazeno Make Text Bold (text tučně). Tento kontext je zpravidla určen aktivní částí, ale může jej ovlivnit i aktivní okno nebo dialog. Pokud aktivní část nezvolí konkrétní kontext, pracovní plocha jej nastaví na V oknech.

Eclipse obsahuje devět různých kontextů. Jedná se o:

Podobně jako u konfigurace mohou být jednotlivé kontexty rozšířením jiných kontextů. Například kontext Úprava zdroje Java si vypůjčuje vazby kláves od kontextu Úprava textu, který si zase vypůjčuje vazby kláves od kontextu V oknech.

Poznámka: Nedoporučuje se postupovat vazbu kláves do kontextu, který je rozšířením. Například se nedoporučuje přesouvat vazbu kláves Úprava textu do kontextu V oknech a dialogových oknech. Tato operace může mít neočekávané výsledky.

Některé vazby kláves mohou fungovat v dialogových oknech. Tyto vazby kláves jsou přiřazeny do kontextu V oknech a dialogových oknech. Příkladem takové vazby kláves je "vyjmout". Tyto vazby kláves je možné měnit. Například je možné používat kombinaci Ctrl+X pro vyjmutí textu v dialogových oknech a zároveň Ctrl+W pro tutéž operaci v oknech.

Platforma a národní prostředí

Vazby kláves se též liší podle platformy a národního prostředí. Na platformě Macintosh je kombinace Command+S přiřazena příkazu Save (Uložit), namísto obvyklého Ctrl+S. V čínském národním prostředí (zh) je Alt+/ přiřazeno příkazu Obsahová asistence, namísto obvyklého Ctrl+Space.

Aktuální platforma a národní prostředí se určuje v okamžiku spuštění Eclipse a během instance Eclipse se již nemění.

Přizpůsobení vazeb kláves

Přizpůsobení vazeb kláves není triviální záležitostí vzhledem k existenci schémat, kontextů a sekvencí kláves sestávajících z několika úhozů. Pro usnadnění se přizpůsobování kláves provádí na stránce předvoleb kláves.

Stránku předvoleb kláves otevřete příkazem Okno > Předvolby > Obecné > Klávesy.

Stránka předvoleb kláves zobrazující editor Emacs jako aktivní konfigurace s vybraným příkazem Zavřít

V tomto příkladu jsme vybrali jako aktivní schéma editor Emacs a vybrali jsme ze seznamu příkazů příkaz Zavřít. Jsou zobrazeny informace o tomto příkazu společně s aktuální vazbou kláves.

Všimněte si, že k příkazu Zavřít jsou přiřazeny tři sekvence kláves: Ctrl+F4 a Ctrl+W ve Výchozím schématu a Ctrl+X K ve schématu Emacs. Obě jsou přiřazeny v kontextu V oknech. Pokud tedy uživatel nastaví aktivní schéma na Výchozí, Ctrl+F4 a Ctrl+W budou přiřazeny příkazu Zavřít, zatímco Ctrl+X K nikoli. Pokud však uživatel nastaví aktivní schéma na Emacs, kombinace Ctrl+X K bude přiřazena příkazu Zavřít. Protože si schéma Emacs rovněž vypůjčuje vazby kláves od Výchozího schématu, Ctrl+F4 a Ctrl+W budou rovněž přiřazeny příkazu Zavřít za předpokladu, že tyto vazby kláves nebyly přiřazeny jinému příkazu ve schématu Emacs. V tomto příkladu je "Ctrl+W" přiřazeno příkazu Vyjmout ve schématu Emacs.

Pod seznamem sekvencí kláves přiřazených příkazu Zavřít je místo pro přidání nebo odebrání vazeb kláves. Standardně se vybere kontext V oknech.

Zadáme sekvenci kláves Ctrl+W a tlačítko 'Přidat' se zpřístupní. Pod tlačítkem Přidat je rovněž seznam všech příkazů, ke kterým je sekvence kláves Ctrl+W již přiřazena. Vidíme, že sekvence Ctrl+W je aktuálně přiřazena příkazu Vyjmout v kontextu V oknech a dialogových oknech. Klepeme na tlačítko 'Přidat' pro přiřazení sekvence Ctrl+W k příkazu Zavřít.

Dynamický charakter vazeb kláves

Vazby kláves se poskytují v modulech plug-in a na platformě Eclipse lze moduly plug-in přidávat nebo odebírat. Díky tomu se mohou přidávat nebo odebírat i vazby kláves deklarované v těchto modulech plug-in. Platforma Eclipse ukládá uživatelské vazby kláves takovým způsobem, aby se toto automaticky kompenzovalo. Podívejme se na výše uvedený příklad, kde byla sekvence Ctrl+Alt+W přiřazena příkazu Vyjmout ve schématu Emacs. Předpokládejme, že uživatel nainstaloval nový modul plug-in, který přiřazuje sekvenci Ctrl+Alt+W ke konkrétnímu příkazu. Platforma Eclipse zachová uživatelské přiřazení k příkazu Vyjmout.

Řešení konfliktů

Existuje pouze omezený počet jednoduchých a běžných úhozů kláves, které lze přiřadit k většímu počtu příkazů. Viděli jsme, že díky schématu, kontextu, platformě a národnímu prostředí se přiřazení sekvencí kláves rozdělí do domén, kde nedochází ke vzájemnému konfliktu. Zvažme výše uvedený případ Ctrl+B za situace, kdy neexistují kontexty. Jeden modul plug-in by přiřadil sekvenci Ctrl+B k příkazu Build (Sestavit), zatímco jiný modul plug-in by ji přiřadil k Make Bold Text (Převést text na tučný). Jak by měla platforma Eclipse tento konflikt správně vyřešit?

Přestože je díky výše uvedeným mechanizmům výskyt konfliktů značně omezen, může k nim docházet. Dva vzájemně nezávislé moduly plug-in mohou přiřadit tutéž sekvenci kláves různým příkazům ve stejném kontextu, schématu, platformě a národním prostředí. Předpokládejme, že modul plug-in přiřadil jednomu z příkazů sekvenci Ctrl+F4 v kontextu V oknech a Výchozím schématu. Toto je v přímém konfliktu s platformou Eclipse, která přiřazuje Ctrl+F4 k příkazu Zavřít v tom samém kontextu a schématu.

Jedná se o konflikt. Nebylo by správné vyvolat oba dva příkazy, ani si jednoduše vybrat jeden z nich. Jediným správným řešením je obě vazby kláves ignorovat a považovat sekvenci kláves Ctrl+F4 v tomto kontextu a schématu za zcela neúčinnou.

Tento druh konfliktů může vyřešit uživatel explicitním přiřazením sekvence kláves jednomu z příkazů.

Jiný typ konfliktu může být způsoben sekvencemi kláves skládajících se z více úhozů kláves. Například ve schématu Emacs existuje řada sekvencí kláves skládajících se z více úhozů, které začínají úhozem Ctrl+X. Sekvence Ctrl+X K je přiřazena příkazu Zavřít. Sekvence Ctrl+X H je přiřazena příkazu Vybrat vše.

Jak jsme již zmínili, schéma Emacs si vypůjčuje vazby kláves od Výchozího schématu. Ve výchozím schématu je sekvence Ctrl+X přiřazena příkazu Vyjmout. Přestože schéma Emacs neprovádí explicitní předefinování sekvence Ctrl+X, stisk Ctrl+X je požadován jako součást několika vazeb kláves v tomto schématu. Pokud ve schématu Emacs stiskneme Ctrl+X, jsme na půl cestě k zadání některé z mnoha možných sekvencí kláves přiřazených v této konfiguraci. Neočekáváme však, že se v tomto okamžiku vyvolá akce Vyjmout.

U konfliktu tohoto typu platí pravidlo, že sekvence kláves Ctrl+X přiřazená příkazu Vyjmout bude ignorována. Jinak by nebylo možné dokončit celou řadu vazeb kláves v konfiguraci Emacs.

Související pojmy
Funkce usnadnění přístupu v Eclipse
Změna vazeb kláves
Systém online nápovědy

Související odkazy
Nastavení písma a barvy v Eclipse