minibuffer – Finalización de nombre de archivo que no distingue entre mayúsculas y minúsculas en `shell-command '

Pregunta:

Sé que puedo completar el nombre de archivo que no distingue entre mayúsculas y minúsculas en el minibúfer usando read-file-name-completion-ignore-case , pero esto no parece aplicarse a la finalización de todos los nombres de archivo en el minibúfer. Específicamente, no parece aplicarse cuando estoy usando shell-command . Ejemplo:

$ emacs -Q
M-: (setq read-file-name-completion-ignore-case t)
M-! touch /tmp/HelloThere
C-x C-f /tmp/hello<TAB>  <-- this completes to HelloThere, as expected
M-! shell-command<RET>ls /tmp/Hello<TAB>  <-- this completes to HelloThere, as expected
C-g
M-! shell-command<RET>ls /tmp/hello<TAB>   <-- no completion

¿Hay alguna forma de obtener lo que esté completando /tmp/HelloThere mientras se lee desde el minibúfer para que un shell-command respete read-file-name-completion-ignore-case ?

Respuesta:

Enlaza tags-case-fold-search con t en una función que, de lo contrario, solo llama a tags-completion-at-point-function , y coloca esa función en funciones de completion-at-point-functions .

El problema con el que se está encontrando es que no se usa read-file-name-completion-ignore-case , y eso se debe a que no se usa read-file-name .

(Como alternativa, puede enlazar tags-case-fold-search para no nil y no t , y se unen case-fold-search a la no-cero.)

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım