2

I've just installed 24.5 on SUSE, and I have no windowing available, so I am using emacs in the terminal window. When I choose 'Read the Emacs Manual' from the 'Help' Menu, I see (for example) "type \u2018h\u2019 to read a basic introduction".

The other answers related to this topic seem to indicate the problem is with how the file is loaded. But, since this is the help, I don't have any obvious way to affect that. I can mostly not care about this, but it does make reading the help very difficult.

Does anyone have any insight into what configuration changes are necessary?

2

You can set the coding system that your terminal uses by adding the following to your init file:

(set-terminal-coding-system 'utf-8)

utf-8 is often what you want, but to get a list of other possible values, you can use M-x list-coding-systems.

1

FWIW I've have a collection of coding system settings, which is largely copy/paste from elsewhere (and thus I could not say with certainty that they are all required), but may be of interest:

(prefer-coding-system 'utf-8)
(set-default-coding-systems 'utf-8)
(set-terminal-coding-system 'utf-8) ;; also see `my-frame-config'
(set-keyboard-coding-system 'utf-8)
(set-locale-environment "en_NZ.UTF-8")
(setq-default buffer-file-coding-system 'utf-8)
(when (boundp 'default-buffer-file-coding-system) ;; obsolete since 23.2
  (setq default-buffer-file-coding-system 'utf-8))
;; Treat clipboard input as UTF-8 string first; compound text next, etc.
(setq x-select-request-type '(UTF8_STRING COMPOUND_TEXT TEXT STRING))

Of particular note to this question, however, is that you set the terminal coding system on a per-terminal basis, which means you should be reacting to new frames.

(e.g. With Emacs running as a server, set the terminal coding system, then in a completely separate terminal connect to the server and inspect the terminal coding system, and you'll note that it's the default value.)

More generally, various Emacs variables are terminal-local, such that setting them in one terminal does not affect their value in other terminals. See C-hig (elisp) Multiple Terminals RET for more details.

If you are certain that you can reliably use a particular coding system in all of your terminals, you can do something like this:

;; Per-frame/terminal configuration.
(defun my-frame-config (frame)
  "Custom behaviours for new frames."
  (with-selected-frame frame
    ;; do things
    (unless window-system
      ;; Terminal configuration
      (set-terminal-coding-system 'utf-8))
    ))
;; Run now, for non-daemon Emacs...
(my-frame-config (selected-frame))
;; ...and later, for new frames / emacsclient
(add-hook 'after-make-frame-functions 'my-frame-config)
  • When you say "with Emacs running as a server", which commands are used to do this? And can you please point to something that describes this topic more fully? I'm intrigued! Thx. – Derrell Durrett Jan 21 '16 at 16:44
  • In the manual: C-h r m Emacs Server – phils Jan 21 '16 at 20:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.