emacs dired-mode: ¿Cómo "salir" y terminar en un shell en el directorio actual?

En Mac OS puedo usar el terminal, escribir "cd" y luego arrastrar y soltar carpetas desde Finder al terminal. Luego obtengo algo como "cd / Users / ..." que me permite cambiar rápidamente al directorio correspondiente. Si abro un shell emacs con Mx shell y arrastro y suelto una carpeta en él, emacs cambia en modo directo y me muestra el contenido de la carpeta que solté. ¿Cómo puedo "salir" o "salir" del modo dired y obtener un shell con el directorio cambiado a la carpeta que solté? Eso me daría algo como el anterior y sería bastante útil.

preguntado el 08 de noviembre de 11 a las 15:11

Si inicia shell en emacs (M-x shell), comenzará en el directorio indicado. También puede ejecutar un comando de shell después de presionar M-! que comenzará en el directorio. -

gracias, pero ese no es el punto. Tengo un caparazón abierto, comencé con un caparazón Mx. Por supuesto, esto se abre en el directorio desde el que llamé Mx shell. Pero ahora navego en modo directo a otro directorio. El problema es que no quiero abrir un archivo desde allí, solo quiero salir del modo dired y volver al indicador en el shell, pero ahora el shell debería haber ingresado en el directorio al que navegué. modo dired. Así que poner pwd debería mostrarme el directorio al que navegué en modo directo. Si presiono "q", termino en el directorio original, no en el que navegué. -

1 Respuestas

Puede implementar una función para abrir un shell en lugar de dired buffer. Esta función es útil en muchos otros casos, no solo en un caso de DnD

(require 'dired)
(define-key dired-mode-map "c" 'shell-instead-dired)

(defun shell-instead-dired ()
  (interactive)
  (let ((dired-buffer (current-buffer)))
    (shell (concat default-directory "-shell"))
    (kill-buffer dired-buffer) ;; remove this line if you don't want to kill the dired buffer
    (delete-other-windows)))

EDITAR En este caso, necesita DnD un directorio en Emacs y presione 'c' para llamar a un shell en este directorio.

De lo contrario, puede instalar un Smart-dnd package y configúrelo para abrir un shell. También proporciono otras cosas útiles como crear <img ...> etiquetas en modo html si suelta un jpg o #include<...> en modo c si suelta un encabezado.

respondido 09 nov., 11:12

bien, ya veo, no es una tarea fácil. Hasta ahora solo uso 1) Mx dired 2) navega con "a" a la carpeta que te gusta 3) Cu Mx shell => este shell se abre en la carpeta a la que navegaste en 2) - Marius Hofert

Bueno, se trata de velocidad, ¿no? DnD un directorio en Emacs que lo muestra en modo directo. Usando mi solución, escribe una sola clave 'c' que abre un shell con el nombre único y cierra el búfer dired - Oleg Pavliv

Obtengo: El valor del símbolo como variable es nulo: dired-mode-map - Marius Hofert

Necesita agregar (requiere 'dired) - Oleg Pavliv

Funciona de maravilla, gracias :-) Entonces la solución es 1) Cx d 2) navegar con "a" 3) c - Marius Hofert

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.