Визуальный выбор Vim удалить / вставить в Emacs - PullRequest
7 голосов
/ 02 октября 2011

Я пытался найти замену визуального режима vim, который чрезвычайно полезен, скажем, я хотел бы удалить первые два символа в следующих двух строках

11 line1
22 line2

в vim.Визуальный режим и выберите регион, который я хочу удалить, и удалите его.Кроме того, я также могу добавить в столбец после

11
22

, например

11 added line1
22 added line2

с Shift + I после выбора столбца в визуальном режиме.Есть ли способ сделать то же самое в Emacs?

Ответы [ 4 ]

8 голосов
/ 02 октября 2011

Похоже на прямоугольник Emacs. Вы должны визуализировать прямоугольник в голове между точкой и отметкой.

C-x r k чтобы убить прямоугольник C-x r t чтобы заполнить прямоугольник текстом. Вам нужен прямоугольный столбец шириной 0, чтобы выполнить ваш второй запрос.

7 голосов
/ 04 октября 2011

cua-mode обеспечивает именно такую ​​функцию. Вы можете включить его в вашем .emacs:

(setq cua-enable-cua-keys nil)
(cua-mode)

Первая строка необходима для предотвращения cua-mode от замены набора стандартных сочетаний клавиш на вещи в стиле Windows (C-c для копирования, C-x для вырезания и т. Д.).

Как только вы войдете в cua-mode, C-enter включит визуальные прямоугольники, которые затем можно развернуть с помощью клавиш перемещения (стрелки, C-n, C-f и т. Д.), Чтобы покрыть текст, которым вы хотите манипулировать , Пока это происходит, нажатие enter перемещает курсор по краям прямоугольника, и все, что вы вводите, вставляется за пределы прямоугольника с той же стороны, что и курсор. Вставка соответствует размеру прямоугольника, поэтому, если вы хотите добавить один и тот же текст в начало (или в середину, или в конец) группы строк одновременно, это самый быстрый способ сделать это.

Если вы отключили привязку клавиш cua, то C-w уничтожит содержимое прямоугольника.

Прискорбно, что прямоугольники в режиме cua не находятся в своем собственном режиме, так как многие люди, которые не хотят привязок режима cua, не понимают, что режим также имеет эту очень классную функцию !

3 голосов
/ 02 октября 2011

Звучит так, будто Vimpulse может быть тем, что вам нужно:

http://www.emacswiki.org/emacs/vimpulse.el

Vimpulse эмулирует самые популярные функции Vim, такие как визуальный режим и текстовые объекты.Vimpulse - это набор модификаций Viper, стандартной библиотеки, которая эмулирует vi.Vimpulse не второстепенный режим;как только он загрузится, Viper начнет работать в стиле Vim.

3 голосов
/ 02 октября 2011

Я думаю, что функция прямоугольника Emacs будет решением

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...