В настоящее время у меня выделена область текста. Я хочу убить/выдернуть (или отформатировать любым другим способом) весь буфер, кроме выделенной области. Есть ли способ инвертировать выделение в emacs и добиться того же?
Буду признателен за любую помощь. Спасибо.
Как сделать инвертированный выбор в emacs?
Ответы (2)
- C-w
kill-region
текст в середине. - C-x h
mark-whole-buffer
остальной текст. - делай свое дело.
- C-y
yank
средний текст.
person
abo-abo
schedule
11.03.2015
Но как только остальная часть текста будет уничтожена, например, не повлияет ли это на
kill ring
? Тогда шаг 4 может не дать желаемого результата.
- person Avijit Gupta; 11.03.2015
Тогда просто используйте
M-y
. Это кольцо может вместить гораздо больше, чем одно убийство.
- person abo-abo; 11.03.2015
Несмежные регионы не могут существовать. Однако это ставит противоположную команду на C-c DEL.
(global-set-key "\^C\^?" ; help edit mail files, etc.
(defun erase-buffer-except-region (beg end)
"Erase the buffer except for the region."
(interactive "r")
(when (< end beg)
(cl-rotatef beg end))
(delete-region end (point-max))
(delete-region (point-min) beg)))
person
devon
schedule
12.11.2020
Возможно, библиотека выделения должна позволить вам либо удалить, либо сохранить выделенные области, которые могут быть несмежными.
- person devon; 14.11.2020