Se você não se importa que eu pergunte, o que você está tentando fazer?
Lucas
@King Estou criando um processo assíncrono e quero enviar o conteúdo do buffer como entrada padrão. Achei que podia usar process-send-stringe fiquei preso.
Maciej Goszczycki
Respostas:
25
Muitas coisas no Emacs operam no buffer atual. Você precisa alterar o buffer atual e restaurá-lo quando terminar. Use with-current-bufferpara casos simples em que você só precisa fazer algo em outro buffer e save-current-bufferpara casos mais complexos em que você precisa navegar entre vários buffers.
Se você também precisar salvar o ponto, ligue save-excursiontambém. Observe que save-excursionrestaura o ponto apenas no buffer atual; portanto, se você precisar alternar para outro buffer e se mover por aí, ligue para save-excursiondentro save-current-bufferou with-current-buffer.
process-send-string
e fiquei preso.Respostas:
Muitas coisas no Emacs operam no buffer atual. Você precisa alterar o buffer atual e restaurá-lo quando terminar. Use
with-current-buffer
para casos simples em que você só precisa fazer algo em outro buffer esave-current-buffer
para casos mais complexos em que você precisa navegar entre vários buffers.Se você deseja que o conteúdo do texto do buffer sem propriedades, chame
buffer-substring-no-properties
.buffer-string
retorna apenas a parte reduzida do buffer. Se você precisar de todo o conteúdo, amplie-o após salvar o estreitamento.Se você também precisar salvar o ponto, ligue
save-excursion
também. Observe quesave-excursion
restaura o ponto apenas no buffer atual; portanto, se você precisar alternar para outro buffer e se mover por aí, ligue parasave-excursion
dentrosave-current-buffer
ouwith-current-buffer
.fonte