vim的乱码问题

Vim、Emacs配置和使用
leixinren
帖子: 96
注册时间: 2006-03-14 21:01
送出感谢: 0
接收感谢: 0

vim的乱码问题

#1

帖子 leixinren » 2006-03-19 17:18

ubuntu中的vim乱码问题一直解决不了,主要是vimtutor里面全部事乱码。今天又出现了一个新的问题,当用vi打开windows下的文本文件退出后连命令输入提示都是乱码了。
附件
Screenshot.png
头像
karron
帖子: 6226
注册时间: 2005-06-11 14:03
来自: 不明真相的群众
送出感谢: 0
接收感谢: 0
联系:

#2

帖子 karron » 2006-03-19 19:34

在你的.vimrc中加上

let &termencoding=&encoding
set fileencodings=utf-8,gbk,ucs-bom,cp936

下面是我的.vimrc,很简单,没有配置太多东西,你可以参考一下。

代码: 全选

set nocompatible

if !exists("syntax_on")
	syntax on
endif

"设置tab字符个数
set tabstop=4
set shiftwidth=4
"自动缩进
set autoindent
"更方便的退格键
set backspace=2

"自动检测文件类型
filetype on

"映射F8为显示列表,需要taglist插件
nnoremap <silent> <F8> :Tlist<CR>

"配色文件
colorscheme inkpot

"对python文件进行特殊设置
if has("autocmd")
	filetyp plugin indent on
	autocmd FileType python setlocal et | setlocal sta | setlocal sw=4
	autocmd FileType python compiler pyunit
	autocmd FileType python setlocal makeprg=python\ %
endif

"字体
if (has("gui_running"))
    set guifont=Bitstream\ Vera\ Sans\ Mono\ 10
endif

"----------------below for txt file
"让文本文件也有高亮,thanks to xbeta@smth
augroup filetypedetect
au BufNewFile,BufRead *.* setf ztxt
augroup END

"缓冲区写入文件的时候自动检查文件类型
au BufWritePost * filet detect

"设定文件编码类型,彻底解决中文编码问题
let &termencoding=&encoding
set fileencodings=utf-8,gbk,ucs-bom,cp936
我的blog,关于技术,软件,linux,vim <---- 所有博客均被河蟹.
leixinren
帖子: 96
注册时间: 2006-03-14 21:01
送出感谢: 0
接收感谢: 0

#3

帖子 leixinren » 2006-03-19 20:14

非常感谢karron
visionP
帖子: 4
注册时间: 2006-04-06 2:30
送出感谢: 0
接收感谢: 0

我按照做了,还是有乱码 :(

#4

帖子 visionP » 2006-04-06 2:33

我用给的.vimrc代替了我的
结果还是有问题,在gvim中用
:set
查看,发现只有 fileencoding=gbk
而 termencoding=utf-8
encoding=enu_cn
这是怎么回事呢?
头像
leal
帖子: 1119
注册时间: 2005-08-29 14:49
来自: 杭州
送出感谢: 0
接收感谢: 3 次
联系:

#5

帖子 leal » 2006-04-06 10:50

试试 :set fileencoding=utf-8

或在vimrc里加入:
set fenc=utf-8 " default fileencoding
set fencs=utf-8,gb18030,gbk,gb2312,cp936,ucs-bom,euc-jp,
用心×恒 | 豆瓣 | 门户 | Blog
wanyan
帖子: 9
注册时间: 2007-03-12 19:41
送出感谢: 0
接收感谢: 0

#6

帖子 wanyan » 2007-03-27 12:55

我的也是啊,第一次打开的时候显示正常,退出的时候,就连命令提示符都是乱码了,之后再用VI打开文件,又是乱码,但再次退出的时候终端显示又正常了~~~
wanyan
帖子: 9
注册时间: 2007-03-12 19:41
送出感谢: 0
接收感谢: 0

#7

帖子 wanyan » 2007-03-27 12:57

不只是中文乱码,连英文都是乱码的,用了上面的方法 ,都不能解决~~~
halve
帖子: 45
注册时间: 2005-09-09 11:32
送出感谢: 0
接收感谢: 0

#8

帖子 halve » 2007-04-24 11:03

以前也常为编码问题折腾 ;)
下面的是比较方便的配置吧,似乎这段配置最好放在 .vimrc 开头,当初在网上看到有人解释过原因,不过现在忘了...
"for encoding
set encoding=utf-8
set fileencodings=ucs-bom,utf-8,chinese
set langmenu=C
language messages C

一般这样设置后,就不会有啥问题了,如果还是乱码,而且你知道内容的编码的话,可以在vim中重新手动设置编码:
:e ++enc=xxx (xxx即vim中对应的编码格式,如繁体一般是big5,简体是cp936...)

如果还有问题,只好 #$^%$#$@#
tintin365
帖子: 88
注册时间: 2007-04-21 12:06
送出感谢: 0
接收感谢: 0

#9

帖子 tintin365 » 2007-04-26 10:27

我的vimrc关于字符集的设定,你可以参考下
windows下:
set encoding=cp936
set fileencodings=ucs-bom,utf-8,cp936
ubuntu下:
set encoding=utf-8
set fileencodings=ucs-bom,utf-8,cp936
区别就在encoding上,windows下默认使用gbk编码,ubuntu下默认的是uft-8 (如果你的ubuntu没有采用默认的utf-8编码,那么第一行就要做相对的修改。
不过用我这个方案在windows下编辑utf-8文件时,菜单还有提示有可能还是乱码,这个时候就要像ls那位xd说的再多设menu等几个值了.
头像
longxj
帖子: 215
注册时间: 2006-10-07 15:17
送出感谢: 0
接收感谢: 0

#10

帖子 longxj » 2007-05-15 20:22

试试将gvim删除,只留下vim
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

#11

帖子 eexpress » 2007-05-16 8:57

退出才乱码的。没办法解决的。是升级造成的。根本和这设置无关。
● 鸣学
头像
windwiny
帖子: 2254
注册时间: 2007-03-13 17:26
送出感谢: 0
接收感谢: 1 次

#12

帖子 windwiny » 2007-05-16 9:38

... vim 在装了 gvim 后,在GNOME 终端进入中文目录运行vim 退出 才会乱码

解决方法有二:
1.删除 gvim ;
2.GNOME 终端新建标签,漂移标签,关掉旧窗口
dirk
帖子: 3
注册时间: 2005-10-24 21:40
送出感谢: 0
接收感谢: 0

#13

帖子 dirk » 2007-10-12 10:11

首先检查是否安装了"vim"这个包,注意,不是其他的扩展包。你可以检查是否有 /usr/bin/vim.basic 这个命令确定是否安装。

然后,你执行 /usr/bin/vim.basic 看看是否会发生乱码问题(我这里没有问题),如果一切OK,更改你的vi和vim指向此程序:

代码: 全选

sudo update-alternatives --config vi
sudo update-alternatives --config vim
stadumpeduren7
帖子: 2
注册时间: 2007-11-01 16:19
送出感谢: 0
接收感谢: 0

#14

帖子 stadumpeduren7 » 2007-11-01 16:24

~/.vimrc 中加上
set fileencodings=utf-8
set termencoding=utf-8
即可
如有其他编码,改成,gbk, gb2312
或者直接用冒号命令行设置
头像
Jarson
帖子: 2371
注册时间: 2008-07-21 9:44
来自: 深圳
送出感谢: 0
接收感谢: 0
联系:

Re: vim的乱码问题

#15

帖子 Jarson » 2008-10-09 19:23

mark,学习了
回复

回到 “Vim和Emacs”