## Les raccourcis clavier dans Amaya

Il est utile de pouvoir invoquer les commandes des menus directement depuis le clavier. La boîte à outils de Thot fournit une facilité qui laisse l'utilisateur accomplir ceci par le biais d'un fichier de raccourcis clavier. Ce fichier définit une liste d'associations entre une séquence au clavier et la commande correspondante invoquée.

La syntaxe utilisée pour définir une association est :

`Directive = KeySeq ':' IdentCommand ;
KeysSeq = KeySet [ ',' KeySet ] ;
KeySet = [ Modifier ] [ 'Shift' ] Key ;
Key = '<Key>' KeyValue / '<Key>' SpecialKey ;
Modifier = 'Ctrl' / 'Alt' / 'Meta' ;
KeyValue = 'a' / 'b' / ... ;
SpecialKey = 'Escape' / 'Delete' / 'Space' / 'BackSpace' /
'Enter' / 'Up' / 'Down' / 'Left' / 'Right' /
'Home' / 'End' / 'F1' / ... / 'L1' / ... / 'R1' / ... ;
IdentCommand = 'TtcInsertChar(' Char ')' / NAME '()' ;
Char = KeyValue / OctalValue / Entity ;``
OctalValue = '\' NUMBER ;
Entity = DecEntity / HexaEntity ;
DecEntity = '&' '#' NUMBER ';' ;
HexaEntity = '&' '#' 'x' HEXADECIMAL ';' ;`

Par exemple, regardez les fichiers standards `amaya.keyboard` (pour stations Unix) et `amaya.kb` (pour stations Windows), qui sont localisés par défaut dans le répertoire `Amaya/config`.

La liste des commandes disponibles est (une liste plus à jour peut être trouvée dans les sources d'Amaya : `Amaya/amaya/EDITOR.A`) :

- Commandes de déplacement :
  - `TtcNextChar`, `TtcPreviousChar` : déplace caractère par caractère.
  - `TtcNextWord`, `TtcPreviousWord` : déplace mot par mot.
  - `TtcStartOfLine`, `TtcEndOfLine` : déplace au début ou à la fin de la ligne courante..
  - `TtcNextLine`, `TtcPreviousLine` : déplace ligne par ligne.
  - `TtcNextElement`, `TtcPreviousElement`, `TtcChildElement`, `TtcParentElement` : déplace élément par élément.
  - `TtcPageDown`, `TtcPageUp`, `TtcPageTop`, `TtcPageEnd` : fait défiler page par page.
  - `TtcLineUp`, `TtcLineDown` fait défiler une ligne en haut ou une ligne en bas.
- Commandes d'extension de la sélection :
  - `TtcNextSelChar`, `TtcPreviousSelChar` : sélectionne caractère par caractère.
  - `TtcNextSelWord`, `TtcPreviousSelWord` : sélectionne mot par mot.
  - `TtcSelStartOfLine`, `TtcSelEndOfLine` : sélectionne jusqu'au début ou à la fin de la ligne courante.
  - `TtcNextSelLine`, `TtcPreviousSelLine` : sélectionne ligne par ligne.
- Une commande qui permet de suivre un lien ou d'activer un élément de formulaire HTML (menu, bouton, etc.) :
- Une commande qui permet de sauter au prochain (ou au premier s'il n'y a pas de sélection) lien ou élément de formulaire HTML :

  `NextLinkOrFormElement`.

- Une commande qui permet de sauter lien ou élément de formulaire HTML précédent :

  `PreviousLinkOrFormElement`.

- Dans le menu Fichier :

  `NewXHTML11`, `NewXHTMLTransitional`, `NewXHTMLStrict`, `NewXHTMLStrict`, `NewMathML`, `NewSVG`, `NewCss`, `NewTemplate`, `OpenDoc`, `Reload`, `GotoPreviousHTML`, `GotoNextHTML`, `GoToHome`, `SaveDocument`, `SaveDocumentAs`, `Synchronize`, `ShowLogFile`, `SetupAndPrint`, `PrintAs`, `CloseDocument`, `AmayaCloseTab`,`AmayaCloseWindow`, `AmayaClose`.

- Dans le menu Édition :

  `TtcUndo`, `TtcRedo`, `TtcCutSelection`, `TtcCopySelection`, `TtcPaste`, `TtcDeleteSelection`, `SetBrowserEditor`, `TtcSearchText`, `SpellCheck`, `TransformType`, `ConfigAmaya`.

- Dans le menu Eléments :
  - Menu XHTML : `ChangeTitle`, `CreateAddress` `CreateParagraph`, `CreateImage`, `CreateHorizontalRule`, `CreateBlockQuote`, `CreatePreformatted`, `CreateAddress`, `CreateDivision`, `CreateNOSCRIPT`, `CreateObject`, `CreateParameter`, `CreateIFrame`, `CreateBreak`,`MakeBook`, `CreateAreaRect`, `CreateAreaCircle`, `CreateAreaPoly`, `CreateForm`, `CreateFileInput`, `CreateImageInput`, `CreatePasswordInput`, `CreateHiddenInput`, `CreateLabel`, `CreateFieldset`, `CreateOptGroup`, `CreateToggle`, `CreateRadio`, `CreateOption`, `CreateTextInput`, `CreateTextArea`, `CreateSubmit`, `CreateReset`, `CreateHeading1`, `CreateHeading2`, `CreateHeading3`, `CreateHeading4`, `CreateHeading5`, `CreateHeading6``, CreateList`, `CreateNumberedList`, `CreateDefinitionList`, `CreateDefinitionTerm`, `CreateDefinitionDef`, `CreateObject`, `CreateParameter`
  - Sous-menu Table: `CreateTable`, `CreateCaption`, `CreateTHead`, `CreateTBody`, `CreateTFoot`, `CreateRow`, `CreateDataCell`, `CreateHeadingCell`, `DeleteColumn`
  - Sous-menu Structure : `CreateBase`, `CreateMeta`, `CreateLinkInHead`, `CreateScript`, `CreateStyle`, `CreateComment.`
  - Sous-menu Types information : `SetOnOffEmphasis`, `SetOnOffStrong`, `SetOnOffCite`, `SetOnOffDefinition`, `SetOnOffCode`, `SetOnOffVariable`, `SetOnOffSample`, `SetOnOffKeyboard`, `SetOnOffAbbr`, `SetOnOffAcronym`, `SetOnOffINS`, `SetOnOffDEL`.
  - Sous-menu éléments caractères : `SetOnOffItalic`, `SetOnOffBold`, `SetOnOffTeletype`, `SetOnOffBig`, `SetOnOffSmall`, `SetOnOffSub`, `SetOnOffSup`, `SetOnOffQuotation`, `SetOnOffBDO`.
  - Sous-menu Math: `CreateInlineMath`, `CreateMath`, `CreateMROOT`, `CreateMSQRT`, `CreateMFRAC`, `CreateMSUBSUP`, `CreateMSUB`, `CreateMSUP`, `CreateMUNDEROVER`, `CreateMUNDER`, `CreateMOVER`, `CreateMROW`, `CreateMMULTISCRIPTS`, `CreateMTABLE`
- Dans le menu `Liens` :

  `LinkToPreviousTarget`, `CreateOrChangeLink`, `CreateTarget`, `DeleteAnchor`, `MakeID`.

- Dans le menu `Vues` :

  `ShowPanel`, `FullScreen`, `ShowMapAreas`, `ShowTargets`, `ZoomIn`, `ZoomOut`, `ShowFormatted`, `ShowStructure`, `ShowAlternate`, `ShowLinks`, `ShowToC`, `ShowSource`, `SplitHorizontally`, `SplitVertically`.

- Dans le menu `Style` :

  `TtcChangeCharacters`, `TtcChangeColors`, `TtcChangeFormat`, `ChangeBackgroundImage`, `CreateClass`, `ApplyClass`, `LinkCSS`, `OpenCSS`, `DisableCSS`, `EnableCSS`, `RemoveCSS`, `DoLeftAlign`, `DoRightAlign`, `DoCenter`, `DoJustify`.

- Dans le menu Annotations:

  `AnnotateSelection`, `AnnotateDocument`, `LoadAnnotations`, `PostAnnotation`, `DeleteAnnotation`, `FilterAnnot`, `ConfigAnnot`.

- Dans le menu `Aide` :

  `HelpAmaya`, `HelpAtW3C`, `HelpBrowsing`, `HelpSelecting`, `HelpSearching`, `HelpViews`, `HelpCreating`, `HelpLinks`, `HelpChanging`, `HelpTables`, `HelpMath`, `HelpSVG`, `HelpImageMaps`, `HelpStyleSheets`, `HelpAttributes`, `HelpPublishing`, `HelpPrinting`, `HelpNumbering`, `HelpMakeBook`, `HelpAnnotation`, `HelpConfigure`, `HelpShortCuts`, `HelpAccess`.