У меня есть небольшой скрипт elisp, который применяет Perl :: Tidy для региона или всего файла. Для справки, вот скрипт (заимствовано из EmacsWiki):Как установить кодировку вывода команды shell-command-on-region?
(defun perltidy-command(start end)
"The perltidy command we pass markers to."
(shell-command-on-region start
end
"perltidy"
t
t
(get-buffer-create "*Perltidy Output*")))
(defun perltidy-dwim (arg)
"Perltidy a region of the entire buffer"
(interactive "P")
(let ((point (point)) (start) (end))
(if (and mark-active transient-mark-mode)
(setq start (region-beginning)
end (region-end))
(setq start (point-min)
end (point-max)))
(perltidy-command start end)
(goto-char point)))
(global-set-key "\C-ct" 'perltidy-dwim)
Я использую Emacs тока 23,1 для Windows (EmacsW32). Проблема, с которой я столкнулась, заключается в том, что если я применил этот скрипт в кодированном файле UTF-8 («U (Unix)» в строке состояния), то на выходе возвращается латинский-1, то есть два или более символа для каждого не- Исходный символ ASCII.
Есть ли способ исправить это?
EDIT: Проблема, кажется, решается с помощью (set-terminal-coding-system 'utf-8-unix)
в моей init.el
. У кого-нибудь есть другие решения, продолжайте и пишите!