emacsclient superchave ou hiperchave em iterm2

2

O que o título diz: Eu quero mudar para usar um modelo emacs-server / emacs-client em vez de usar a GUI para Mac OS X. Eu uso o iTerm2. Eu gostaria de mapear a tecla de função (fn) para super ou hiper.

Eu tentei usar o KeyRemap4MacBook - mas sem sorte.

Atualização:

Parece que posso usar event-apply-super-modifier ou event-apply-hyper-modifier , definido por function-key-map .

Eu provavelmente posso fazer a tecla Fn emitir um código de tecla usado, como KeyCode::F18 , e ter o iTerm2 traduzindo isso para alguns caracteres de escape, como:

Esc + [+ J ou algo parecido.

ATUALIZAÇÃO (13 de abril de 2015):

Acho que este link é muito interessante. Pode haver uma maneira de configurar o iterm2 para enviar as chaves de controle apropriadas, semelhantes à resposta do @bestbear74.

    
por Mahmoud Abdelkader 27.08.2013 / 09:53

1 resposta

1

Solução alternativa insatisfatória

A sequência C-x @ s-… é equivalente a s-… , p. C-x @ s-t é equivalente a s-t . Combinado com atalhos iTerm2:

  1. Crie um atalho global ou de perfil para ⌘… definido como Send hex code , por ex. %código%
  2. Especifique o código hexadecimal do formulário: ⌘t => Send hex code em que 0x18 0x40 MOD KEY é MOD ou 0x68 para 0x73 e h respectivamente e s é a chave que você deseja modificar com KEY ou %código%. Por exemplo. mapeamento hyper para super :

    ⌘t => 0x18 0x40 0x73 0x74
    
  3. Repita para cada atalho que você quiser… meh…

Experiência com falha # 1

Em iTerm:

  1. Configure à esquerda & Teclas de opção direita como opção esquerda
  2. Configure à esquerda & Teclas de Comando Direitas como Opção Certa
  3. Em um perfil, configure a opção esquerda como ⌘t e a opção direita como s-t

Remapear +ESC dessa maneira efetivamente desativa todos os atalhos de teclado iTerm… meh…

No Emacs:

Usar a opção direita ( Meta ) resulta em caracteres com conjunto de 8 bits, que, pelo que entendi, é a maneira antiga de representar a tecla META (quando os teclados tinham uma chave META real).

No entanto, não consegui fazer com que o Emacs fizesse algo útil com essa distinção. Dado que = > R⌥ com seu oitavo bit em = > octal META-t Eu tentei:

(global-set-key (kbd "[R⌥-t]") (lambda () (interactive) (message "woot #1")))
(global-set-key (kbd "4") (lambda () (interactive) (message "woot #2")))

Onde t é o caractere individual que aparece no meu buffer quando eu pressiono essa sequência de teclas, representada graficamente como 364 , mas se comportando como um único caractere.

Vale notar que com o nosso sem a chave, sempre que eu pressionar [R⌥-t] nada é exibido no emacs até que eu pressione outra tecla na qual o emacs exibe o caracter 4 seguido pela interpretação do segundo pressionamento de tecla. Por exemplo, R⌥-t = > 4 e R⌥-t a = > 4a<point> , mas somente após R⌥-t LEFT ou a seta para a esquerda ter sido pressionada.

Você pode experimentar apenas fazendo a Etapa 3 acima e usando <point>4 diretamente.

    
por 30.03.2015 / 03:33