2010-03-29 51 views
3

假设我有一个18218字节的源文件。emacs:为什么what-c​​ursor-position返回小于期望值?

我用Emacs打开该文件,然后执行:

M-x end-of-buffer 
M-x what-cursor-position 

为什么光标位置返回17612个字节?

我认为这是因为CRLF翻译或将CRLF折叠为一个字符。

我怎样才能让emacs报告准确的未翻译字符位置?

+3

你要求的不是*字符*位置,它是一个字节位置。字节!=字符。甚至在unicode出现之前(19年前),由于DOS和其他平台上的CR/LF约定,这是一种错误的等价。 – bendin 2010-03-29 20:17:27

+0

啊,非常真实。在这种情况下,我感兴趣的是字节位置。 – Cheeso 2010-03-29 20:41:21

回答

2

您描述的行为在manual中提到。没有提到获得“真实”位置的方法,这使我相信你运气不好。

但是,您可以打开文件,而不进行如下所示的任何转换:C-x RET c不转换RET C-x C-f文件名。然后所有的角色位置都应该正确匹配。

0

我怀疑使用find-file-literally打开文件将停止自动检测行尾的Emacs并将CR LF转换为“换行符”。

0

也许非交互功能(点)是你所需要的。我没有注意到它的差异,但是再次 - 我没有特别注意这些细节......

相关问题