假设我有一个18218字节的源文件。emacs:为什么what-cursor-position返回小于期望值?
我用Emacs打开该文件,然后执行:
M-x end-of-buffer
M-x what-cursor-position
为什么光标位置返回17612个字节?
我认为这是因为CRLF翻译或将CRLF折叠为一个字符。
我怎样才能让emacs报告准确的未翻译字符位置?
假设我有一个18218字节的源文件。emacs:为什么what-cursor-position返回小于期望值?
我用Emacs打开该文件,然后执行:
M-x end-of-buffer
M-x what-cursor-position
为什么光标位置返回17612个字节?
我认为这是因为CRLF翻译或将CRLF折叠为一个字符。
我怎样才能让emacs报告准确的未翻译字符位置?
您描述的行为在manual中提到。没有提到获得“真实”位置的方法,这使我相信你运气不好。
但是,您可以打开文件,而不进行如下所示的任何转换:C-x RET c不转换RET C-x C-f文件名。然后所有的角色位置都应该正确匹配。
我怀疑使用find-file-literally
打开文件将停止自动检测行尾的Emacs并将CR LF转换为“换行符”。
也许非交互功能(点)是你所需要的。我没有注意到它的差异,但是再次 - 我没有特别注意这些细节......
你要求的不是*字符*位置,它是一个字节位置。字节!=字符。甚至在unicode出现之前(19年前),由于DOS和其他平台上的CR/LF约定,这是一种错误的等价。 – bendin 2010-03-29 20:17:27
啊,非常真实。在这种情况下,我感兴趣的是字节位置。 – Cheeso 2010-03-29 20:41:21