2010-10-18 5 views

Répondre

178
C-a # Go to beginning of line 
C-k # Kill line from current point 

Il y a aussi

C-S-backspace # Ctrl-Shift-Backspace 

qui invoque M-x kill-whole-line.

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

(global-set-key "\C-cd" 'kill-whole-line)  # Sets `C-c d` to `M-x kill-whole-line` 

Si vous souhaitez supprimer un certain nombre de lignes entières, vous peut préfixer la commande avec un numéro:

C-u 5 C-S-backspace # deletes 5 whole lines 
M-5 C-S-backspace  # deletes 5 whole lines 

C-u C-S-backspace  # delete 4 whole lines. C-u without a number defaults to 4 

C-u -5 C-S-backspace # deletes previous 5 whole lines 
M--5 C-S-backspace  # deletes previous 5 whole lines 

Parfois, je trouve aussi C-x z utile:

C-S-backspace   # delete 1 whole line 
C-x 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. 
+0

Cela fonctionne. Y at-il un moyen de le faire en utilisant une commande? Devrai-je créer une liaison de clé personnalisée pour cela? –

+13

Je ne connaissais pas 'C-x z', c'est vraiment cool. Et réponse belle et précise btw. – slu

+2

Il y a aussi 'C-k C-k' qui fonctionne un peu comme un' d $ S-j' dans vim, mais cela peut supprimer des lignes assez bien. –

7

Si vous ne voulez pas tuer la ligne (ce qui le mettrait dans le presse-papiers du système d'exploitation et de tuer anneau) mais simplement le 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))))) 
0

Le moyen le plus rapide/plus simple pour supprimer (kill) un ligne complète, de tout point sur la ligne, sans rien sélectionner, est:

C-w ; kill-region 

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

Compte tenu de la question, vous êtes probablement aussi intéressé à reproduire "Yank" Vim, yy (bien que dans le langage Emacs un "coup sec" est de prêter à confusion Vim "put", p). C'est:

M-w ; kill-ring-save 

Belle 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 ring de tuer avec soit de ce qui précède, vous aurez envie probablement « Yank » (pâte) il:

M-y ; yank-pop 

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

Questions connexes