如何在VIM中设置文件的字符编码

7d7tgy0s  于 2023-02-12  发布在  其他
关注(0)|答案(7)|浏览(217)

我使用的是:set fileencoding=utf-8,文件保存正确,但下次打开它时,我得到了乱码,:set fileencoding?说该选项没有设置。
从文档中我了解到我不应该接触encoding选项。
在VIM中为文件指定编码的正确方法是什么?

hyrbngr7

hyrbngr71#

用途

set fileencodings=utf-8

(with一个s在末尾),它可以包含一个不同的编码列表。Vim将尝试列出的编码,从左到右,直到一个工作,它将设置fileencoding为该编码。如果没有工作,fileencoding将设置为一个空字符串,这将导致默认行为。
同样,将它添加到你的vimrc中可能是有意义的,这样你就不会一直这样做了。

qaxu7uf2

qaxu7uf22#

您应该将fileencodings设置为vim在打开文件时应该尝试的不同编码,例如:

set fileencodings=ucs-bom,utf-8,latin1

:help fileencodings开始:
这是一个字符编码列表,在开始编辑一个现有文件时会考虑这些字符编码。当读取一个文件时,Vim会尝试使用第一个提到的字符编码。如果检测到错误,则会尝试列表中的下一个。当找到一个有效的编码时,会将其设置为fileencoding
你最好把这些设置放在你的.vimrc文件中,这样你就不必在每次启动vim时手动输入它们。

eyh26e7m

eyh26e7m3#

您可以将该指令放入文件的注解中:

# vim: set fileencoding=<encoding name> :
fruv7luv

fruv7luv4#

如果vim在打开时不能正确显示文件,请使用**:set encoding=utf8**指定编码

hgb9j2n6

hgb9j2n65#

  • 开放:
vim ~/.vimrc
  • 增加:
set fileencodings=utf-8
set encoding=utf-8
  • 键入以下命令保存并关闭:
:wq
cvxl0en2

cvxl0en26#

我看了很多关于VIM编码的帖子,我发现最重要的窍门是:在打开文件之前,应先打开VIM,然后使用以下命令:edit ++enc= filename.ext它可以处理大多数关于编码和文件编码的问题。
要点包括:
1.您必须正确显示字符集!没有正确显示,任何其他操作都可能导致不可恢复的问题。
1.文件正确显示后,如果需要,可以“:set fileencoding=UTF-8”
:write”,让VIM始终能正确显示。
因为我不是一个英语母语使用者,我想我的方法是可以被验证的。

nwnhqdif

nwnhqdif7#

将以下两个函数添加到.vimrc文件中:

function! Latin()   
  silent! exe "e! ++enc=latin1" 
endfunction

function! Utf8()
  silent! exe "e! ++enc=utf-8" 
endfunction

然后以这种方式调用函数,键入Esc并

:call Latin() 
    
:call Utf8()

相关问题