EmacsW32 переименовывает буферы со старыми сокращенными именами файлов Windows

Посмотрим, смогу ли я связаться с пользователями EmacsW32 по stackru.

Я только что установил исправленную версию EmacsW32 с http://ourcomments.org/Emacs/EmacsW32.html

Мне очень приятно, что файлы.txt связаны с Emacs, поэтому, когда вы щелкаете по одному из них, emacsclient открывает его в работающем экземпляре Emacs.

Проблема в том, что по какой-то причине буфер переименовывается с сокращенными именами файлов в старом стиле, поэтому, например, буфер с файлом "activity-2008.txt" переименовывается в "ACTIV~1.TXT", который я надеваю не нравится

Как заставить EmacsW32 не переименовывать буфер, а использовать вместо него полное имя файла?

2 ответа

Решение

Решаемые.

Проблема не в emacs, а в том, как Windows запускает программу, когда тип файла связан с реестром.

В моем реестре у меня было это значение для ключей, которые связывают TXT-файлы с Emacs:

C:\emacs-23.0.91.1\Emacs\bin\emacsclientw.exe -n "%1"

Проблема в%1, который заменяется коротким именем файла.

Согласно этому сообщению http://lists.gnu.org/archive/html/help-emacs-windows/2009-05/msg00022.html:

 %L is long file names.

 %1 is long file names IF
 * Explorer can find the exe file (it does not look very hard)
 AND
 * The file header says it is Win 95 aware Win16 exe, or
 * It is a 32 bit program

 Else %1 will be a short name.

Решение состоит в том, чтобы использовать %L вместо % 1 в ключах reg.

Круто, это отстой.

Почему бы просто не использовать emacsclientw, входящий в стандартный дистрибутив Windows emacs?

У него есть небольшая проблема в том, что вы получаете досадное окно с сообщением об ошибке "Нет ошибок", если Emacs еще не запущен, но любой реальный пользователь emacs запускает emacs первым делом, когда он входит в систему в любом случае.:-)

Другие вопросы по тегам