Вы можете использовать, kill-whole-line
чтобы убить всю точку линии. Положение точки не имеет значения. Эта команда связана с C-S-DELпо умолчанию.
Вы также можете указать kill-line
(привязать к C-k) убить всю строку, установив переменную kill-whole-line
в ненулевое nil
значение:
(setq kill-whole-line t)
Обратите внимание, что точка должна быть в начале строки, чтобы это работало.
Тогда есть эти два драгоценных камня (через emacs-fu ):
(defadvice kill-region (before slick-cut activate compile)
"When called interactively with no active region, kill a single line instead."
(interactive
(if mark-active
(list (region-beginning) (region-end))
(list (line-beginning-position) (line-beginning-position 2)))))
(defadvice kill-ring-save (before slick-copy activate compile)
"When called interactively with no active region, copy a single line instead."
(interactive
(if mark-active
(list (region-beginning) (region-end))
(message "Copied line")
(list (line-beginning-position) (line-beginning-position 2)))))
С их помощью вы можете убить или скопировать точку линии одним нажатием клавиши :
- C-w убивает текущую строку
- M-w копирует текущую строку
Обратите внимание, что если есть активный регион, kill-region
и он kill-ring-save
будет продолжать делать то, что обычно делает: убейте или скопируйте его.
Портирование slick-cut
и slick-copy
новая система консультаций
Emacs 24.4 представляет новую систему рекомендаций . Хотя defadvice
все еще работает , есть вероятность, что в будущих версиях Emacs это может быть признано устаревшим в пользу новой системы. Чтобы подготовиться к этому, вы можете использовать обновленные версии slick-cut
и slick-copy
:
(defun slick-cut (beg end)
(interactive
(if mark-active
(list (region-beginning) (region-end))
(list (line-beginning-position) (line-beginning-position 2)))))
(advice-add 'kill-region :before #'slick-cut)
(defun slick-copy (beg end)
(interactive
(if mark-active
(list (region-beginning) (region-end))
(message "Copied line")
(list (line-beginning-position) (line-beginning-position 2)))))
(advice-add 'kill-ring-save :before #'slick-copy)
kill-whole-line
. :)