Intereting Posts
Переименование: как присоединить слово или переименовать несколько файлов как запустить время запуска команды и время окончания команды в txt-файле, используя cygwin OpenWRT – Невозможно заблокировать порт DNS (53) из направления WAN-LAN Сократить имя файла Linux (усечь на символ) Где хранятся последние документы в KDE Plasma 5? Что ограничивает использование моего процессора в разветвленных процессах? Можно ли использовать x-forward приложения для Windows в Linux, если Windows PC работает Xming? Может ли rpm обрабатывать установку другой ОС в другой логический том? Может ли сценарий оболочки печатать свой аргумент, цитируемый, как вы могли бы написать их в командной строке? Ошибка скрипта Bash почему правильная новая строка / EOL не сохраняется? Есть ли ссылка для ассемблерного вывода, созданного `awk -W dump`? xscreensaver: аутентификация через тайм-аут PAM Сервер Centos не обновляется с ошибкой обновления пространства-времени Использование USB 3-контроллера с Linux 2.6.x

Текстовый режим emacs UTF-8

Я не могу получить emacs (версия 24.4.1) в текстовом режиме ( -nw запуска -nw ), чтобы отображать символы Unicode напрямую. Он выводит их в скрытую форму, например, ä становится \344 . Когда я сохраняю файл, он кодируется как ISO-8859 , хотя мой системный язык – en_US.UTF-8 .

Сам терминал может отображать символы Unicode вне emacs; например, в bash, ä становится ä . Он также работает в приложении emacs X (без -nw ).

Я запускаю xterm -u8 (тот же результат с использованием uxterm ) в Arch Linux 3.19.3-3 с gnome-shell 3.16.0-2.

вывод localectl :

  System Locale: LANG=en_US.UTF-8 VC Keymap: sv-latin1 X11 Layout: se X11 Model: pc104 

выход locale :

 locale: Cannot set LC_CTYPE to default locale: No such file or directory locale: Cannot set LC_MESSAGES to default locale: No such file or directory locale: Cannot set LC_ALL to default locale: No such file or directory LANG=en_US.UTF-8 LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_ALL= 

Поскольку единственная проблемная область – emacs в терминальном режиме, я предполагаю, что это проблема. Есть идеи?

Обновить:

~/.emacs :

 (prefer-coding-system 'utf-8) (set-default-coding-systems 'utf-8) (set-terminal-coding-system 'utf-8) (set-keyboard-coding-system 'utf-8) (setq x-select-request-type '(UTF8_STRING COMPOUND_TEXT TEXT STRING)) (custom-set-variables ;; custom-set-variables was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. '(ansi-color-names-vector ["#2d3743" "#ff4242" "#74af68" "#dbdb95" "#34cae2" "#008b8b" "#00ede1" "#e1e1e0"]) '(current-language-environment "UTF-8") '(custom-enabled-themes (quote (manoj-dark))) '(font-use-system-font t) '(inhibit-startup-screen t) '(tool-bar-mode nil)) (custom-set-faces ;; custom-set-faces was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. ) , (prefer-coding-system 'utf-8) (set-default-coding-systems 'utf-8) (set-terminal-coding-system 'utf-8) (set-keyboard-coding-system 'utf-8) (setq x-select-request-type '(UTF8_STRING COMPOUND_TEXT TEXT STRING)) (custom-set-variables ;; custom-set-variables was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. '(ansi-color-names-vector ["#2d3743" "#ff4242" "#74af68" "#dbdb95" "#34cae2" "#008b8b" "#00ede1" "#e1e1e0"]) '(current-language-environment "UTF-8") '(custom-enabled-themes (quote (manoj-dark))) '(font-use-system-font t) '(inhibit-startup-screen t) '(tool-bar-mode nil)) (custom-set-faces ;; custom-set-faces was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. ) 

Я пробовал комментировать каждую строку в файле, но результат был таким же.

После некоторых попыток, я обнаружил, что это связано с системой, а не с emacs. По-видимому, мои настройки языка были как-то испорчены, как мы видели в OP:

 locale: Cannot set LC_CTYPE to default locale: No such file or directory locale: Cannot set LC_MESSAGES to default locale: No such file or directory locale: Cannot set LC_ALL to default locale: No such file or directory 

Что я сделал, чтобы решить эту проблему:

В /etc/locale.gen раскомментируйте / добавьте строку, которая говорит en_US.UTF-8 UTF-8 . Убедитесь, что это единственная строка без объявления. Он должен работать с любыми другими настройками UTF-8 если вы предпочитаете использовать один из них. Метод грубой силы:

 $ sudo bash -c 'echo en_US.UTF-8 UTF-8 > /etc/locale.gen' 

После этого мы создаем настройки локали и сохраняем их в конфигурации системы:

 $ sudo locale-gen $ sudo bash -c 'locale > /etc/locale.conf' 

Вы можете обновить настройки без перезагрузки, но я не нашел способ.