В настоящее время у меня есть область текста. Я хочу убить/yank (или форматировать любым другим способом) весь буфер, кроме выбранного региона. Есть ли способ, которым я могу сделать инвертированный выбор в emacs и выполнить то же самое?
Любая помощь будет оценена по достоинству. Благодарю.Как сделать инвертированный выбор в emacs?
1
A
ответ
1
- С-ш
kill-region
текст в середине. - C-x h
mark-whole-buffer
остальная часть текста. - сделайте пожалуйста.
- C-y
yank
средний текст.
1
(defun my-copy-inverted-region-as-kill (beginning end)
"Copy to the kill ring everything except the marked region."
(interactive "r")
(let ((srcbuf (current-buffer))
(offset (point-min)))
(with-temp-buffer
(insert-buffer-substring srcbuf)
(delete-region (- beginning offset) (- end offset))
(copy-region-as-kill (point-min) (point-max)))))
Но когда остальная часть текста погибает, например, тогда бы не 'убить ring' быть затронуты? Тогда шаг 4 может не дать желаемого результата. –
Тогда просто используйте 'M-y'. Это кольцо, которое может поместиться гораздо больше, чем одно убийство. –