Я часто извлекаю прямоугольник текста из буфера, но потом обнаруживаю, что хочу восстановить текст, как если бы он не был прямоугольником. Есть ли способ добавить текущий уничтоженный прямоугольник в список уничтожений?
В руководстве по GNU Emacs сказано следующее:
«Убивать» прямоугольник - это не убивать в обычном смысле; прямоугольник хранится не в списке уничтожений, а в специальном месте, в котором записывается только последний уничтоженный прямоугольник. Это потому, что рывок прямоугольника настолько отличается от рывков линейного текста, что приходится использовать разные команды янки. Янки поппинг не определен для прямоугольников.
Тем не менее, я могу в основном получить поведение, которое я хочу с
M->
перейти в конец буфераC-x r y
дергать прямоугольникC-x C-x
обменный пункт и отметка (выбирает вновь выдернутые линии)C-w
убить выбор на кольцо убийства
Есть ли лучший способ превратить убитый прямоугольник в запись уничтоженного кольца?
Ответы:
Если я понял ваш вопрос, вы смотрите на что-то вроде этого:
Предоставлено ErgoEmacs
источник
Не уверен, что особенного в наличии прямоугольника в kill-ring, но если вы обновитесь до Emacs-24.4, тогда вы можете сделать следующее:
C-x SPC .... M-w
выбрать прямоугольник и поместить его в kill-ring. После этогоC-y
будет вырвать этот прямоугольник (то же самое, чтоC-x r y
делает, хотя).источник
Сначала я был раздражен отсутствием встроенного решения этой проблемы, затем понял, что существует встроенное решение: kill-rectangle.
Скажем, у вас есть текст, как
Но вам нужна часть текста «B» где-то еще, например, между этими строками C и D:
Если вы скопируете B rectangle (
C-x r M-w
), а затем поместите точку на первую букву «D», а затем восстановите прямоугольник назад (C-x r y
), вы получитегде вы действительно хотели
Может показаться естественным скопировать прямоугольник «В» и вернуть их в новое место, но лучшим решением будет просто скопировать строки «А» и «В» и полностью восстановить их между «С» и « D 'линии.
Затем отметьте прямоугольник, содержащий «А», и используйте
kill-rectangle
(C-x r k
), чтобы закончить с желаемым результатом.источник