2011-02-03 10 views

risposta

36

C-x h + del tasto cancella il buffer

Nota: Ciò richiede transient-mark-mode da abilitare (che è di default).

+2

Questo (o 'buffer di cancellazione M-x') non aggiunge il contenuto del buffer all'anello di uccisione, ma' C-x h C-w', e 'C-x h C-w' funziona anche quando la modalità di segno transitorio non è abilitata. – user4669748

4

Vai inizio del buffer, andare alla fine (sia impostato il segno), quindi tagliare:

M-< M-> C-w 
2

non ci sono scorciatoie, ma è possibile definire uno ... Segui this link a ottenere una macro per cancellare un buffer.

30

Seleziona tutti in Emacs è:

C-x h 

(tecnicamente, che è mark-tutta-buffer) e uccidere-regione (per uccidere la regione segnata, che ora è l'intero buffer) è:

C-w 

Se si desidera eliminare la regione senza copiarlo al kill-ring, è possibile utilizzare

M-x delete-region 

invece. Se lo fai molto, ti consigliamo di associare delete-region a una combinazione di chiave/chiave.

+7

La differenza tra questa soluzione e il buffer di cancellazione M-x è che questa soluzione copia il testo eliminato nell'anello di uccisione. Questo può essere molto fastidioso se si vuole cancellare un file di grandi dimensioni in quanto la copia di una tonnellata di testo sul kill ring può essere lenta. Questo comportamento è ancora più fastidioso se si è un utente di browse-kill-ring.el –

77

Come sull'utilizzo:

M-x erase-buffer 

cui si potrebbe associare a quello che vuoi.

+1

Ho questo nel mio .emacs: '(global-set-key (kbd" Cx ") 'erase-buffer' –

+0

Per nuovi utenti, quando 'Mx erase buffer' viene richiamato per la prima volta si riceverà un prompt che spiega che è stato disabilitato ma è possibile abilitarlo. Se non sei sicuro riguardo esattamente a cosa fa questo comando, ti consiglio di eseguirlo con l'opzione 'SPACE' la prima volta per vedere cosa succede. – Nathan

3

Queste macro si basano sulle risposte fornite sopra. Per iniziare a usarli, incollali nel tuo .emacs, quindi riavvia emacs o (mentre nel buffer .emacs) digita M-x eval-buffer.

(defun clear-buffer() 
    "clear whole buffer add contents to the kill ring" 
    (interactive) 
    (kill-region (point-min) (point-max)) 
) 

(defun clear-buffer-permenantly() 
    "clear whole buffer, contents is not added to the kill ring" 
    (interactive) 
    (delete-region (point-min) (point-max)) 
) 
+1

'erase-buffer' cancellerà il buffer indipendentemente dal restringimento. Questo può o non può essere più desiderabile. – jpkotta

+0

'erase-buffer' non aggiunge tuttavia il contenuto del buffer all'anello di uccisione. – user4669748

5

vecchi potrebbe piacere chiamarlo hk piuttosto che chiaro-buffer-permanente, e assegnarlo alla sequenza di tasti nostalgico in questo modo:

(define-key esc-map "\^[hk" 'hk) 

Questo è il comando pre-Gnu TECO EMACS per cancellare il buffer (ESC ESC wHole kill).

Problemi correlati