Por exemplo. quando você executa coisas legais como Perl ou Ruby REPLs, você tem a conclusão de código / comando exposta via GNU Readline. O que eu quero fazer é definir alguma variável elisp / env ao entrar / sair desse programa para indicar que eu quero shell-mode
passar a tecla TAB para esses programas.
Note que C-q TAB
também não funciona, então acho que o Readline também o está ignorando porque TERM=dumb
, mas configurando-o como por exemplo. O vt100 também não funciona, por isso pode até estar olhando EMACS=t
.
shell-mode
Mark Aufflick
fonte
fonte
RET
e recebe a saída até reconhecer um prompt. A conclusão deve, portanto, ser resolvida de lado.Respostas:
M-x shell
trabalha linha por vez. Ele passa uma linha de entrada para o processo de shell externo quando você pressiona aRet
tecla.M-x term
passa cada pressionamento de tecla para o processo externo do shell, com as exceções deC-c
e eu achoEsc
. Quando você pressionaTab
, será visto e interpretado pelo processo de shell externo.fonte
Como @ user20119 apontou,
M-x term
pode ser uma boa opção: ele também suporta a mudança dinâmica para o "modo de linha", que é um pouco semelhante ao que você obtémM-x shell
.M-x eshell
também tenta fornecer uma mistura dos dois comportamentos.Também vou apontar que
C-q TAB
não funcionou porque tudo o que faz é inserir um caractere TAB no buffer (em vez de enviar um TAB para o subprocesso). Além disso, apenas enviar um caractere TAB para o processo subjacente não seria suficiente, porque o texto na linha atual ainda não foi enviado ao processo, portanto, você pode precisar de algo como:e, de fato, você provavelmente também precisará convencer
M-x shell
a usar uma configuração diferente para$TERM
.fonte