EmacsW32 переименовывает буферы со старыми сокращенными именами файлов Windows - PullRequest
1 голос
/ 21 мая 2009

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

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

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

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

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

Ответы [ 2 ]

1 голос
/ 22 мая 2009

решаемая.

Проблема не в 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.

1 голос
/ 21 мая 2009

Крик, это отстой.

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

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

...