我使用gnu emacs 23.3.1在Windows 7 64位上創建了一個普通的文本文件。我可以使用LinqPad等其他程序編輯文件(該文件恰好是linqpad腳本,擴展名爲.linq)。一切都很好,直到我把一個Unicode字符放在文件中,像希臘字母λ(lambda)這樣的字符。我可以在emacs中輸入該字母並正確顯示。然而,Emacs將拒絕保存文件,報告下列錯誤Emacs在使用unicode保存文件時加載字符集映射失敗
Failure in loading charset map: 8859-7
如果我輸入LinqPad的λ,Emacs會讀取並顯示出來,但不會保存文件。
我剛剛注意到Notepad ++對這個文件有其他意想不到的行爲:它不顯示λ,而是顯示一對奇怪的字符,例如λ。這適合於unuding(雙關語意思)的unicode字符被存儲成對。所以看起來這是一種模糊的情況(將unicode存儲在文本文件中),但它看起來也像linqPad和visual studio「做了顯而易見的事情」。
我想使用emacs,因爲它是唯一一個能夠重排註釋行序列的程序(//之後的行,使用Alt-Q重排它們),並且我希望在我的評論中使用希臘字符, m描述一個數學程序。
我將不勝感激的意見和答案。
更新:在其他問題的一些建議,說要嘗試M-X描述字符,也綁定到C-x =;這兩個人都給了我與上面相同的失敗信息,所以他們在正確的軌道上,只是沒有答案。
這是很好的信息,我越來越接近 - 我的emacs安裝中的Cx Cm立即執行「save-some-buffers-without-asked」,並且不等我放入「c」,其餘。我不確定與C-x C-m綁定的原始密鑰是什麼,也不知道如何查明。搜索「apropos」「utf-8-dos」沒有任何發現。接下來我將嘗試新鮮的emacs安裝,因爲這是一個非常古老的數據庫,我從同事那裏獲得了數百個定製的elisp文件。 –
嗯,'C-X C-m c'在Linux上適用於我(默認情況下它是'utf-8-unix')。我沒有Windows Emacs,但我認爲默認綁定應該是相同的... – bobince
好吧,繞過所有舊的定製,釋放了'C-x C-m c',它確實接受了保存命令的'C-x C-m c utf-8-dos',但仍然對加載8859-7失敗。我想知道是否可以直接在文件中輸入0xCE 0xBB,當我指定utf-8-dos時,emacs可能會決定保存它。我現在輸入λ的方式是通過Windows鍵盤軟件(控制面板,區域),並且λ在emacs窗口窗格中直接顯示爲該字形。通常,C-q讓我鍵入像其他控制字符一樣的非標準字符,但我不知道如何鍵入0xCE 0xBB。越來越近! –