EmacsW32 переименовывает буферы со старыми сокращенными именами файлов Windows
Вопрос
Давайте посмотрим, смогу ли я связаться с пользователями EmacsW32 через stackoverflow.
Я только что установил исправленную версию EmacsW32 с http://ourcomments.org/Emacs/EmacsW32.html
Я нахожу очень приятным, что файлы .txt связаны с Emacs, так что, когда вы нажимаете на один из них, emacsclient открывает его в запущенном экземпляре Emacs.
Проблема в том, что по какой-то причине буфер переименован с использованием сокращенных имен файлов в старом стиле, так, например, буфер с файлом "activities-2008.txt" переименован в "ACTIV ~1.TXT", что мне не нравится.
Как мне заставить EmacsW32 не переименовывать буфер, а вместо этого использовать полное имя файла в качестве имени буфера ?
Решение 2
Решаемая.
Проблема не в emacs, а в том, как Windows запускает программу, когда тип файла связан в реестре.
В моем реестре у меня было это значение для ключей, которые связывают текстовые файлы с 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.
Решение состоит в том, чтобы использовать %Л на месте %1 в регистрационных ключах.
Другие советы
Черт, это отстой.
Почему бы просто не использовать emacsclientw, который поставляется со стандартом Дистрибутив Windows emacs?
У этого есть небольшая проблема в том, что вы получаете раздражающее окно с ошибкой "Нет ошибки", если Emacs еще не запущен, но любой реальный пользователь emacs все равно первым делом запускает emacs при входе в систему.:-)