Eu uso o GNU Emacs, geralmente como o emacs -nw
que lança a versão do terminal (em oposição à versão da GUI em janelas).
Como escrevo documentos escolares, LaTeX
uso flyspell-mode
para verificação ortográfica no emacs. Isso funciona bem na versão da GUI, mas em um terminal, encontro problemas com o pressionamento de tecla C-.
( Ctrl- .). Em um tty, isso não faz nada, e em terminator
ou gnome-terminal
, isso simplesmente insere um ".".
O que posso fazer para fazer o que faz na versão em janela (mostrar sugestões de ortografia para uma palavra incorreta)?
EDIT: Caso isso importe, estou usando o Ubuntu 12.04 com o Emacs 23.3.1 (que acredito ser o padrão do repo 12.04).
command-line
emacs
cg505
fonte
fonte
Esc
-x
flyspell-mode
? Isso funciona para mim.flyspell-mode
comM-x
, masESC x
não parece fazer a diferença.ESC-TAB
.ESC TAB
ouM-TAB
ambos funcionam para mim. Obrigado pela dica @McNisse.Respostas:
Parece que a parte importante desta pergunta já foi respondida nos comentários, mas para abordar a causa raiz, caso você esteja curioso, acho que ctrl-. não funciona em um terminal devido a algumas limitações dos emuladores de terminal. Em um terminal padrão, ctrl é definido para enviar o código ASCII da tecla pressionada menos 64 (é por isso que ctrl-J (74) envia nova linha (10) e ctrl-I (73) envia a guia (9), por exemplo ) Como o código ASCII do período é 46, subtrair 64 daria -18, o que é inválido porque é negativo e não há códigos ASCII negativos e, portanto, nada para o emacs receber e entender.
Quando você executa o emacs no modo de janela, o mecanismo do emulador de terminal é ignorado e, em vez disso, é usado o tratamento de teclado mais robusto do X11, que pode lidar com pressionamentos de tecla mais obscuros (em vez de reduzir cada pressionamento de tecla para um caractere ASCII, o programa recebe a tecla original mais todos os modificadores aplicáveis, separadamente). Portanto, é provavelmente impossível fazer o emacs baseado em tty manipular ctrl-. a menos que você faça modificações personalizadas no emulador de terminal (e provavelmente também no emacs).
fonte
'C-.'
muito bem com emacs no xterm, mas não com urxvt ou st. Alguma idéia de por que esse poderia ser o caso?Embora a resposta acima forneça uma boa explicação sobre por que não funciona, ela realmente não aborda como fazê-lo funcionar. Para que
iTerm2
você possa resolver isso, adicione um mapeamento de chave para a sequência de escape . Eu imagino que haveria algo semelhanteterminator
ougnome-terminal
fonte