2010-03-29 53 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

也許非交互功能(點)是你所需要的。我沒有注意到它的差異,但是再次 - 我沒有特別注意這些細節......