2010-10-18 18 views

risposta

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

C'è anche

C-S-backspace # Ctrl-Shift-Backspace 

che invoca M-x kill-whole-line.

Se vuoi impostare una chiave vincolante globale diverso, devi mettere questo in ~/.emacs:

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

Se si desidera eliminare un certo numero di linee intere, si possibile far precedere il comando con un numero:

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 

a volte ho anche trovato 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

Questo funziona. C'è un modo per farlo usando un comando? Dovrò creare un binding chiave personalizzato per fare questo? –

+13

Non conoscevo 'C-x z', è davvero fantastico. E bella e precisa risposta btw. – slu

+2

C'è anche 'C-k C-k' che funziona come un' d $ S-j' in vim, ma questo può cancellare le linee in avanti abbastanza bene. –

7

Nel caso in cui non si vuole uccidere la linea (che avrebbe messo negli appunti del sistema operativo e uccidere anello), ma semplicemente eliminarlo:

(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

Il/modo più semplice più veloce per cancellare (uccidere) un linea completa, da qualsiasi punto sulla linea, senza selezionare nulla, è:

C-w ; kill-region 

e 'versatile in eliminando tutto ciò che è stato selezionato, o di una linea di default se nulla è selezionato.

Data la domanda, probabilmente siete anche interessati a replicare "Yank" di Vim, yy (anche se in Emacs gergo un "strattone" è confondibile Vim di "put", p). Questo è:

M-w ; kill-ring-save 

Bello e congruente, e piuttosto facile da ricordare. Anche leggermente simile a Vim's i_CTRL-W.

Una volta che hai messo qualcosa nel kill-ring con uno di quanto sopra, è probabile che vogliono "Yank" (pasta) è:

M-y ; yank-pop 

(Si noti che CS-backspace può non funziona nel terminale Emacs.)

Problemi correlati