P.ej. cuando está ejecutando cosas buenas como Perl o Ruby REPLs, tiene la finalización de código / comando expuesta a través de GNU Readline. Lo que quiero hacer es establecer alguna variable elisp / env al ingresar / salir de dicho programa para indicar que quiero shell-modepasar la tecla TAB a esos programas.
Tenga en cuenta que C-q TABtampoco funciona, así que creo que Readline también lo ignora porque TERM=dumb, pero lo configura a, por ejemplo. vt100 tampoco funciona, por lo que incluso podría estar mirando EMACS=t.
shell-mode
Mark Aufflick
fuente
fuente

RET, luego recibe la salida hasta que reconoce una solicitud. Por lo tanto, la terminación debe resolverse de lado.Respuestas:
M-x shelltrabaja línea por línea. Pasa una línea de entrada al proceso de shell externo cuando presiona laRettecla.M-x termpasa cada pulsación de tecla al proceso de shell externo, con la excepción deC-cy creoEsc. Cuando presionaTab, será visto e interpretado por el proceso de shell externo.fuente
Como señaló @ user20119,
M-x termpodría ser una buena opción: también admite cambiar dinámicamente al "modo de línea", que es algo similar a lo que obtienesM-x shell.M-x eshellTambién trata de darle una mezcla de los dos comportamientos.También señalaré que
C-q TABno funcionó porque todo lo que hace es insertar un carácter TAB en el búfer (en lugar de enviar una TAB al subproceso). Además, simplemente enviar un TAB char al proceso subyacente no sería suficiente, porque el texto en la línea actual aún no se ha enviado al proceso, por lo que puede necesitar algo como:y, de hecho, probablemente también necesite convencer
M-x shellpara usar una configuración diferente para$TERM.fuente