Comment puis-je supprimer la ligne actuelle dans Emacs?

Qu’est-ce que l’équivalent d’emacs de vi’s dd ? Je veux supprimer la ligne actuelle. Essayé CTRL + k mais il ne supprime que de la position actuelle.

Ca # Go to beginning of line Ck # Kill line from current point 

Il y a aussi

 CS-backspace # Ctrl-Shift-Backspace 

qui invoque Mx kill-whole-line .

Si vous souhaitez définir une liaison de clé globale différente, placez-la dans ~ / .emacs:

 (global-set-key "\C-cd" 'kill-whole-line) # Sets `Cc d` to `Mx kill-whole-line` 

Si vous voulez supprimer un certain nombre de lignes entières, vous pouvez préfixer la commande avec un nombre:

 Cu 5 CS-backspace # deletes 5 whole lines M-5 CS-backspace # deletes 5 whole lines Cu CS-backspace # delete 4 whole lines. Cu without a number defaults to 4 Cu -5 CS-backspace # deletes previous 5 whole lines M--5 CS-backspace # deletes previous 5 whole lines 

Parfois, je trouve aussi Cx z utile:

 CS-backspace # delete 1 whole line Cx z # repeat last command z # repeat last command again. # Press z as many times as you wish. # Any other key acts normally, and ends the repeat command. 

Dans le cas où vous ne voulez pas tuer la ligne (ce qui la placerait dans le presse-papiers et le kill ring du système d’exploitation) mais simplement la supprimer:

 (defun delete-current-line () "Delete (not kill) the current line." (interactive) (save-excursion (delete-region (progn (forward-visible-line 0) (point)) (progn (forward-visible-line 1) (point))))) 

Le moyen le plus rapide / le plus simple de supprimer (tuer) une ligne entière, à partir de n’importe quel sharepoint la ligne, sans rien sélectionner, est:

 Cw ; kill-region 

Il est polyvalent pour supprimer tout ce qui est sélectionné, ou une ligne par défaut si rien n’est sélectionné.

Compte tenu de la question, vous êtes probablement également intéressé par la réplication du “yank”, yy Vim (bien que dans le langage d’Emacs, un “yank” soit confusément “put”, p ). C’est:

 Mw ; kill-ring-save 

Nice et congruent, et assez facile à retenir. Même légèrement similaire à i_CTRL-W de Vim.

Une fois que vous avez mis quelque chose dans le kill ring avec l’un des éléments ci-dessus, vous voudrez probablement le “coller”:

 My ; yank-pop 

(Notez que CS-backspace peut ne pas fonctionner dans le terminal Emacs.)