假設我有一個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