Если вы не возражаете, я спрашиваю, что вы пытаетесь сделать?
Люк Шимкус
@King Я создаю асинхронный процесс и хочу отправить содержимое буфера в качестве стандартного ввода. Я подумал, что могу использовать, process-send-stringи я застрял.
Мацей Гожчицкий,
Ответы:
25
Многое в Emacs работает с текущим буфером. Вам нужно изменить текущий буфер и восстановить его, когда вы закончите. Используйте with-current-bufferдля простых случаев, когда вам просто нужно что-то сделать в другом буфере, и save-current-bufferдля более сложных случаев, когда вам нужно перемещаться между несколькими буферами.
Если вам также нужно сохранить точку, позвоните save-excursionтакже. Обратите внимание, что save-excursionвосстанавливает точку только в текущем буфере, поэтому, если вам нужно переключиться на другой буфер и переместиться туда, позвоните save-excursionвнутрь save-current-bufferили with-current-buffer.
process-send-string
и я застрял.Ответы:
Многое в Emacs работает с текущим буфером. Вам нужно изменить текущий буфер и восстановить его, когда вы закончите. Используйте
with-current-buffer
для простых случаев, когда вам просто нужно что-то сделать в другом буфере, иsave-current-buffer
для более сложных случаев, когда вам нужно перемещаться между несколькими буферами.Если вы хотите текстовое содержимое буфера без свойств, позвоните
buffer-substring-no-properties
.buffer-string
возвращает только суженную часть буфера. Если вам нужен весь контент, расширьте его после сохранения сужения.Если вам также нужно сохранить точку, позвоните
save-excursion
также. Обратите внимание, чтоsave-excursion
восстанавливает точку только в текущем буфере, поэтому, если вам нужно переключиться на другой буфер и переместиться туда, позвонитеsave-excursion
внутрьsave-current-buffer
илиwith-current-buffer
.источник