Curso emacs 28. Procesos, crux, bf-modes y cerrar a lo bruto

Con emacs podemos ver los procesos abiertos, por ejemplo, como ya digimos, en un buffer con eshell lanzamos htop. Para ver los procesos abiertos en la sesión:

M-x list-processes RET

Imaginamos que htop no se puede cerrar, que no es el caso. El equivalente al comando *killall htop* de linux, en los procesos abiertos en emacs es:

M-x eval-expression RET (delete-process “htop”) RET

Podemos lanzar nuevamente:

M-x list-processes RET

Y comprobar que ya no existe el proceso.

En dired, una extensión que nos ha permitido jubilar varias funciones en nuestro archivo de configuración .emacs es *crux* (https://github.com/bbatsov/crux) que se define como una colección de extensiones ridiculamente útiles para emacs. Una vez instalada con el correspondiente “require” en el archivo de configuración .emacs:

(require ‘crux)

Y dado que la combinación de teclas para sus comandos que indican son sugeridas:

Hemos optado por poner las mismas que tenian las funciones que ha sustituido crux, porque tampoco es que las usemos todas. Concretamente las que usamos son:

crux-open-with  (Abre el archivo visitado con un programa externo.)
crux-recentf-find-file (Abrir archivo recientemente visitado.)
crux-delete-buffer-and-file (Borre el archivo actual y el buffer.)
crux-rename-file-and-buffer (Cambia nombre búfer actual y archivo visitante si lo hay.)
crux-visit-term-buffer (Abre un emulador de terminal (ansi-term.)
crux-kill-other-buffers (Mata a todos los buffers abiertos, excepto el presente.)

Y ya que estamos con dired, un detallito que nos gusta mucho es clicar una letra y con ella poder abrir el contenido de un directorio en una ventana y que se cierre clicando otra (o la misma) letra y esto lo facilita la extensión:

M-x package-install RET bf-mode RET

Colocamos en el archivo de configuración .emacs las lineas:

;; Pulsando “b” en un directorio con dired muestra/esconde el contenido.
(require ‘bf-mode)
;; inicia bf-mode inmediatamente después de comenzar dired
(setq bf-mode-enable-at-starting-dired t)

Hemos hablado de matar procesos con emacs, pero alguno no hemos podido matarlo desde dentro ni a cañonazos.

Este “Lisp nesting exceeds `max-lisp-eval-depth`” indica que en alguna parte del código lisp de algo que estamos haciendo se está ocupando demasiado espacio en la pila que por defecto tiene un valor de 500. Esto en el fondo y no tan en el fondo, es un error clarísimo en el código y lo preferible es solucionarlo. Algunos indican que mientras se resuelve puede colocarse en el archivo de configuración la linea:

(setq max-lisp-eval-depth 10000)

O pulsar un montón de veces:

C-g

Puede que alguna de estas cosas funcione, pero al final, nosotros estos casos los solucionamos de la forma habitual, o sea desde la terminal: saliendo de emacs, matar emacs y volver a lanzarlo:

C-z
killall emacs25
emacs25 -nw

Nunca falla… o eso esperamos. Recordamos que el curso completo de forma nativa con emacs y, seamos sinceros, más bonito, está en http://lapipaplena.zzzz.io/emacs

Felices orgasmos con emacs

 

Anuncios

2 comentarios en “Curso emacs 28. Procesos, crux, bf-modes y cerrar a lo bruto

  1. El comando list-processes sólo lista los subprocesos de la instancia de Emacs en que lo ejecutas, es decir, solo lista los programas que hayas corrido desde ese Emacs. Yo prefiero usar proced, que lista todos los procesos del sistema y que permite interactivamente enviarles señales (matarlos, por ejemplo) –es como un dired para la lista de procesos. La descripción de proced dice que lista los “UNIX system processes”, pero es mentira: ¡también funciona en Windows!

    Proced me parece tan útil que le asigne una tecla, C-x C-p, que por default esta disponible.

    1. Cierto y totalmente de acuerdo contigo, proced lista todos los del sistema y list-processes solo los lanzados desde emacs que eran los que tocábamos en esta entrada. Queriamos meterlo en una futura pero en esta ya asoma… jajajajajaaaa… ¡¡felices ratos con emacs!!

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

A %d blogueros les gusta esto:
search previous next tag category expand menu location phone mail time cart zoom edit close