我想使用(g)Vim输入不同的语言。但是,当我使用语言栏(Devanagari或北印度语字符)切换到另一种语言并键入任何内容时,(g)vim将显示??? ??

我尝试了什么:

write ++enc=utf-8 foo.txt  
set fileencoding=utf-8   
set enc=utf-8




GVim版本:7.4,以及它的+ multi_byte。
默认vimrc文件中没有更改。

我刚开始使用(g)vim。

评论

可能是字体。您使用哪种字体?

gvim中列出了7种字体(consolas,2 courier,2 lucida,fixedsys和terminal)。我尝试了所有这些。虽然我的系统也有其他字体,但是gvim仅显示7种字体。我也遵循:stackoverflow.com/questions/3766204/vim-doesnt-support-unicode但仍然没有运气。

“另一种语言”相当模糊。什么语言?抛光?希伯来语?中文?克林贡?如果您使用的语言晦涩难懂,那么这些字体很可能都不支持该语言。

就我而言,我正在尝试使用具有Ubuntu Mono字体的GVim 7.4.800(或更高版本)的Malayalam。有关示例文本,请参阅Malayalam Wikipedia。在Linux(Ubuntu和Arch)上,将终端字体和GVim字体设置为Ubuntu Mono,Malayalam确实会显示,即使有点压缩。我已经尝试了第二条注释中提到的其他字体msinfo。

在Linux上,gvim可以显示所需的字符,因为Pango将从其他字体中提取字形以显示所有字符。这就是为什么字符看起来与文本其余部分不同的原因。如果在xterm中尝试相同的操作,则不会看到所有字符,因为使用了单个字体。我怀疑Windows上正在发生类似的事情。

#1 楼

默认编码似乎是latin1:输入字符时,Vim尝试将它们从输入字符集(可能是unicode)转换为latin-1。由于latin-1没有这些字符,因此失败。因此,出现问号。

打开现有文件(用记事本或其他程序保存)会导致文本乱码,因为Vim现在正尝试读取字节并根据latin-1字符解释它们。集,而不是将其转换为latin-1集。

您将要使用utf-8或类似的东西:马拉雅拉姆语脚本似乎可行。

请注意,这将无法使先前存在的问号起作用。这些实际上会在输入时转换为问号(字符0x3f)。无法取回输入的内容。我怀疑这是造成此问题困惑的原因。
另请参阅:help 'encoding'。每种字体会有所不同,但通常是方块或不同样式的问号。您会看到g8显示“真实”问号和不受支持的字形之间的区别,该字形将显示字符代码。

评论


我需要输入梵文或北印度文字符。编码先前设置为latin1,根据您对utf-8的建议已将其更改。但是仍然看不到梵文或印地文字符。但是,当我将这些框(由VIM渲染)从VIM复制到浏览器或Notepad ++时,它们看起来像Unicode字符。因此,VIM可以识别但不能显示它们。

–msinfo
16 Mar 8 '16 at 4:20

@msinfo您使用的是哪个Vim版本?您提到了7.4,但没有提到补丁程序级别?我从vim.org使用7.4.1024。

–马丁·图尔诺伊(Martin Tournoij)
16年8月8日在4:28

似乎未修补,因为我尝试在vi.stackexchange.com/questions/2466/…上从您的答案之一;-)中找出来。 Vim --version不显示任何补丁信息。安装后,我尚未进行任何插件或补丁程序更改。

–msinfo
16 Mar 8 '16 at 6:14

@msinfo Vim 7.4大约在两年半前发布。尝试安装较新的版本。也许这就是所需要的?

–马丁·图尔诺伊(Martin Tournoij)
16-3-8在6:17