gmac-key-theme Emacs: qual é o pressionamento de tecla para selecionar tudo?

22

Prefiro pressionar as teclas do emacs, mas selecionar tudo não parece fazer parte do vocabulário do emacs, ou pelo menos, o tema da tecla gtk do emacs. Mw não está trabalhando para copiar a região selecionada.

  1. Qual é o pressionamento de tecla para selecionar tudo?
  2. Onde está um mapa de ligação principal para esse tema?

Obrigado Steve

Chelmite
fonte

Respostas:

22

Não é uma ligação para "Selecionar tudo" em GTK simples:C-/

Ele é definido como um sinal geral do GtkTextView e não especificamente parte do tema principal do emacs. Mas funciona bem com isso. É definido como uma alternativa para C-a. Enquanto o último é reinterpretado pelo tema emacs, C-/permanece válido para "Selecionar tudo".

Vencedor
fonte
Ótima resposta. Por que ainda não tinha votos positivos?
Rörd 5/11/2015
7

Não há um único atalho para fazê-lo diretamente.

Você pode ir para o final do texto com Ctrl- ee remover uma linha Ctrl- u. Isso, no entanto, funciona apenas com GtkEntry, ou seja, campo de entrada de uma linha.

Se você precisar selecionar tudo em a GtkTextView, o controle de editor de várias linhas, você terá que fazer o oneroso Ctrl- Homeseguido de Ctrl+ Shift- End, que, com o meu teclado de 63 teclas, é quase impossível.

Se, pelo bom motivo de editar a eficiência ou as limitações dos teclados de dispositivos móveis, Homee Endestiver fora de alcance, você terá que se virar. Selecionar "Selecionar tudo" no menu "Editar" é uma péssima idéia, porque mapeia para Alt- e- ano firefox, Alt- e- tno gedit, Alt- e- sno OpenOffice (mesmo com integração com o gnome), em cada software uma chave diferente e em alguns softwares, não há "Selecionar tudo" no menu Editar, como o chromium, e em alguns softwares, nem existe o próprio menu Editar, nem mesmo um menu oculto para ser destacado Alt-e, como nautilus. Essa inconsistência supera a finalidade da barra de menus ativada pela Alt, e nem qualquer sistema operacional, nem mesmo o Windows, é tão inconsitente. Mesmo o menu do botão direito do mouse não possui um atalho fixo para "Selecionar tudo" - geralmente é, amas pode ser tde aplicativo para aplicativo. Solicitar correção de bug em cada software individual só pode ser feito com um meta-projeto como o GNOME, mas saber que o próprio GNOME produziu alguns desses problemas (a remoção do Menu Editar no 'nautilus' é uma decisão do GNOME 3) realmente não deixou você tem muita esperança.

Em uma nota lateral, Ctrl- Homeé o único atalho para mover para o início de todo o texto, mesmo que possa interromper seu trabalho para digitar dispositivos móveis com teclado pequeno.

A resposta termina aqui. Para as mentes curiosas, tenho informações adicionais:


Um usuário experiente do emacs tentaria Ctrl- x- h: emacs autêntico, de fato, mas nenhuma sequência de teclas de controle é entendida pelo modo emacs do gtk3. De fato, apenas um punhado de atalhos do emacs são definidos - Dê uma olhada /usr/share/themes/Emacs/gtk-3.0/gtk-keys.css; há espaço suficiente em um adesivo para anotar todos os atalhos do emacs suportados.

Para piorar a situação, é difícil realocar uma tecla de atalho para esse fim. Como você sabe, Ctrl- aé tomado pelo emacs. Mas mesmo os hispanofones, o maior grupo que não fala inglês (excluídos os chineses porque usamos ideógrafos), que são usados ​​para selecionar tudo com Ctrl- e, também acham esse atalho de teclado do emacs. Excluindo e, não há mais nenhuma tecla na metade esquerda de um teclado QWERTY sem um objetivo já bem aceito. O Google Tradutor usa a tecla SHIFT, quando pressionada sozinha, como 'selecionar tudo', mas nenhum outro software nem outros produtos do Google seguem a configuração.

Para esvaziar uma linha, use Ctrl- u. Isso tem a vantagem de não sobrescrever o X SELECTION (aquele que você puxa com o botão do meio do mouse). Esta é uma configuração única apenas do modo emacs do gtk3: no emacs real, ele não faz nada por si só; no readline (bash, mysql etc), ele deve excluir tudo do cursor até o início da linha, enquanto sua contraparte Ctrl- kexclui tudo do cursor até o final da linha.

Alguns podem sugerir que você deixe uma marca em algum lugar para seleção aleatória com o teclado. Você também pode encontrar Ctrl- SPACEestá no modo emacs configurado para definir uma âncora no texto. Apesar de conflitar com muitos outros softwares (métodos de entrada de ideógrafos em particular e preenchimento automático em outros softwares de edição), não há nenhuma tecla de atalho para usar a âncora que você definir.


O Ubuntu não suporta oficialmente o modo de edição do emacs, nem qualquer outra configuração de interface do usuário que não possa ser feita com a interface do usuário. Os relatórios de erros sobre essas necessidades são marcados como de baixa prioridade. Por esse motivo, acho melhor fazer essa pergunta para locais genéricos do Linux, por exemplo, superusuário.

Zhang Weiwu
fonte
2

As ligações do emacs são especificadas em /usr/share/themes/Emacs/gtk-2.0-key/gtkrc Você também pode adicionar ligações em ~ / .config / gtk-3.0 / gtk.css

Selecionar tudo seria algo como isto:

bind "<ctrl>h" { "move-cursor" (buffer-ends, -1, 0)
                 "move-cursor" (buffer-ends,  1, 1) };

Eu não encontrei uma maneira de vinculá-lo a Cx h, no entanto.

emacser
fonte
2

Exibir ligação de chave existente

Para aplicativos GTK3, é possível visualizar as ligações do tema principal do Emacs GTK - localmente, provavelmente em /usr/share/themes/Emacs/gtk-3.0/gtk-keys.css) - ou no repositório GTK do Git no GitHub (que não necessariamente corresponde ao seu arquivo local, pois sua distribuição pode ter sido modificada) .

Ao ler este arquivo, você deve estar ciente do significado dos widgets

(Veja a imagem na parte superior de cada site vinculado.)

Adicionando associação de teclas para selecionar todas

select-allpara GtkTreeVieweGtkTextView

Para GtkTreeViewe GtkTextViewwidgets, há um sinal chamado select-all. Você precisa passar o argumento 1para que ele selecione tudo ao invés de desmarcar.

Então, edite ~/.config/gtk-3.0/gtk.csse adicione algo como isto:

@binding-set my-text-and-tree-view-bindings
{
    bind "<alt>a"
    {
    "select-all" (1)
    };
}

textview {
  -gtk-key-bindings: my-text-and-tree-view-bindings;
}

treeview {
  -gtk-key-bindings: my-text-and-tree-view-bindings;
}

GtkEntry

Pois GtkEntrynão há select-allsinal. Em vez disso, você pode usar uma sequência de dois move-cursorsinais marcando o texto.

Mais uma vez, edite ~/.config/gtk-3.0/gtk.csse adicione algo como isto:

@binding-set my-entry-bindings
{
    bind "<alt>a"
    {
    "move-cursor" (paragraph-ends, -1, 0)
    "move-cursor" (paragraph-ends,  1, 1)
    };
}

entry {
  -gtk-key-bindings: my-entry-bindings;
}

Raposa de fogo

A propósito, no Firefox Alt- aseleciona tudo para mim por padrão sem configuração (usando o tema da chave Emacs GTK).

Mekeor Melire
fonte
1

Se você deseja selecionar todo o texto em uma região, prefiro definir uma macro simples para isso. Pressione F3 para começar a escrever uma macro. Então digite

Esc - <          // goes to beginning of document
Ctrl - spacebar  // set mark
Esc - >          // selects all till end of document

Em seguida, use M -w para copiar (o que normalmente faço para copiar de sistemas unix remotos para o Windows local) e pressione F4 para concluir a definição da macro.

Agora que você definiu a Macro, basta pressionar F4 quantas vezes quiser repetir a ação.

Prashanth R
fonte
O tema principal do GTK Emacs não é o mesmo que o próprio Emacs. Quase nenhuma das teclas em sua resposta trabalho lá (e se você realmente eram em si Emacs, você pode simplesmente usar Cx h em vez de uma macro.
Rörd