Você pode usar kill-whole-line
para matar o ponto de linha inteiro. A posição do ponto não importa. Este comando está vinculado C-S-DELpor padrão.
Você também pode instruir kill-line
(vinculado a C-k) a eliminar a linha inteira definindo a variável kill-whole-line
como um nil
valor não :
(setq kill-whole-line t)
Observe que o ponto deve estar no início da linha para que isso funcione.
Depois, existem essas duas jóias (via 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)))))
Com estes no lugar, você pode matar ou copiar o ponto de linha está ligado com um único toque de tecla :
- C-w mata a linha atual
- M-w copia a linha atual
Observe que se houver uma região ativa kill-region
e kill-ring-save
continuar fazendo o que normalmente fazem: Mate ou copie-a.
Portando slick-cut
e slick-copy
para o novo sistema de aconselhamento
O Emacs 24.4 introduz um novo sistema de aconselhamento . Enquanto defadvice
ainda funciona , há uma chance de que ele seja descontinuado em favor do novo sistema em versões futuras do Emacs. Para se preparar para isso, convém usar versões atualizadas slick-cut
e 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
. :)