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 первым делом, когда он входит в систему в любом случае.:-)