2011-02-03 9 views

Respuesta

36

C-x h + del borra el buffer de

Nota: Esto requieretransient-mark-mode a estar habilitado (que está por defecto).

+2

Este (o 'M-x erase-buffer') no agrega los contenidos del buffer al kill ring, pero' C-x h C-w' sí, y 'C-x h C-w' también funciona cuando el modo de marca transitoria no está habilitado. – user4669748

4

Subir al principio de la memoria intermedia, ir hasta el final (tanto establecer la marca), luego se corta:

M-< M-> C-w 
2

no hay ningún atajo, pero se pueden seleccionar uno ... Seguir this link a obtener una macro para borrar un buffer.

30

Seleccionar todo en Emacs es:

C-x h 

(técnicamente, eso es mark-whole-buffer) y kill-region (para matar a la región marcada, que ahora es toda la memoria intermedia) es:

C-w 

Si desea eliminar la región sin copiarlo en el anillo de corte, puede utilizar

M-x delete-region 

lugar. Si hace esto mucho, querrá vincular delete-region a una combinación de tecla/tecla.

+7

La diferencia entre esta solución y M-x erase-buffer es que esta solución copia el texto eliminado en el kill-ring. Eso puede ser muy molesto si uno quiere borrar un archivo grande, ya que la copia de una tonelada de texto en el anillo de sacrificio puede ser lenta. Este comportamiento es aún más molesto si uno es un usuario de browse-kill-ring.el –

77

Cómo sobre el uso:

M-x erase-buffer 

lo que podría obligar a lo que quieras.

+1

Tengo esto en mi .emacs: '(global-set-key (kbd" Cx ") 'erase-buffer)' –

+0

Para nuevos usuarios, cuando se invoca 'Mx erase buffer' por primera vez, recibirás un mensaje explicando que se ha desactivado, pero puedes habilitarlo. Si no está seguro de lo que hace exactamente este comando, le recomiendo que lo ejecute con la opción 'SPACE' la primera vez para ver qué sucede. – Nathan

3

Estas macros se basan en las respuestas dadas anteriormente. Para comenzar a usarlos, péguelos en sus .emacs y luego reinicie emacs o (mientras esté en el búfer de .emacs) escriba 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' borrará el búfer independientemente del estrechamiento. Eso puede o no ser más deseable. – jpkotta

+0

'erase-buffer' no agrega el contenido del búfer al kill ring sin embargo. – user4669748

5

Los viejos pueden gustar llamarlo HK en vez de claro-buffer-permanente, y asignarlo a la secuencia de teclas nostálgico de este modo:

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

Ese es el comando pre-Gnu TECO EMACS para borrar el buffer (ESC ESC wHole Kill).

clave
Cuestiones relacionadas