vim编码:拉丁1和utf-8
我的问题是:vim编码:拉丁1和utf-8,vim,character-encoding,Vim,Character Encoding,我的问题是: 当我打开文件时,我从vim收到以下消息: "myfilename.sql" [converted] 78565L, 10487381C 如果我做了:设置我得到: Options backspace=2 colorcolumn=+1 formatoptions=qc scrolloff=15 smartindent textwidth=80 visualbell backup
- 当我打开文件时,我从vim收到以下消息:
"myfilename.sql" [converted] 78565L, 10487381C
- 如果我做了
我得到::设置
Options backspace=2 colorcolumn=+1 formatoptions=qc scrolloff=15 smartindent textwidth=80 visualbell backup expandtab ignorecase shiftwidth=4 syntax=sql ttyfast t_vb= bomb filetype=sql number showcmd tabstop=4 ttymouse=sgr backupdir=~/.vim/backup comments=s1:/*,mb:*,ex:*/,:--,:// define=\c\<\(VARIABLE\|DECLARE\|IN\|OUT\|INOUT\)\> directory=~/.vim/tmp fileencoding=utf-8 fileencodings=utf-8,ucs-bom,default,latin1 matchpairs=(:),{:},[:],<:> omnifunc=sqlcomplete#Complete viminfo='10,"100,:20,%,n~/.viminfo
--- Options --- backspace=2 encoding=utf-8 formatoptions=qc scrolloff=15 smartindent textwidth=80 visualbell backup expandtab ignorecase shiftwidth=4 syntax=sql ttyfast t_vb= colorcolumn=+1 filetype=sql number showcmd tabstop=4 ttymouse=sgr backupdir=~/.vim/backup comments=s1:/*,mb:*,ex:*/,:--,:// define=\c\<\(VARIABLE\|DECLARE\|IN\|OUT\|INOUT\)\> directory=~/.vim/tmp fileencoding=latin1 fileencodings=utf-8,ucs-bom,default,latin1 matchpairs=(:),{:},[:],<:> omnifunc=sqlcomplete#Complete viminfo='10,"100,:20,%,n~/.viminfo
- 如您所见,我看到了
,因此我尝试将其强制为utf8:fileencoding=latin1
。我保存它:set fileencoding=utf-8
,每当我想重新打开它时,没有任何改变,我仍然必须做所有这些来获得一个具有良好口音的更合适的显示:wq
- 从现在起,我唯一想做的就是保存它,这样我就可以重新打开它,而无需做所有这些来确保它正确。我该怎么办
encoding=UTF-8
和fileencoding=UTF-8
也设置为UTF-8
您可以在vimrc中添加这些行,使其成为默认编码选项。简短回答:我在国际字符显示为时遇到了类似的问题▒, 它是由
:set termencoding=utf-8
详细回答:以下是三个相关设置。通常他们会自动做正确的事情,但如果他们不做,你可以设置他们
- :设置编码-设置用于读取文件的编码
- :设置文件编码-设置保存文件时使用的编码
- :设置termencoding-设置用于向终端显示字符的编码
例如,如果文件为UTF-8,但Vim将其读取为Latin1,同时您的终端为UTF-8,但Vim将其写入终端为Latin1,则可能会出现您描述的奇怪结果。在这种情况下,角色看起来可能是正确的,即使在引擎盖下一切都是错误的。您可以通过将光标放在所讨论的字符上并按
ga
查找其编码值来检查此假设。当您首先:set encoding=utf8
然后:e++enc=latin1 filename
时会发生什么?这不是问题,请告诉我您使用的字体是什么?@源代码Pro ExtraLight 12点为什么?@IngoKarkat它不起作用:我收到的文本像place situÃe avant ou après
啊,所以您的文件不是拉丁文,而是utf-8。所以,让我们试试:设置encoding=utf8
,然后:e++enc=utf-8 filename