当我打开一个lua文件时,凌乱的代码包含带有MacVim的中文

时间:2011-09-14 15:20:00

标签: macvim

如何设置MacVim显示代码。

当我打开在Windows XP中创建的lua文件时,这是一团糟。

gControlMode = 0; - 1£ÆÆÆÖØÁ|¸ÐÓ|£0:¿ª'¥ÆÁģʽ

gState = GS_GAME;

sTotalTime = 0; --μ±C°¹Ø¿¨»μA×UE±¼ä

1 个答案:

答案 0 :(得分:0)

您发布的文字似乎是对本文的CP936编码(或EUC-CN或GB18030编码 1 )的Latin-1(或ISO-8859-1,CP819)解码SUP> 2 :

gControlMode = 0; -- 1:开启重力感应, 0:开触屏模式

gState = GS_GAME;

sTotalTime = 0; --当前关卡花的总时间

打开文件时,Vim会尝试fileencodings option中指定的编码列表。通常,latin1是此列表中的最后一个值;读取为Latin-1将始终成功,因为它是一个映射所有256个值的8位编码。因此,Vim将您的CP936编码文件打开为Latin-1。

让Vim使用其他编码有几种选择:

  • 您可以使用++enc= option到Vim的:edit命令指定编码(这将导致Vim忽略缓冲区的fileencodings列表):

    :e ++enc=cp936 /path/to/file
    

    您可以通过以下路径将其应用于已加载的文件:

    :e ++enc=cp936
    
  • 您可以在fileencodings之前将您的首选编码添加到latin1(例如在~/.vimrc中):

    let &fileencodings = substitute(&fileencodings, 'latin1', 'cp936,\0', '')
    
  • 您可以将encoding选项设置为所需的编码。这通常是不鼓励的,因为它具有广泛的影响(见:help encoding)。


如果可能的话,将文件切换为UTF-8可能是有意义的,因为许多编辑器将正确地自动检测UTF-8。正确加载文件后(见上文),Vim可以像这样进行转换(设置fileencoding,然后设置:write):

:set fenc=utf-8 | w

Vim几乎可以自动处理读写UTF-8文件(encoding默认为UTF-8,utf-8默认为fileencodings),但如果您正在使用其他编辑器(即Windows编辑器编辑/创建CP936文件),您可能需要将它们配置为使用UTF-8而不是(例如)CP936。


1 我不熟悉用于中文文本的编码,这些编码对于“预期”文本似乎是相同的。
2 我不读中文,但是FULLWIDTH COLON和FULLWIDTH COMMA(以及Google对本文的翻译)的存在和位置让我觉得这是你期望的文字。