¿Cómo cierro todo excepto el búfer actual en Emacs? ¿Similar a la función "Cerrar otras pestañas" en los navegadores web modernos?Cerrar todos los buffers además del actual en Emacs
Respuesta
Desde EmacsWiki: Killing Buffers:
(defun kill-other-buffers()
"Kill all other buffers."
(interactive)
(mapc 'kill-buffer
(delq (current-buffer)
(remove-if-not 'buffer-file-name (buffer-list)))))
Edición: actualizado con los comentarios de Gilles
No hay una manera directa en emacs para hacer esto.
Puede escribir una función para hacer esto. A continuación se cerrarán todas las memorias intermedias:
(defun close-all-buffers() (interactive) (mapc 'kill-buffer (buffer-list)))
Ah, pero esto cerrará * todos * los amortiguadores. –
Pero eso es lo que * I * quiero ... – Droogans
Para un enfoque más manual, puede listar todos los tampones con Cx Cb, marque los almacenamientos intermedios en la lista para su eliminación con d, y luego use x para eliminarlos.
También recomiendo reemplazar list-buffers con el ibuffer más avanzado: (global-set-key (kbd "C-x C-b") 'ibuffer)
. Lo anterior funcionará con ibuffer, pero también se puede hacer esto:
m (marcar el buffer que desea mantener)
t (marcas de palanca)
D (matar a todos los tampones marcados)
también utilizo este fragmento de la Wiki Emacs, lo que racionalizar aún más este enfoque Manual:
;; Ensure ibuffer opens with point at the current buffer's entry.
(defadvice ibuffer
(around ibuffer-point-to-most-recent)()
"Open ibuffer with cursor pointed to most recent buffer name."
(let ((recent-buffer-name (buffer-name)))
ad-do-it
(ibuffer-jump-to-buffer recent-buffer-name)))
(ad-activate 'ibuffer)
¡gracias! es muy útil – Cynede
(defun only-current-buffer()
(interactive)
(let ((tobe-killed (cdr (buffer-list (current-buffer)))))
(while tobe-killed
(kill-buffer (car tobe-killed))
(setq tobe-killed (cdr tobe-killed)))))
Funciona como esperaba.
Y después de leer @ respuesta de Starkey, creo que esto será mejor:
(defun only-current-buffer()
(interactive)
(mapc 'kill-buffer (cdr (buffer-list (current-buffer)))))
(buffer-list (current-buffer)) devolverá una lista que contiene todas las memorias intermedias existentes, con el búfer a la cabeza de la lista.
Esta es mi primera respuesta en StackOverflow. Esperamos que ayude :)
Y esto mis amigos es cómo surgen las soluciones elegantes de personas que comparten sus ideas –
hay una construida en el mando m - xkill-some-buffers
(estoy usando 24/03/50) En mi GUI nextstep (no tratado en un terminal, pero seguro que es similar) a continuación, puede aprueba qué amortiguadores matar.
Esto es especialmente útil cuando tienes más de 1000 búferes cargados. – ocodo
Encontré esta solución para ser la más simple. Esto elimina todos los búferes excepto el actual.Usted tiene que añadir este código a su archivo .emacs
(defun kill-other-buffers()
"Kill all other buffers."
(interactive)
(mapc 'kill-buffer (delq (current-buffer) (buffer-list))))
Por supuesto, a continuación, utilizarlo con Mxkill-other-buffers
RETo pegar el siguiente código en el archivo .emacs
demasiado y luego sólo tiene que pulsar Cx Cb
(global-set-key (kbd "C-x C-b") 'kill-other-buffers)
- 1. vim - ¿cómo cerrar todos los buffers en la pestaña actual?
- 2. Emacs líneas truncadas en todos los buffers
- 3. Aplicar una función a todos los buffers en emacs
- 4. ¿Hay alguna forma de cerrar automáticamente los buffers de compleción de nombre de archivo en Emacs?
- 5. Cómo hacer commit de git en los buffers de Emacs
- 6. ¿Cómo puedo "M-x replace-string" en todos los buffers en emacs?
- 7. Emacs busca y abre múltiples archivos y busca en todos los buffers
- 8. pareja windows/buffers juntos en emacs?
- 9. Ejecutar una macro en todos los buffers en vim
- 10. Emacs: ¿reabre buffers desde la última sesión en el inicio?
- 11. ¿Qué tan viable es emacs LISP además de editar emacs?
- 12. emacs follow-mode en todos los marcos
- 13. ¿Cómo enumero todos los yanks en emacs?
- 14. vim: buscar sustituir más de todos los buffers de escritura
- 15. Emacs: sistema de codificación del búfer actual
- 16. Xcode 4: ¿Cerrar todos los documentos?
- 17. ¿Cómo habilitar el modo flyspell en emacs para todos los archivos y todos los modos principales?
- 18. Además del entero en shell
- 19. Fijar buffers de Emacs en ventanas (para cscope)
- 20. JQuery: ¿Cómo seleccionar todos los elementos con la misma clase además del que hizo clic?
- 21. Recargar .emacs para todos los búferes activos
- 22. Emacs buffer-menu: ¿cómo mostrar solo el archivo + dired buffers?
- 23. Deshabilitar los clics del mouse en Emacs
- 24. Atajo para cerrar todos los archivos abiertos en IntelliJ
- 25. Detener todos los servicios iniciados en la aplicación Cerrar/Salir
- 26. Cerrar sesión en todos los usuarios con Devise
- 27. Cerrar todos los archivos abiertos en un proceso
- 28. Cerrar todos los hilos con una interrupción de teclado
- 29. ¿Cuál es la secuencia de teclas para cerrar el búfer actual en Emacs?
- 30. CoffeeScript: compila todos los archivos .coffee en el directorio actual y en todos los subdirectorios
¿Por qué no se mata al buffer directo? Me gusta eliminar que también – swdev
dired buffers no establecen 'buffer-file-name' y por lo tanto la llamada a' remove-if-not' en el ejemplo anterior conservará los búferes dired (así como también el búfer de scratch, búferes de términos, ayudar a los almacenamientos intermedios, etc., a cualquier cosa que no visite un archivo). No puedo pensar en una prueba fácil que cerraría tanto los búferes de archivos como los búferes de dired, básicamente necesitaría una segunda invocación completa de mapc con una prueba diferente para buffers dired. – robru
una simple modificación de matar tampones también dired '(defun Kill-otras-buffers() "Matar a todos los otros tampones." (interactiva) (MAPC 'kill-buffer de (delq (current-buffer) (remove- if-not '(lambda (x) (o (buffer-file-name x) (eq' dired-mode (buffer-local-value 'principal-modo x)))) (buffer-list))))) ' – frinkr