Você pode forçar o emacs a sempre abrir arquivos usando nomes reais absolutos:
(setq find-file-visit-truename t)
Eu estou em um ambiente de desenvolvimento baseado em Linux, onde não tenho permissões de superusuário.
Meu problema básico é que os pontos de interrupção que eu configurei no emacs através do pdb nunca funcionam. O depurador nunca pára nesses pontos de interrupção.
Depois de investigar esse problema, suspeito que seja porque o caminho do ponto de interrupção não corresponde ao caminho verdadeiro do arquivo.
Primeiro, o caminho que vejo da linha de comando é assim:
/home/me/a/b
Mas os administradores o configuraram para que / home / me seja um link simbólico para uma montagem oculta
/.hidden/x/me/a/b
Ao iniciar o emacs a partir de /home/me/a/b
e tentar depurar test.py
nesse diretório emitindo M-x pdb
e, em seguida, pdb test.py
, o cabeçalho no buffer gud
informará que o caminho completo do arquivo é
/.hidden/x/me/a/b/test.py
Então, quando tento definir um ponto de interrupção no arquivo python com M-x space
, o prompt que vejo no buffer gud
é
Breakpoint X at /home/me/a/b/test.py:Y
Portanto, o ponto de interrupção está abaixo de /home/me/a/b/test.py
, mas o caminho de arquivo no cabeçalho do buffer gud
é /.hidden/x/me/a/b/test.py
. E o depurador nunca pára no ponto de interrupção, o que é muito chato.
Recebo uma confirmação de minhas suspeitas quando explico cd
em /.hidden/x/me/a/b/
e, em seguida, inicio o emacs. Então eu posso definir pontos de interrupção e o depurador irá parar neles.
Atualmente, minha solução é explicitamente cd
no caminho correto e lançamento do emacs.
Mas existem soluções melhores? Seja através do emacs, bash ou python?