Как мне продублировать целую строку в Emacs? - PullRequest
144 голосов
/ 18 сентября 2008

Я видел этот же вопрос для VIM , и я хотел узнать, как это сделать для Emacs. В ReSharper я использую CTRL-D для этого действия. Какое наименьшее количество команд для выполнения этого в Emacs?

Ответы [ 33 ]

0 голосов
/ 07 декабря 2018

Как упоминалось в других ответах, связывание нажатий клавиш с кодом lisp - лучшая идея, чем связывание их с другими нажатиями клавиш. С ответом @ mw код дублирует строку и перемещает метку в конец новой строки. Эта модификация сохраняет позицию метки в том же столбце на новой строке:

fun duplicate-line ()
  (interactive)
  (let ((col (current-column)))
    (move-beginning-of-line 1)
    (kill-line)
    (yank)
    (newline)
    (yank)
    (move-to-column col)))
0 голосов
/ 02 апреля 2019

M-c, Shift+Insert x2 (или каков ваш ярлык вставки) сделает это.

0 голосов
/ 18 сентября 2008

ну обычно я использовал:

Ctl-Space (set the mark)
move to end of line
Ctl-K kill line
Ctl-Y * 2 (yank the line back)

может быть, гораздо лучший способ: P

...