A função do teclado pode ser amplamente personalizada no Eclipse. No Eclipse, pressionamentos e seqüências de teclas são atribuídos para chamar comandos específicos.
'key stroke' é o pressionamento de uma tecla, enquanto opcionalmente mantém-se
pressionada uma ou mais teclas modificadoras: Ctrl
, Alt
(Option
no Macintosh), Shift
ou Command
(somente no Macintosh.) Por exemplo, pressionar Ctrl
e, em seguida,
pressionar A
, equivale ao key stroke Ctrl+A
. O pressionamento
das teclas modificadoras em si não constituem key strokes.
'key sequence' é uma ou mais teclas sendo pressionadas. Tradicionalmente, os Emacs
atribuíram duas ou três seqüências de teclas a comandos específicos. Por exemplo, a
seqüência de teclas normais Fechar Tudo
nos Emacs é Ctrl+X
Ctrl+C
. Para digitar essa seqüência de teclas, pressione Ctrl+X
seguido por Ctrl+C
. Embora o Eclipse suporte seqüências de teclas de comprimentos arbitrários, recomenda-se
que os atalhas de teclado tenham quatro pressionamentos de teclas de comprimento (ou menos).
'key binding' é a atribuição de uma seqüência de teclas a um comando.
'configuration' é um conjunto de ligações de teclas. O Eclipse inclui duas configurações:
A configuração Padrão contém um conjunto geral de ligações de teclas, em muitos casos reconhecíveis pelos
usuários como seqüências de teclas tradicionais. Por
exemplo, Ctrl+A
é atribuído a Selecionar Tudo
,
Ctrl+S
é atribuído a Salvar
etc.
Ctrl+X H
é atribuído a
Selecionar Tudo
, Ctrl+X S
é atribuído a Salvar
etc.
É importante entender por que se afirma que a configuração Emacs 'estende Padrão'. A configuração Emacs
não é um conjunto completo de ligações de teclas como a configuração Padrão. Mais propriamente, ela apropria-se da configuração
Padrão, sempre que possível, somente definindo ligações de teclas explícitas no estilo Emacs, em que variam conforme a
configuração Padrão. Normalmente, somente comandos bem conhecidos como Selecionar Tudo
, Salvar
e etc possuem seqüências de teclas Emacs específicas associadas a eles.
O usuário decide qual configuração lhe é mais conveniente alterando a definição 'Configuração Ativa' na página de preferência de teclas. Se o usuário escolher a configuração Padrão, todas as ligações de teclas de Emacs serão ignoradas. Se o usuário escolher a configuração Emacs, as designações de seqüências de teclas explícitas do estilo Emacs terão precedência sobre qualquer designação conflitante na configuração Padrão.
Ligações de teclas podem variar com base no contexto atual do Eclipse.
Às vezes, a parte ativa poderá ser um editor de arquivo Java, por exemplo, em que
um conjunto diferente de designações de seqüências de teclas pode ser mais apropriado do que se
a parte ativa fosse um editor de arquivo html. Como um exemplo específico, normalmente Ctrl+B
é designado a Construir
em um contexto de edição de arquivo Java, enquanto
Ctrl+B
é designado a Tornar o Texto em Negrito
em um contexto
de edição de arquivo HTML. Esse contexto normalmente é determinado pela parte
ativa, mas ele também pode ser influenciado pela janela ou diálogo ativo. Se a
parte ativa não escolher um contexto específico, o workbench definirá o
contexto ativo como Em Janelas.
O Eclipse inclui sete contextos diferentes. São eles:
Muito semelhantes às configurações, os contextos podem estender outros contextos. Por exemplo, o contexto Edição de Origem Java apropria-se das ligações de teclas do contexto Edição de Texto, que por sua vez apropria-se das ligações de teclas do contexto Em Janelas.
Nota: Não se recomenda promover uma ligação de tecla para um contexto que ela estende. Por exemplo, não se recomenda mover uma ligação de tecla Edição de Texto para o contexto Em Diálogos e Janelas. Isso pode causar resultados inesperados.
É possível que algumas ligações de teclas funcionem em diálogos. Essas ligações de teclas são designadas ao contexto Em Diálogos e Janelas. Um exemplo de tal ligação de tecla é a utilizada para "recortar". É possível alterar essas ligações de teclas. Por exemplo, é possível ter Ctrl+X como recortar em diálogos, mas Ctrl+W como recortar em janelas.
As ligações de teclas também variam conforme a plataforma e a localidade. Na plataforma
Macintosh, Command+S
é atribuído a Salvar
, em vez do usual
Ctrl+S
. Nas localidades do chinês (zh), Alt+/
é atribuído a
Assistente de Conteúdo
, em vez do usual Ctrl+Espaço
.
A plataforma e a localidade atuais são determinadas quando o Eclipse é iniciado e não variam no curso de uma instância do Eclipse.
Com várias seqüências de pressionamentos de teclas, configurações e contextos, há muito o que ser considerado ao personalizar ligações de teclas. Para facilitar o processo, toda a personalização de teclas é feita na página Preferências de Teclas.
Selecione Janela > Preferências > Workbench > Teclas para acessar a página de preferências de Teclas.
Fechar
na lista de comandos. As informações
sobre esse comando, juntamente com suas ligações de teclas atuais são mostradas.
Observe que Fechar
possui três seqüências de teclas designadas a ela: Ctrl+F4
e Ctrl+W
na configuração Padrão e Ctrl+X K
na configuração
Emacs. Todas elas são designadas no contexto Em Janelas. Assim, se o
usuário definir a configuração ativa como Padrão, Ctrl+F4
e Ctrl+W
serão designadas a Fechar
, enquanto Ctrl+X K
não. Entretanto, se o
usuário definir a configuração ativa como Emacs, Ctrl+X K
será
atribuído a Fechar
. Da mesma forma, como a configuração Emacs
também se apropria das ligações de tecla da configuração Padrão,
Ctrl+F4
e Ctrl+W
também serão designadas a Fechar
desde que
essa ligação de tecla não tenha sido designada a outro comando na configuração
Emacs. Neste exemplo, "Ctrl+W" está ligado a Recortar
na configuração de
teclas Emacs.
Abaixo da lista de seqüências de teclas atribuída a Fechar
, encontra-se
um local para adicionar ou remover as ligações de teclas. Por padrão, ele seleciona o contexto como Em Janelas.
A seqüência de teclas Ctrl+W
é pressionada e o botão 'Adicionar' é
ativado. Além disso, uma lista de todos os comandos aos quais a seqüência de teclas
Ctrl+W
já foi atribuída é mostrada abaixo do botão Adicionar. Podemos ver que Ctrl+W
está designada atualmente ao comando Recortar
no contexto Em Janelas e Diálogos. Clique no botão 'Adicionar'
para atribuir Ctrl+W
a Fechar
.
Vemos agora Ctrl+W
adicionado à lista de seqüências de teclas atribuídas a
Fechar
. Observe o pequeno gráfico 'alteração'
indicando que essa ligação de tecla altera uma ligação de tecla existente. Em nossa nova ligação
de teclas, certifique-se de que a ligação de tecla
Ctrl+W
para Fechar
funciona na configuração de teclas Emacs
. A ligação para Recortar
ainda existe, mas funcionará apenas em diálogos (isto é, quando estivermos "em diálogos e janelas",
mas não "em janelas"). Para remover essa alteração quando desejar, selecione a nova
ligação de tecla e clique no botão 'Remover'. A atribuição anterior de
Ctrl+W
a Recortar
será restaurada automaticamente.
Recortar
, é possível ver os resultados da alteração. Observe o gráfico
Recortar
na
configuração Emacs, ou seja, Ctrl+Alt+W
. Adicionando isso na
maneira descrita anteriormente resultará no que se segue. Observe o pequeno sinal de 'mais' no gráfico
Ligações de teclas são fornecidas por plug-ins e, no Eclipse, os plug-ins podem ser
adicionados ou removidos. Isso pode fazer com que as ligações de teclas declaradas pelos
plug-ins sejam adicionadas ou removidas. Para compensar isso, o Eclipse armazena ligações
de teclas personalizadas de forma automática. Considere o exemplo anterior em que
Ctrl+Alt+W
foi atribuído a Recortar
na configuração
Emacs. Suponha que o usuário instale um novo plug-in que atribua
Ctrl+Alt+W
a um comando específico. O Eclipse manterá a atribuição do
usuário ao comando Recortar
, mas mostrará a ligação de tecla com a pequena
'alteração' no gráfico, em vez do sinal de 'mais'.
Há somente um número finito de simples pressionamentos de teclas comuns disponível a
um número enorme de comandos. Vimos que configuração, escopo, plataforma e localidade,
todos repartem designações de seqüências de teclas em domínios onde
elas não entram em conflito entre si. Considere o caso do Ctrl+B
anterior, se os contextos não existissem. Um plug-in atribuiria Ctrl+B
a
Compilação
e outro plug-in atribuiria Ctrl+B
a Tornar
Texto em Negrito
. Como o Eclipse resolveria esse conflito da forma apropriada?
Embora os conflitos tenham sido eficazmente reduzidos com a implementação dos
mecanismos anteriores, eles ainda podem ocorrer. Dois plug-ins, independentes um do outro, poderiam designar
a mesma seqüência de teclas a comandos diferentes com o mesmo contexto, configuração,
plataforma e localidade. Suponha que um plug-in designou Ctrl+F4
no
contexto Em Janelas e na configuração Padrão a um de seus
comandos. Isso entra em conflito direto com o Eclipse, que designa Ctrl+F4
ao comando fechar no mesmo contexto e na mesma configuração.
Ctrl+F4
efetivamente inutilizável nesse contexto e nessa configuração.
Conflitos dessa natureza são mostrados na página Preferências de teclas. Observe o texto em vermelho e a palavra "[conflito]":
Esses tipos de conflitos podem ser resolvidos pelo usuário que está atribuindo explicitamente a seqüência de teclas a um dos comandos.
Outro tipo de conflito pode ser causado por seqüências de pressionamentos de várias
teclas. Por exemplo, na configuração Emacs, há muitas seqüências de
pressionamentos de várias teclas que começam com Ctrl+X
. Ctrl+H
K
é atribuído a Fechar
. Ctrl+X H
é atribuído a
Selecionar Tudo
.
Conforme mencionado anteriormente, a configuração Emacs apropria-se das ligações
de teclas da configuração Padrão. Na configuração padrão, Ctrl+X
é atribuído a Recortar
. Embora a configuração Emacs não redefina
explicitamente Ctrl+X
, pressionar Ctrl+X
é exigido como parte
de muitas de suas ligações de teclas. Na configuração Emacs, pressionar
Ctrl+X
é uma maneira incompleta de digitar uma das várias seqüências de
teclas atribuídas possíveis. Não seria esperado que a ação Recortar
fosse chamada nesse momento.
Nesse tipo de conflito, a regra é que a seqüência de teclas Ctrl+X
atribuída a Recortar
seria ignorada. Caso contrário, não seria
possível concluir várias das ligações de teclas na configuração Emacs.
Recursos de Acessibilidade no Eclipse
Alterando as Ligações de Teclas
Sistema de ajuda on-line