Когда я использую VIM или большинство немодальных редакторов (Eclipse, NetBeans и т.д.), я часто делаю следующее. Если у меня будут подобные текстовые блоки, и я должен изменить их всех, то я изменю один, скопирую его (или рывок неудаления использования), выбрать следующий блок, я нуждаюсь и вставляю измененную версию по нему. Если я делаю то же самое в emacs (выберите регион и вставку с C-y), это не заменяет регион, это просто вставляет в позиции курсора. Что путь состоит в том, чтобы сделать это в emacs?
Добавьте это в .emacs
:
(delete-selection-mode 1)
Все, что записывается в буфер, пока область активна, перезаписывает его, включая вставку, а также просто ввод чего-либо или нажатие backspace
Если включить CUA-режим, эта вставка в выбранный регион становится нормальным поведением.
Установка delete-selection-mode
, как предложил Майкл, кажется наиболее естественным способом сделать это.
Однако это не то, что я делаю :) Вместо этого я помещаю полезные вещи в «регистр» - например, регистр «a» - с помощью C-x r x a
. Затем я убиваю другую копию и копирую регистр в то же место с помощью C-x r g a
.
Это удобно, потому что уничтожение не влияет на регистры, поэтому C-x r g a
всегда вставляет хорошие данные.
По умолчанию способ сделать что-то вроде этого - не совсем элегантный следующий:
C-w
). C-y
, M-y
). Это заменяет только что удаленное содержимое точно таким же текстом, который вы только что удалили ( Cy
), а затем повторно заменяет его следующим последним сохраненным буфером в кольце буферов ( My
]). Это стало бы настоящей проблемой, если бы вы захотели сделать это 10 раз с одним и тем же текстом, так как желаемая замена будет отодвигаться дальше по кругу уничтожений каждый раз, когда вы удаляете регион, поэтому вам придется звоните Mw
все большее количество раз каждый раз, когда вам нужно его дергать.
Я также только что обнаружил M-x delete-region
, благодаря Emacs: как удалить текст без уничтожающего кольца? . Как следует из вопроса, это удаляет оскорбительный текст, не помещая его в список уничтожения, что позволяет избежать проблемы с перемещением вашего замещающего текста дальше вниз по стеку. И, как упоминается в соответствующем ответе, вы можете привязать это к сочетанию клавиш по вашему выбору.
Я делаю это следующим образом:
Это немного другой способ думать об этом. Вставьте то, что вам нужно, затем избавьтесь от того, что вам не нужно, а не заменяйте то, что вам не нужно, тем, что нужно.