Emacs复制粘贴乱码问题以及修改当前文件编码
编码修改:
为了和Linux兼容,win环境下将emacs编码修改为utf-8,随意复制了其他关于emacs编码的配置,如下:
(setq locale-coding-system 'utf-8) (set-terminal-coding-system 'utf-8) (set-keyboard-coding-system 'utf-8) (set-selection-coding-system 'utf-8) (prefer-coding-system 'utf-8) (setq default-buffer-file-coding-system 'utf-8)
问题与解决:
结果发现emacs和其他win的窗口进行相互的复制粘贴时出现问题,表现为当从其他窗口复制文字,粘贴到emacs中,出现乱码(\xxx这种形式)。细读手册,发现:
selection-coding-system
这个变量用于控制emacs和其他窗口相互发送接收文本的编码,应该就是这个变量的问题,因此在配置文件中将这个变量注释掉,问题解决。
(setq locale-coding-system 'utf-8) (set-terminal-coding-system 'utf-8) (set-keyboard-coding-system 'utf-8) ;;(set-selection-coding-system 'utf-8) (prefer-coding-system 'utf-8) (setq default-buffer-file-coding-system 'utf-8)
修改当前文件编码:
emacs打开一个文件修改后存储时,会默认使用文件的当前编码存储。如果想更换另外一个编码,可以:
C-x RET c "utf-8" RET C-x C-w RET ;;1 universal-coding-system-argument ;;2 immediately following command 文件另存为
这种交互的方式完成