emacs中的C-m组合键是否会生成" \ r \ n"或只是" \ n"

时间:2014-11-05 06:42:52

标签: emacs key-bindings

C-m密钥的emacs文档(即C-h k C-m)显示以下内容

newline is an interactive compiled Lisp function in `simple.el'.

(newline &optional ARG)

Insert a newline, and move to left margin of the new line if it's blank.
If `use-hard-newlines' is non-nil, the newline is marked with the
text-property `hard'.
With ARG, insert that many newlines.
Call `auto-fill-function' if the current column number is greater
than the value of `fill-column' and ARG is nil.

但它没有说换行符是在dos(“\ r \ n”)或unix(“\ n”)的上下文中。

1 个答案:

答案 0 :(得分:1)

在内部,Emacs在其缓冲区中存储了一个Unix换行符,即"\n",类似于大多数C程序在读取文本文件时所做的操作。如果Emacs缓冲区中有"\r",则它将显示为^M

另一方面,Emacs会记住用于每个打开文件的换行约定。如果您打开包含"\r\n"换行符的文件,进行修改并保存,则Emacs会将所有换行符转换回"\r\n"