当前位置:  开发笔记 > 运维 > 正文

如何配置GNU Emacs默认编写UNIX或DOS格式的文件?

如何解决《如何配置GNUEmacs默认编写UNIX或DOS格式的文件?》经验,为你挑选了2个好方法。

.emacs.el多年来我在我的文件中有这些功能:

(defun dos2unix ()
  "Convert a DOS formatted text buffer to UNIX format"
  (interactive)
  (set-buffer-file-coding-system 'undecided-unix nil))

(defun unix2dos ()
  "Convert a UNIX formatted text buffer to DOS format"
  (interactive)
  (set-buffer-file-coding-system 'undecided-dos nil))

这些函数允许我轻松地在格式之间切换,但我不知道如何配置Emacs默认情况下以一种特定格式写入,无论我使用哪个平台.就像现在一样,当我在Windows上运行时,Emacs以Windows格式保存; 当我在UNIX/Linux中运行时,Emacs以UNIX格式保存.

无论我运行的平台如何,我都想指示Emacs以UNIX格式编写.我该怎么做呢?

我是否应该添加一些调用这些函数之一的文本模式钩子?例如,如果我在Windows上,那么dos2unix在找到文本文件时调用?



1> 小智..:

我的.emacs中有很多这些:

(setq-default buffer-file-coding-system 'utf-8-unix)
(setq-default default-buffer-file-coding-system 'utf-8-unix)
(set-default-coding-systems 'utf-8-unix)
(prefer-coding-system 'utf-8-unix)

我不知道哪个是对的,我只是迷信.


`setq-default` not`set-default`是更改上述变量的正确方法.否则,您需要引用变量名称.
哈!这是非常好的东西.皮带和吊带+1!

2> Brady Traino..:

我投了问题和答案,但花了几分钟可能改进信息,所以我会添加它.

首先,我检查了每个变量和函数的文档,在user181548的答案中,通过(首先剪切并粘贴到Emacs,然后)将光标放在每个上,C-h v RET然后C-h f RET分别键入.

这表明我可能只需要

(prefer-coding-system 'utf-8-unix) 

尝试使用其他行似乎没有改变预先存在的缓冲区编码(键入C-h C RET RETcheck(describe-coding-system)和g每次刷新),所以我省略了其他行并进行了键绑定以快速更改任何仍然存在的旧文件DOS,即

(defun set-bfr-to-8-unx ()
  (interactive)
  (set-buffer-file-coding-system
   'utf-8-unix)
  )
(global-set-key (kbd "C-c u") 
        'set-bfr-to-8-unx
        )

为了好奇,发现上面第三和第四行的功能,(set-buffer-file-coding-system 'utf-8-unix)我曾经C-x RET f RET手动改变当前缓冲区的编码,然后M-x command-history RET看看这些键如何转换为代码.

现在也许我的git commit会停止抱怨CR.

推荐阅读
黄晓敏3023
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有