首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何配置GNU Emacs在默认情况下写入UNIX或DOS格式的文件?

如何配置GNU Emacs在默认情况下写入UNIX或DOS格式的文件?
EN

Stack Overflow用户
提问于 2009-11-04 23:20:36
回答 2查看 8.3K关注 0票数 19

我在.emacs.el文件中使用这些函数已经有很多年了:

代码语言:javascript
复制
(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,不管我在什么平台上运行,我都要用格式写东西。,我该怎么做?

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-11-04 23:27:40

我的.emacs里有一堆这样的东西:

代码语言:javascript
复制
(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)

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

票数 26
EN

Stack Overflow用户

发布于 2014-02-18 03:40:12

我增加了问答,但可能花了几分钟来改进信息,所以我将其添加进来。

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

这表明我可能只需要

代码语言:javascript
复制
(prefer-coding-system 'utf-8-unix) 

尝试使用其他行似乎不会更改预先存在的缓冲区编码(每次输入C-h C RET RET检查(describe-coding-system)并输入g进行刷新),因此我省略了其他行,并进行了键绑定以快速更改仍为DOS的任何旧文件,即,

代码语言:javascript
复制
(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
        )

出于好奇,为了发现上述函数的第3行和第4行(set-buffer-file-coding-system 'utf-8-unix),我使用C-x RET f RET手动更改当前缓冲区的编码,然后使用M-x command-history RET查看这些键如何转换为代码。

现在也许我的git commit会停止抱怨CRs。

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1674481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档