Teclas

A função do teclado pode ser personalizada extensivamente no Eclipse através da utilização da página de preferências Geral > Chaves. No Eclipse, os batimentos de teclas e as sequências de teclas são atribuídos para invocar determinados comandos.

Batimentos de Teclas, Sequências de Teclas e Associações de Teclas

Um "batimento de tecla" é a pressão de uma tecla no teclado, enquanto mantém premida opcionalmente uma ou mais destas teclas modificadoras: Ctrl, Alt (Option no Macintosh), Shift ou Command (apenas no Macintosh.) Por exemplo, ao manter premido Ctrl e depois premindo A, irá produzir o batimento de tecla Ctrl+A. A pressão das teclas modificadoras em si não constitui batimentos de teclas.

Uma "sequência de teclas" é um ou mais batimentos de teclas. Tradicionalmente, os Emacs atribuíram duas ou três sequências de teclas de batimento de tecla para determinados comandos. Por exemplo, a sequência de teclas normal atribuída a Fechar Tudo em emacs é Ctrl+X Ctrl+C. para inserir esta sequência de teclas, basta premir o batimento de tecla Ctrl+X seguido do batimento de tecla Ctrl+C. Quando o Eclipse suporta sequências de teclas de comprimentos arbitrários, recomenda-se que os atalhos do teclado tenham quatro batimentos de teclas de comprimento (ou menos).

Uma "associação de teclas" é a atribuição de uma sequência de teclas a um comando.

Esquemas

Um "esquema" é um conjunto de associações. O Eclipse inclui dois esquemas:

O esquema Predefinição contém um conjunto de associações gerais, que em muitos casos são reconhecidas como sequências de teclas tradicionais para comando conhecidos. Por exemplo, Ctrl+A é atribuída a Seleccionar Tudo e Ctrl+S é atribuída a Guardar.

O esquema de Emacs contém um conjunto de associações de teclas familiar aos utilizadores de Emacs. Por exemplo, Ctrl+X H é atribuída a Seleccionar Tudo e Ctrl+X S é atribuída a Guardar.

É importante compreender o motivo porque o esquema de Emacs diz que "expande a Predefinição". O esquema de Emacs não é um conjunto completo de associações como o esquema Predefinição. Em vez disso, vai retirar do esquema Predefinição onde possível, definindo apenas associações ao estilo de Emacs explícitas, em que variam do esquema Predefinição. Geralmente, apenas comandos bem conhecidos como Seleccionar Tudo, Guardar, etc. têm sequências de teclas específicas de Emacs associadas a eles.

Seleccione o esquema com o qual prefere trabalhar ao alterar a definição "Scheme" na página de preferências de teclas. Se seleccionar o esquema Predefinição, serão ignoradas todas as associações Emacs. Se seleccionar o esquema Emacs, as atribuições de sequências de chaves de estilo Emacs explícitas terão precedência sobre quaisquer atribuições conflituosas no esquema Predefinição.

Contextos

As associações de teclas podem variar com base no contexto actual do Eclipse.

Por vezes, a parte activa poderá ser um editor de ficheiros Java, por exemplo, onde um conjunto diferente de atribuições de sequências de teclas pode ser mais apropriado do que se a parte activa estiver num editor de ficheiros html. Como exemplo específico, normalmenteCtrl+B é atribuída a Construir num contexto como o da edição de ficheiros Java, enquanto que Ctrl+B é atribuída a Colocar Texto a Cheio num contexto como a edição de ficheiros HTML. Este contexto é normalmente determinado pela parte activa, mas pode ser influenciado também pela janela ou caixas de diálogo activas. Se a parte activa não escolher um determinado contexto, a área de trabalho irá definir o contexto activo para Em Janelas.

O Eclipse inclui nove contextos diferentes. São eles:

Tal como nas configurações, os contextos podem expandir outros contextos. Por exemplo, o contexto Editar Origem Java vai buscar associações de teclas ao contexto Editar Texto, que por sua vez vai buscar associações de teclas ao contexto Em Janelas.

Nota: Não se recomenda a promoção de uma associação de teclas a um contexto que esta expande. Por exemplo, não se recomenda que mova uma associação de teclas Editar Texto para o contexto Em Caixas de diálogo e Janelas. Poderá trazer resultados inesperados.

É possível que algumas associações de teclas funcionem em caixas de diálogo. Essas associações de teclas são atribuídas ao contexto Em Caixas de diálogo e Janelas. Um exemplo de uma associação de teclas desse tipo é a associação de teclas para "cortar". É possível alterar estas definições de teclas. Por exemplo, é possível ter Ctrl+X como cortar nas caixas de diálogo mas Ctrl+W como cortar nas janelas.

Plataforma e Locale

As associações de teclas também variam com a plataforma e locale. Na plataforma Macintosh, Comando+S é atribuída aGuardar, em vez do habitual Ctrl+S. Nos locales chineses (zh), Alt+/ é atribuída a Assistência de Conteúdo, em vez do habitual Ctrl+Espaço.

A plataforma e locale actuais são determinado aquando do início do Eclipse e não variam ao longo de uma instância do Eclipse.

Personalizar associações de teclas

Com sequências, esquemas e contextos de teclas de vários batimentos, existem muitos pormenores a ter em conta ao personalizar associações de teclas. Para facilitar o processo, todas as personalizações de teclas são feitas na página de preferências Geral > Teclas.

Página de preferências Teclas que mostra Emacs como a configuração activa e o comando Fechar seleccionado

Neste exemplo, optámos por seleccionar Emacs como o esquema e seleccionámos o comando Fechar na lista de comandos. As informações sobre este comando, juntamente com as associações de teclas actuais, são apresentadas.

Repare que Fechar tem três sequências de teclas atribuídas: Ctrl+F4 e Ctrl+W no esquema Predefinição e Ctrl+X K no esquema deEmacs. Estão todas atribuídas no contexto Em janelas. Deste modo, se o utilizador definir o esquema para Predefinição, será atribuídaCtrl+F4 e Ctrl+W a Fechar enquanto Ctrl+X K não será. Contudo, se definir o esquema como Emacs, o Ctrl+X K será atribuído a Fechar. Da mesma forma, visto que o esquema deEmacs também vai buscar associações de teclas ao esquema Predefinição, Ctrl+F4 e Ctrl+W também serão atribuídas a Fechar, desde que essa associação de teclas não tenha sido atribuída a outro comando no esquema de Emacs. Neste exemplo, "Ctrl+W" está associada aCortar no esquema de Emacs.

Por baixo da lista de sequências de teclas atribuídas aFechar, existe um local para adicionar ou remover associações de teclas. Por predefinição, selecciona o contexto como Em Janelas.

Inserimos a sequência de teclas Ctrl+W e o botão "Adicionar" fica activado. Além disso, é apresentada uma lista de todos os comandos a que a sequência de teclas Ctrl+W já está atribuída por baixo do botão Adicionar. Podemos ver que Ctrl+W está actualmente atribuído ao comando Cortar no contexto Em Janelas e Caixas de diálogo. Fazemos clique no botão "Adicionar" para atribuir Ctrl+W a Fechar.

A Natureza Dinâmica das Associações de Teclas

As associações de teclas são facultadas por plug-ins e em Eclipse, os plug-ins podem ser adicionados ou removidos. Esta acção poderá levar a que as associações de teclas declaradas por estes plug-ins sejam adicionadas ou removidas. O Eclipse armazena associações de teclas de modo a compensar esta situação. Considere o exemplo acima em que Ctrl+Alt+W foi atribuído a Cortar no esquemaEmacs. Suponhamos que é instalado um novo plug-in que atribui Ctrl+Alt+W a um determinado comando. O Eclipse irá preservar a atribuição para Cortar.

Resolução de Conflitos

Existe apenas um número finito de batimentos de teclas simples, comuns, disponíveis para serem atribuídos a uma variedade de comandos. Verificámos o esquema, contexto, plataforma e locale de todas as atribuições de sequência de teclas de partição em domínios em que não entram em conflitos entre si. Considere o caso de Ctrl+B acima se não existirem contextos. Um plug-in iria atribuir Ctrl+B a Construir, o outro plug-in iria atribuir Ctrl+B a Colocar o Texto a Cheio. Como é que o Eclipse resolveria adequadamente este conflito?

Apesar dos conflitos serem reduzidos de forma drástica ao empregar os mecanismos acima mencionados, ainda poderão ocorrer. Dois plug-ins, independentes entre si, poderiam atribuir a mesma sequência de teclas a diferentes comandos com o mesmo contexto, esquema, plataforma e locale. Considere que um plug-in atribuíaCtrl+F4 no contexto Em Janelas e o esquemaPredefinição a um dos seus comandos. Esta acção entra em conflito directamente com o Eclipse a atribuir Ctrl+F4 ao comando fechar na mesmo contexto e esquema.

Trata-se de um conflito. Não seria adequado invocar ambos os comandos, nem seria adequado simplesmente escolher um dos dois comandos para receber o batimento de tecla. A única acção correcta será ignorar ambas as associações de teclas, inutilizando efectivamente Ctrl+F4 no respectivo contexto e esquema.

Estes tipos de conflitos podem ser resolvidos ao atribuir explicitamente a sequência de teclas a um dos comandos.

Outro tipo de conflito pode ser originado por sequências de teclas de vários batimentos de teclas. Por exemplo, no esquema Emacs, existem várias sequências de teclas de vários batimentos de teclas que começam pelo batimento de teclas Ctrl+X. Ctrl+X K está atribuída a Fechar. Ctrl+X H está atribuída aSeleccionar Tudo.

Como já havia sido mencionado, o esquema de Emacs vai buscar associações de teclas ao esquema Predefinição. No esquema predefinição, Ctrl+X está atribuída a Cortar. Apesar do esquema de Emacs não redefinir explicitamente Ctrl+X, é necessário premir Ctrl+X como parte de muitas das suas associações de teclas. No esquema de Emacs, quando se premir Ctrl+X, está-se a meio caminho de entrar numa das muitas sequências de teclas atribuídas possíveis. Não se deverá esperar que a acção Cortar seja invocada nesta altura.

Para este tipo de conflito, a regra diz que a sequência de teclasCtrl+X atribuída a Cortar seria ignorada. Caso contrário, não seria possível completar muitas das associações de teclas na configuração de Emacs.

Conceitos relacionados
Funções de Acessibilidade em Eclipse
Alterar as associações de teclas
Ajuda

Referências relacionadas
Definições de tipo de letra e de cor em Eclipse