Esta é, sem dúvida, uma questão superficial.
Embora ansi-term
comece a se comportar corretamente quando o abro pela primeira vez, parece degradar para um modo 'editável' após alguns comandos; por exemplo, quando eu faço C-a
(início da linha) seguido por C-k
(linha da morte), apaga todo o prompt.
Para minha sanidade estética, há alguma maneira de tornar os prompts e resultados anteriores não editáveis (para shell
)? (Atualizado para excluir ansi-term, dadas as diferenças significativas.)
Estou usando o zsh no Emacs 24.4; O SO é LXDE (Ubuntu 14.04) via Virtual Box.
(Idealmente, eu ainda seria capaz de mover meu cursor ...)
C-c C-j
. Tente descobrir esse padrão ou alterne para o modo char comC-c C-k
.shell-mode
/term-mode
respectivamente não derivamcomint-mode
, você está fazendo duas perguntas muito diferentes ao mesmo tempo aqui. Mente em dividir isso em duas perguntas separadas?Respostas:
os modos derivados de comint (como
shell
,ielm
...) suportam funções de filtro, o seguinte snippet torna a saída e o prompt somente leitura:Quanto ao
ansi-term
(que não é derivado do comint ), ele possui dois modos de operação,char mode
que permanecem os mais verdadeiros para as ligações do shell e o software em execução, tanto quanto possível, eline mode
que permite editar o buffer como desejar. Geralmente você deve permanecer emchar mode
(vinculado aC-c C-k
) e ocasionalmente alternar paraline mode
(vinculado aC-c C-j
) para editar a saída do comando.fonte
Ao misturar
term
comshell-mode
, a variávelcomint-use-prompt-regexp
parece ser ajustada ocasionalmente. Isso causa um comportamento semelhante ao que você descreveu: no modo shell, C-a irá para o início da linha, C-kmatará toda a linha, incluindo prompt.Uma solução simples é para repor
comint-use-prompt-regexp
com C-: (setq comint-use-prompt-regexp nil), forçando modo shell para usar as propriedades de texto que chaves do movimento do cursor estão conscientes.Há uma descrição de como isso funciona no manual do GNU Emacs aqui: https://www.gnu.org/software/emacs/manual/html_node/emacs/Shell-Prompts.html
fonte
Tente personalizar a variável
comint-prompt-read-only
parat
.Isso afetará
shell-mode
e outros derivadoscomint-mode
, mas nãoterm-mode
.fonte