Mirando las opciones de personalización para ido-mode
( M-x customize-group
RET ido
RET), no veo ninguna opción para habilitar el comportamiento de ciclismo que describe.
Sin embargo, puede agregar lo siguiente a su archivo init:
(require 'recentf)
(defun ido-recentf-open ()
"Use `ido-completing-read' to find a recent file."
(interactive)
(if (find-file (ido-completing-read "Find recent file: " recentf-list))
(message "Opening file...")
(message "Aborting")))
(global-set-key (kbd "C-x C-r") 'ido-recentf-open)
Con esto en su lugar, puede presionar C-x C-rpara completar Ido para seleccionar archivos abiertos recientemente.
Por defecto, los 20 archivos más recientes se mantendrán en el historial. Sugiero que aumente eso a algo así como 150 configurando recentf-max-saved-items
:
(setq recentf-max-saved-items 150)
Bonificación: acceso a archivos recientes, edición con esteroides
No lo veo mencionado en muchos lugares, pero Ido Virtual Buffers hace que sea muy fácil acceder a archivos recientes. Habilítelos así:
(setq ido-use-virtual-buffers t)
El comportamiento que obtienes es este:
Si no es así nil
, consulte los buffers pasados ("virtuales") y los existentes.
Esencialmente funciona de la siguiente manera: supongamos que está visitando un archivo y el búfer se limpia midnight.el
. Más tarde, desea cambiar a ese búfer, pero descubre que ya no está abierto. Con los búferes virtuales habilitados, el nombre del búfer permanece en la lista de búferes (usando la ido-virtual
cara, y siempre al final), y si lo selecciona, vuelve a abrir el archivo nuevamente. Esto le permite pensar menos sobre si los archivos abiertos recientemente aún están abiertos o no. La mayoría de las veces puede salir de Emacs, reiniciar y luego cambiar a un búfer de archivos que estaba abierto previamente como si todavía lo estuviera.
C-x C-r
él no es posible abrir un archivo nuevo. También me sorprende que no sea posible personalizarlo de manera simple. La historia deC-x C-f
es una característica tan obvia que no puedo entender por quéido
todavía no se implementa . Por ejemplo,M-x up/down
ciclos a través de comandos recientes,M-% up/down
ciclos a través de reemplazo de consultas recientes, incluso fuera de emacs: todos los shells como bash o zsh usan arriba / abajo para recuperar comandos anteriores. Para míC-x C-f up/down
debería recorrer los archivos abiertos recientemente. Punto final.ido-use-virtual-buffers
: una gran característica que realmente debería estar activada por defecto IMO.Aunque los enlaces han evolucionado con el tiempo, a partir de hoy, cuando invocas
ido-find-file
oido-find-file-read-only
puedes usar los siguientes enlaces disponibles en la configuración predeterminada:ido-prev-work-file
ido-next-work-file
Aparte de éstos no ser tan agradable como el ergonómicamente M-py M-nfijaciones que se había utilizado para antes de intentar ido , también son lentos, y la consiguiente charla minibuffer se distracción y confusión. ido hace algo más que mostrar un nombre de archivo abierto recientemente; informa que está "Buscando ' nombre de archivo ' ...", quizás por renuencia a ofrecer un nombre para un archivo que ya no existe.
El mensaje "Buscando" proviene de la función
ido-make-merged-file-list
. Al leer la fuente , no veo ninguna forma de desactivar la magia que está haciendo esta función.Puede considerar volver a vincular
ido-prev-work-file
yido-next-work-file
emparejar a algo más natural como C-M-py C-M-n, o intercambiar los enlaces actuales M-p(ido-prev-work-directory
) y M-n(ido-next-work-directory
) por estos.Aquí está el código Emacs Lisp para restaurar M-py M-nrecorrer los archivos recientes, moviendo los enlaces predeterminados centrados en el directorio a C-M-py C-M-nrespectivamente:
fuente
Lo que he recurrido en este caso es volver al comportamiento normal del minibúfer escribiendo Cf en idomode. Entonces tendrás claves de navegación de historial normales. Si lo sabe de antemano, puede ser rápido: Cxff :-)
fuente
La respuesta dada por @itsjeyd es bastante completa. Permítanme sugerir una función:
Cortesía de WikEmacs.
fuente
Encontré que
helm-for-files
funciona mejor que cualquiera de las respuestas anteriores con el fin de completar automáticamente el nombre del archivo y tener una buena interfaz de búsqueda. Además, puede configurarlo para incluir cualquier elemento de búsqueda que desee.fuente