如果你正在为这个烦恼,可能这对你有用,如果想找一些详细的步骤去做,也可参考,不过不要期望太高。详见:http://bbs.chinaunix.net/forum/viewtopic.php?show_type=&p=4135696#4135696
VIM已能正常编辑中文,但运行gvim后,提示:
Gdk-WARNING **: Missing charsets in FontSet creation
Gdk-WARNING **: GBK-0
gvim能运行,就是不能显示和输入中文。
首先解决GBK-0的问题:
#mkdir /usr/X11R6/lib/X11/fonts/mine
#cp /usr/X11R6/lib/X11/fonts/TrueType/simsun.ttc /usr/X11R6/lib/X11/fonts/mine/
#cp /usr/X11R6/lib/X11/fonts/TrueType/tahoma.ttf /usr/X11R6/lib/X11/fonts/mine/
#cd /usr/X11R6/lib/X11/fonts/mine
#mkfontscale -a gbk-0
#mkfontdir
#xset fp+ /usr/X11R6/lib/X11/fonts/mine
#xset fp rehash
此时已经不需要~/.gtkrc 了,不过按下面的.gtkrc写上一个也不错,字体好看一些。
第二步:是在~/.vimrc中加入以下:
colo murphy
"下面一句最关键
set guifont=-misc-simsun-medium-r-normal-*-*-120-*-*-c-*-iso10646-1 set nocompatible set bsdir=buffer
set enc=utf-8
set fenc=utf-8
set fencs=utf-8,ucs-bom,gbk
set langmenu=zh_CN.UTF-8
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
set syn=cpp
set hlsearch
set tabstop=4
set cindent shiftwidth=4
set autoindent shiftwidth=4
set comments=://
set comments=s1:/*,mb:*,ex0:/
set tags=./tags,./../tags,./**/tags
set fileformats=unix,dos
map gk
map gj
set cmdheight=1
if version > 603
set helplang=cn
endi
说 明: guifont 是我改的,适应UTF-8的。我用的是simsun字体,iso10646虽是国家标准,已是unicode的一部分。所以支持UTF-8。 查找-misc-simsun-medium-r-normal-*-*-120-*-*-c-*-iso10646-1 的方法是: 运行gvim,不管菜单是不是乱码,选择编辑菜单里最下面的 选择字体,在弹出的选择框中选iso10646有关的字体。还有几个。 回到gvim,运行命令: :set guifont 就会显示刚才选择的字体,如果选择错了,不显示或乱码,先用鼠标选择后,到别的地方粘贴,就会看到内容了。
具体解释见: http://my.opera.com/yonsan/blog/show.dml/21733
命令xfontsel可以选择字体.
有关的: Xserver / GTK+ 1.x 的中文化
GTK+ 1.x使用的不是fontconfig,而是传统的Xserver的字体渲染程序。这个程序不能自动检测添加的字体,需要列表文件指示。 在/usr/X11R6/lib/X11/fonts/TTF/中,复制常用的TrueType/OpenType字体,如Arial、SimSun等。 然后使用mkfontscale和mkfontdir两条命令就可以为X生成fonts.scale和fonts.dir两个列表文件。 使用FreeBSD 5.4-RELEASE捆绑的Xorg的mkfontscale即可。ttmkfdir-20021109_1识别的simsun的编码更少得可怜。 执行mkfontscale之后,这两个文件中包含simsun字体的gb2312、gb18030甚至日文、韩文等编码,却还是没有gbk。结果就是gtk1的程序中文乱 码,还报错: Gdk-WARNING **: Missing charsets in FontSet creation Gdk-WARNING **: GBK-0 使用zh_CN.GB2312就可以避免这个问题。但这里是zh_CN.UTF-8,不能改。 所以诞生了下面的解决方案。
要让simsun的行包含gbk编码,只需要在生成的时候加一个参数。
mkfontscale -a gbk-0 mkfontdir
然后,设定好gtkrc等文件就可以了。
~/.gtkrc: style
"gtk-default-zh-cn" { fontset=" -*-tahoma-medium-r-normal-*-11-*-*-*-*-*-iso10646-1, -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-iso10646-1, -*-simsun-medium-r-normal-*-12-*-*-*-*-*-*-*, *-r-*" } class "GtkWidget" style "gtk-default-zh-cn"
详见:
http://jackqq.blogchina.com/ http://publishblog.blogchina.com/blog/tb.b?diaryID=2477576 在这儿引用主要为了方便,还要感谢原作者的原创精神,向作者致敬。
续:
上面是用gvim能编辑UTF-8 的中文了,但如果遇到别的编码的如GB2312的怎么办?
我用opera8保存的网页并不是utf8的,用VIM看乱码怎么办?
其实解决的是一个问题,用VIM编辑不同编码的文件.可以在~/.vimrc中加入:
set fileencodings=utf-8,euc-cn,gbk,gb2312,utf-bom,iso8859-1
set encoding=utf8
VIM会自动检测文件是否为fileencodings中指定的编码.然后将其转换为UTF-8编码.但在保存时仍会以原有编码保存.
Vim 用 'encoding' 来设置 vim 识别字符和编码的方法。这个设置对文本使用的地方都有
效,包括缓冲,寄存器和变量.VIM的操作是以encoding为基础的.此encoding应该与环境变量LC_CTYPE指定的一致,否则怎么显示?
配合支持UTF-8的X terminal更加完美
在中文控制台(cce,zhcon)中仍然不能显示我的文件,包括UTF-8文档?
map <F12> :set tenc=euc-cn<cr>
这是手动指定VIM用euc-cn来显示中文.也可以是
map <F11> :set tenc=big5<cr>
上面指定按F11让VIM用 big5码显示文档内容.
无论是euc-cn还是big5,需要控制台的支持,如CCE,ZHCON一般都 支持GBK,BIG5的.
| 最近读者 (登录后,您就出现在这里。这里登陆) | |||||||||
评论读取中...