LINUX.ORG.RU

Emcas и автоматические кодировки файлов. enca. не работает.

 , , ,


1

1

Пытаюсь заюзать http://lists.gnu.org/archive/html/gnu-emacs-sources/2007-06/msg00037.html

Все сделал по рецепту вверху сообщения, еще добавил -L russian к параметру -m, уже в дебагере сижу, вызывается у меня (call-process ...), и возвращает 2, я так понимаю, что это возврат команды enca. И тут я вообще не понимаю, что происходит. Вызов из шелла «enca -m -L russian /home/user/header.h» работает.

Данный call-process в дебаге имеет вид:

(call-process "/usr/bin/enca" target enca-buffer nil "-m" "-L russian")

step >>> 

call-process("/usr/bin/enca" "/home/user/header.h" #<buffer  *enca*> nil "-m" "-L russian")

Вместо буфера enca-buffer подставлял '(:file «/tmp/123») - создается пустой файл. Явно ошибка запуска самой enca.

Подскажите, куда копать, пожалуйста

Deleted

Некрофил? Это давно из коробки: есть переменная buffer-file-coding-system, и ф-ции типа C-x RET f, C-x RET r.

iVS ★★★★★
()
Последнее исправление: iVS (всего исправлений: 1)

Ох лол. Решилось таким образом: нужно писать

"-m" "-L" "russian"
- как три параметра, вместо двух.

Для таких же нубов, как я, напишу. Отлаживал в scratch, вбил

(call-process "enca" "/home/user/header.h" t t "-m" "-L" "russian")
запустил eval-buffer, и оно отработало, выдав ошибки прямо в текущий буфер scratch. Подобрал вот эти самые
"-m" "-L" "russian"
и все

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от iVS

Чо? Как это поможет автоматически определять и устанавливать кодировку при открытии буфера? buffer-file-coding-system и так устанавливается у меня опосредовано, через modify-coding-system-alist и file-coding-system-alist (см. мою ссылку внимательней)

В емаксе до сих пор нет средств из коробки для автоматического определения кодировок, ага - поэтому enca.

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от Deleted

Как это поможет автоматически определять и устанавливать кодировку при открытии буфера?

Что-то я не припомню кракозябр при открытии файлов, все открывались правильно.

iVS ★★★★★
()
Ответ на: комментарий от iVS

Ну сделай файлы в utf8 cp1251 koi8 три штуки. И открой. Хорошо, когда в своей песочнице сидишь на utf8, но потом приходится иметь дело с такими как Eddy ;) , присылают тебе всякий KOI8 или cp1251 - и начинаются траблы.

Deleted
()

Менее инвазивно, используя скрипт из первого сообщения, добиться работы auto-enca.el можно следующим образом:

(setenv "ENCAOPT" "-L russian") ;; устанавливаем env для enca
(when (load "auto-enca" 'noerror)
  (modify-coding-system-alist 'file "" 'enca-detect-coding))

Это следствие того, что у меня LANG и LC_ALL сконфигурены как en_US, иначе enca умница, сама бы поняла нужную локаль.

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.