Si no te importa que te pregunte, ¿qué estás tratando de hacer?
Luke Shimkus
@ King Estoy creando un proceso asincrónico y quiero enviar el contenido del búfer como entrada estándar. Pensé que podía usar process-send-stringy me quedé atascado.
Maciej Goszczycki
Respuestas:
25
Muchas cosas en Emacs operan en el búfer actual. Debe cambiar el búfer actual y restaurarlo cuando haya terminado. Úselo with-current-bufferpara casos simples donde solo necesita hacer algo en otro búfer, y save-current-bufferpara casos más complejos donde necesita navegar entre varios búferes.
Si también necesita guardar el punto, llame save-excursiontambién. Tenga en cuenta que save-excursionrestaura el punto solo en el búfer actual, por lo que si necesita cambiar a otro búfer y moverse por allí, llame al save-excursioninterior save-current-buffero with-current-buffer.
process-send-string
y me quedé atascado.Respuestas:
Muchas cosas en Emacs operan en el búfer actual. Debe cambiar el búfer actual y restaurarlo cuando haya terminado. Úselo
with-current-buffer
para casos simples donde solo necesita hacer algo en otro búfer, ysave-current-buffer
para casos más complejos donde necesita navegar entre varios búferes.Si desea el contenido de texto del búfer sin propiedades, llame
buffer-substring-no-properties
.buffer-string
devuelve solo la parte estrecha del búfer. Si necesita todo el contenido, amplíelo después de guardar el estrechamiento.Si también necesita guardar el punto, llame
save-excursion
también. Tenga en cuenta quesave-excursion
restaura el punto solo en el búfer actual, por lo que si necesita cambiar a otro búfer y moverse por allí, llame alsave-excursion
interiorsave-current-buffer
owith-current-buffer
.fuente