网上从来不缺编程字体推荐的文章,当然vim(gvim)字体的推荐文章也是多不胜数,但是大部分都是想当然的认为哪些字体好用就介绍出来,甚至都没有自己亲自试过,也没有考虑过用户使用19英寸的显示器和14英寸的笔记本时对字体的要求到底有什么不同,鉴于以上几点,我决定写这样一篇文章,真正介绍vim(gvim)中最适合的编程字体。 注:由于vimrc中中文字体的设置需要用到中文,所以请务必保证vimrc的编码是gbk格式,如果不是gbk格式,可以通过1.打开vimrc。2.:set fenc=gbk 3.:w。的操作来解决。
一.17~19(或更大)英寸屏幕
1)英文字体:
名字:Bitstream Vera Sans Mono
大小:10px
在vimrc中的配置如下:
set guifont=Bitstream_Vera_Sans_Mono:h10:cANSI
优点:
a)0 O o 1 l ; : 区别非常明显,并且还有一点优势是大家经常会忘记的;:和中文的字体;:区别也很明显,十分适合编程
b)字体圆滑,支持cleartype,加上配色非常舒服,不会有锯齿感
缺点:
说真的,没有。
截图:
2)中文字体
名字:幼圆
大小:10.5(呵呵,真的是10.5,而不是10或者11,只能通过配置文件来实现)
在vimrc中的配置如下:
set gfw=幼圆:h10.5:cGB2312
优点:
a)词库全
b)字体光滑,且支持cleartype
c)字体偏移与Bitstream Vera Sans Mono持平
截图:
下载: 幼圆(由于字体过大,所以使用外链,并不能保证可用,如果链接失效,大家百度或者google一下就行)
二.12(或更小)~14英寸屏幕
1)英文字体:
名字:Arial monospaced for SAP
大小:9px
在vimrc中的配置如下:
set guifont=Arial_monospaced_for_SAP:h9:cANSI
优点:
a)0 O o 1 l ; : 也是区别非常明显
b)字体小且圆滑,支持cleartype,最重要的是它的比划只有一个像素,所以在小屏幕上看起来非常精致。而在12~14英寸屏幕上不使用Bitstream Vera Sans Mono的主要原因就在于,Bitstream Vera Sans Mono的比划太粗,在那么小的屏幕上显得很是臃肿。
缺点:
a)有个很大的问题就是,Arial monospaced for SAP这个字体中的*很靠上,而且()等符号和字母并没有持平,所以看起来很是别扭,所以笔者自己更改了一下,下面会放出下载(原版和修改版都有)
截图:
笔者优化版:
下载: Arial monospaced for SAP(优化版) Arial monospaced for SAP(原版)
2)中文字体
名字:幼圆
大小:10
在vimrc中的配置如下:
set gfw=幼圆:h10:cGB2312
优点:
a)词库全
b)字体光滑,且支持cleartype
c)也只有这个字体能够在12~14英寸屏上依旧显的很精致,和Arial monospaced for SAP相互映衬,感觉非常好
截图:
下载: 幼圆(由于字体过大,所以使用外链,并不能保证可用,如果链接失效,大家百度或者google一下就行)
好啦,到此为止,我所一直使用的字体就介绍到这里了。下面说一下网上盛传的几款字体,根据我在vim(gvim)的真实使用,我谈如下几点体会:
1)关于YaHeiMono 这个字体,组合了微软雅黑, 微软consolas,听起来确实很不错,但是真正用到vim(gvim)中,你会发现,consolas被压缩了,至于原因,是这样的: 我试过将原版的consolas和原版的微软雅黑分别配置到vim(gvim)的英文字体和中文字体中(当然,用的是gvim的重编译版,支持所有字体),但出现的效果就是,微软雅黑明显要比英文consolas偏下一点,整个字体非常难看。如果大家不信,可以尝试一下,呵呵
2)关于中文字体,如果大家又想要微软雅黑的效果,又不想出现我在第一条里出现的问题,又不想重新编译gvim,那么可以试一下方正准圆简体,这款字体的光滑程度和微软不相上下,而且vim(gvim)默认支持哦,但唯一有缺憾的就是这款字体有时候会有点毛边,不过在9号字的时候,没有大碍,10号的话就有点问题了…… OK啦,这篇文章就写到这里,再说一遍哦,我推荐的字体只是测试过Vim(gvim),在别的编辑器上可能效果并不是很好(因为我只用gvim/vim)…… 大家有更好的字体建议,欢迎给我留言啊~~
版权所有,转载请注明出处。https://www.vimer.cn
isunbo on #
你好,我安装了你介绍的字体,英文显示效果很好但是幼圆字体配置不了,提示"无效的guifontwide".百度和Google也没得到结果.请问要怎么办呢?
麻烦了,我刚接触gVim.
我现在把gfw改成Fixedsys了:)
Reply
Dante on #
是这样的,估计你的vimrc文件不是gbk编码吧,vim的脚本编码识别只能支持gbk。
按照如下操作试一下:
1.打开vimrc
2.:set fenc=gbk
3.:w
然后把guifontwide改成幼圆字体就可以啦~
Reply
isunbo on #
谢谢!问题解决了.
原来是
fenc=gbk,ucs-bom,utf-8,chinese,latin-1
现在改成了
fenc=ucs-bom,utf-8,gbk,latin-1
也不知道文字编码的顺序放的对不对.
网站的文章我会都看一遍的.
Reply
Dante on #
呵呵,解决了就好呀。
其实那句这样改也不太对哦,
看一下这篇文章吧,实际上就是VIM检测编码的一个问题~
http://www.vimer.cn/2009/10/87.html
希望对你有帮助
Reply
saner69 on #
vim的脚本也能识别其他编码
脚本最后一行加
vim:fenc=XXXX
Reply
MadPer on #
只能是gbk的吗?我好像一直用的是utf-8的编码...
Reply
Dante on #
呃,我之前用utf-8就会设置不了中文字体……,可能和机器的环境变量有关吧……
Reply
isunbo on #
已经在看了,改过来了,也知道那几个内置变量是什么意思了..
Reply
iThink on #
推荐一款英文字体: Envy Code R
截图及下载: http://damieng.com/blog/2008/05/26/envy-code-r-preview-7-coding-font-released
在vimrc中的配置如下:
set guifont=Envy_Code_R_VS:h10:cANSI
Reply
Dante on #
呵呵,去看了下,的确很不错的一款字体,对编码中容易混淆的字体也做了区分,在10px时候看起来很不错~~
Reply
simba on #
有个报错:'guifontwide' invalid,这个是怎么回事呀
Reply
Dante on #
有两种可能:
1.vimrc中没有设置set enc=utf-8
2.你的vimrc文件不是cp936编码的,vim认不出来
Reply
justzx on #
问题解决没啊?我也有这个错误
Reply
漫步 on #
我喜欢用 YaHei.Consolas.1.12 这款字体, 哈哈...
Reply
Dante on #
这款字体的中文确实看起来非常舒服,我这几天又在家里改字体……主要是觉得12~14屏的字体还有优化的空间~~
Reply
biglynx on #
我也想用,可是怎么用捏
Reply
铁牛仔 on #
我喜欢用Monaco字体,vimrc的设置如下:
set guifont=Monaco:h12:w6.5
不过就是中文显示的效果一般般。不知道是不是因为这个字体本身是不支持中文的缘故。
Reply
Dante on #
呃,是的,因为这些西方字体是不会涉及到双字节编码的,所以,只有英文字符被设计,而对中文字,系统会自动用默认的宋体。
我这几天正在研究把雅黑调整一下,能够让gvim中的中文用雅黑显示,已经改的差不多,近期就打算发出来~~效果还不错,嘿嘿
Reply
易名 on #
我用的修改后的yaheimono,不过字体调到了12号,大屏幕使用的话,我觉得还比较好。
[img]http://6rbu7w.bay.livefilestore.com/y1phfcTEinsdE5Fv3JdkRvSxO0MmU-5ng_wvAtF_rbMEHQieqPgmDGAmjOSvpB5kzb0Ro7AExF0glnCuEkRhzjkMZOT-d7vaVUj/%E5%89%AA%E8%B4%B4%E6%9D%BF01.png[/img]
Reply
Dante on #
呀,看了下,字体的效果确实不错哦,
我记得当时在10px的情况下,英文字体会变得有锯齿,而只用他的中文的话,在Vim中,英文字体和中文字体高度的偏移不一样,所以就没有再用它~
Reply
hsiao on #
很好,不错! 使用幼圆看中文字体!
Reply
Dante on #
嘿嘿,的确不错滴~~~
Reply
rand on #
linux下应该为
set guifont=Arial\ monospaced\ for\ SAP\ 10
set gfw=YouYuan\ 10
Reply
Dante on #
哦,这样啊,感谢指正。
因为我在linux下用的话,一般都是ssh到服务器上去的,所以vimrc中的字体配置本身起不了作用……
Reply
MadPer on #
set gfw=open
...
Reply
Dante on #
哇,难道可以设置远程终端的中文字体吗?怎么设置呀?激动啊
Reply
MadPer on #
不成...这个,语句是我瞎写的...就是,防火长城设为开启....表激动....
Reply
pisces on #
我用的是Lucida Console + 华文黑体
截图见下
http://twitpic.com/1eim14
Reply
Dante on #
杯具,可能我家里网络有问题,你的那个网址怎么都打不开……,我下了那个华文黑体,在windows下的gvim用不了呢,你是在linux下用的?
Reply
fos on #
我改幼圆后,文本里的空格都变成一个个正方框了,怎么回事?是我有什么设置错了吗?盼复。
Reply
fos on #
多试了几个文本,有些会变,有些不会,奇怪了?!什么问题呢?改过编码了,也不行。
原来用NSimSun就没有出现过。
Reply
Dante on #
因为其实对于空格来说是分两种的,你说的那种是双字节编码的空格,在幼圆中是显示为方块的,其实我倒觉得这样比较好,在copy别人的代码的时候,可以一眼发现空格的问题。
Reply
fos on #
谢谢!
Reply
saner69 on #
在vim中使用幼圆体,我也非常喜欢,但在使用中不知为何,会将全角空格显示成方框,一直没找到解决的办法,是不是字库中缺少全角空格,有没有工具可以编辑字体文件,自由添加内容的?
Reply
Dante on #
是有工具的,不过全角空格显示为方框,我倒真的觉得对编程来说是个优点……
可以试一下fontcreator
Reply
saner69 on #
我还用 Vim 做笔记日记等日常的文本处理,不只是写程式,所以有此烦恼,您说的 fontcreator 我下了一个
但不知如何改幼圆体中的全角空格,另外在 VIM 的使用中还一个事情一直困扰着我,那就是中文的打印老
是乱码,网上也没查到好的解决途径,不知您是否有良方,谢谢您的博客。
Reply
Dante on #
中文的打印老是乱码
是什么意思呢?打印到纸上吗?我从来没有用过vim这个功能呢
Reply
saner69 on #
就是打印到纸上,看来是我太执着了,想用一个工具解决所有问题,VIM 打印时能指定行号与行范围的功能真的很不错,只是……
Reply
Dante on #
哇哇,长见识啦~~~我从来没试过呢~~~
呃,是不是文件的编码格式有问题呢?设置成cp936试一下?
还有就是,介不介意把你的打印方法写出来,发到本博和大家分享一下呢?很期待呢
Reply
saner69 on #
打印方法是很简单的:
:hardcopy 打印全文
:hardcopy! 不出打印面板,用默认打印机打印全文
:23hardcopy 打印第23行
:2,23hardcopy 打印2~23行
另我重装了一下VIM,有毛病了,我的编码设置如下:
set enc=utf-8
set fenc=utf-8
原先这样设置菜单是乱码的,需要重设菜单
现在好了,真是奇了,另打印也好了
与原先不同的是我下了官网的 iconv.dll 放在了vim\vim72 下了,是个编码转换库,不知是不是这个原因,有兴趣试试
Reply
saner69 on #
但有个问题,原先>> 能输入一个与》差不多的半角字符,现在不行了,utf-8格式的文件如有一些gbk不支持的字符所有中文都显示乱码,不知如何解决。
Reply
Dante on #
呃,这个字符集的大小问题吧,你下载的幼圆字体文件多大呀?是不是少了很多字符呢……
Reply
simba on #
Bitstream Vera Sans Mono大小设置成10的时候,小写的T太高了,明显不协调。大小设置成11反而更好些
Reply
Dante on #
会吗,我在公司电脑上都是设置成10的哦,感觉挺正常的……
Reply
simba on #
会的。我用的是win7u版,不知道跟这有没有关系
Reply
simba on #
你邮件地址是多少?我把截图发给你看看
Reply
Dante on #
呃,我是XP呢……dantezhu@vip.qq.com,发到这里吧~~
Reply
simba on #
不用了。谢谢。用了博主的雅黑forgvim后,设置set gfw=Yahei_Mono:h10:cGB2312就不再出现这个问题了。谢谢。
Reply
Dante on #
哈哈,好事好事~~~ happy viming~~
Reply
poornigga on #
我想把英文字体设置成cautll, 中文字体设置成微软雅黑, 不知道能不能?如何设置,
Reply
poornigga on #
Catull设置了之后显示不出来效果,
Reply
Dante on #
呃,这个英文字体我没有试过,vim也不是所有字体都支持的~至于怎么设置,可以在我的博客搜索字体或者微软雅黑~
Reply
MadPer on #
Bitstream Vera Sans Mono后来出了个改进版本,叫dejaVa Sans Mono吧,也不错的说~~
Reply
Dante on #
嗯啊,那个字体我用了一下,怎么也没有找出差别,所以就被删掉了……
Reply
MadPer on #
dejaVa Sans Mono添加了对utf-8中其他字符的支持,好像是...
Reply
小骆驼商队 on #
我也喜欢幼圆体……
Reply
zwwooooo on #
这配合很赞
Reply
江湖客 on #
YaheiMono17*17屏幕不花。
Reply
Dante on #
呃,介个。。。不懂。。是说17的字体大小时,显示不清楚?
Reply
cyanue on #
solaris下可以安装Bitstream Vera Sans Mono这个字体吗?
Reply
Dante on #
应该也是可以的,不过没有装过,上面介绍的都是在windows下安装的,linux的话可以试一下Inconsolata,据说是最漂亮的编程字体,在windows下用有点花,不过在linux下据说很完美。
Reply
Ace on #
Linux下设置了好想不起作用阿 字体还是原来的
Reply
lvyiwang on #
我比较喜欢Monospace和幼圆的组合,不过遇到问题了,一个上午也没有解决。(果然,高效的工具想驾驭也不容易啊,不过现在慢慢的体会到它的高效了。)
我的问题是:
~/.vimrc设置成(节选自己认为的相关部分)
set enc=utf-8
set fencs=gbk,gb2312
set gfw=幼圆
set guifont=Monospace
1,于是英文显示M的,中文显示幼圆的,不过幼圆的距离好像太大了。
2,于是我试着改变gfw和guifont后面的参数,不过gwf后面无论加什么,幼圆就不能正常显示了。如果在guifont后面增加参数,那么英文和中文字体的间距就都变大了,无论如何都很难看啊。请问如何设置才能让幼圆和M显示正常,间距要很小的那种,就和你上面贴的一样。
3,我之前用sudo apt-get install vim-gnome的gvim时,在insert状态下backspace是有效的,不过自从用vim7.3的源码安装后,backspace这个键就没用了,打字很不方便,每回要切换模式。
还有,我非常喜欢你的博客^_^,尤其是和vim相关的部分,现在在学校努力学习编程和linux,以后也要用技术去帮助他人。最后,谢谢你和你的博客。
Reply
Dante on #
哈哈,不客气,欢迎交流~~
幼圆的距离变大是因为等宽字体要求中文字的宽度是英文字的两倍,你设置的幼圆字体比较小,所以看起来就间距变大了。。可以把幼圆字体调大一些,不过那样估计就不美观了。。
对于退格键,你可以试一下这个设置:
<pre lang="vim" line="1">
set backspace=indent,eol,start whichwrap+=<,>,[,]
</pre>
Reply
lvyiwang on #
好像基本明白了,谢谢!
Reply
伴随着你 on #
前些天在winxp下用Gvim,想用新宋体怎么都不行,后来发现是_vimrc的文件类型的问题,简单的办法是用记事本另存为的时候文件编码改成ANSI就欧科了。xp里面新宋体显示还是很紧凑的。
p.s. 我一直用ubuntu,vim字体是雅黑宋体。感觉不错~
Reply
Dante on #
我之前都是把vimrc存为cp936才能正常使用中文,后来其实也有个简单的方法,比如宋体就叫songti,可以试一下~~
Reply
alan on #
vimrc使用中文字体名无效的问题也困扰我一段时间了,原来是vimrc的编码问题;
多谢楼上两位指点;
现在用的是方正准圆+droid sans mono。
Reply
流云 on #
请问:linux里vim 的字体应该放到哪个目录下?
Reply
依云 on #
~/.fonts
Reply
云 on #
你好,请问一下,按照你的方法设置字体,就是字母和汉字设置不同字体。
可我这里不行
set fencs=gbk
set gfw=幼圆:h12:cGB2312
"set gfw=幼圆:h10:cANSI
set guifont=Arial_monospaced_for_SAP:h9:cANSI
打开字体菜单后,当前选择的是幼圆,但要点一下确定,才会变成幼圆,请指导一下,谢谢
Reply
Dante on #
呃,这个问题我还真没遇到过。。。是在windows下吗?
Reply
云 on #
是的,在windows下啊
Reply
华年锦时 on #
我也是同样的问题,百思不得其解
Reply
nbsp on #
你好站长,我用vim没多长时间,有几个问题想像您请教下。
1:关于插件怎么安装?除了在配置文件设置外;是直接复制到安装目录下的某些目录还是怎么?
2:那个字体文件直接复制到系统的字体目录下还是gvim下。
Reply
Dante on #
1.放到对应的目录就可以
2.是要装到系统中。。
Reply
nbsp on #
感谢dante百忙之中的回复,我以后会一直来的,
Reply
isprin on #
中文字体是方正幼圆还是微软幼圆
Reply
carry on #
按文章1条说得,配得效果出乎意料的好!字体大小都为12,十分感谢博主
Reply
leyafo on #
谢谢楼主,你给的字体很好用.
Reply
liu on #
你好~我是win7系统,安装了gvim后在_vimrc中没有:set fenc
set nocompatible
source $VIMRUNTIME/vimrc_example.vim
source $VIMRUNTIME/mswin.vim
behave mswin
set diffexpr=MyDiff()
function MyDiff()
let opt = '-a --binary '
if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif
if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif
let arg1 = v:fname_in
if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif
let arg2 = v:fname_new
if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif
let arg3 = v:fname_out
if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif
let eq = ''
if $VIMRUNTIME =~ ' '
if &sh =~ '\ ' . arg3 . eq
endfunction
您看应该怎么弄?谢谢
Reply
异类深呼吸 on #
依云你的邮箱地址能发我下么,我看了你的文章有些地方照做了检查也没什么问题了,但是出不来你的效果,所以想请教下,VIM新人
Reply
aptx4869 on #
关于Arial monospaced for SAP两个版本,有个问题必须报告一下
博主说过“这个字体中的*很靠上,而且()等符号和字母并没有持平,所以看起来很是别扭,所以笔者自己更改了一下”
我在linux下没有用gvim,而是直接在terminal 里面用这字体。一开始用的是修改过的版本,结果会出现[ ] { }等符号过于靠上以至于上段修饰被吃掉的情况,我还以为是fonts.config什么的问题折腾了好久也没弄好……今天突然想起还有两个版本这茬,心想会不会是博主链接放反了,于是下来试了一下,结果被吃掉的部分又出来了……
不过这原版符号的对齐确实也有问题,和博主说的一样*很靠上什么的,[]{}没对齐什么的,结果最后忍无可忍,祭出必杀FontForge什么的……
总结就是博主的修改跟我的系统不兼容,在term里面脑袋被吃掉了,所以根据自己的情况修改字体吧 XD
Reply
findingsea on #
博主,我在vimrc下配置如下:
set guifont=Consolas:h12:cANSI
set guifontwide=YouYuan:h12:cGB2312
set gfw=YouYuan:h12:cGB2312
环境是windows xp
版本是7.3
但是没有效果,英文字体是consolas,但是中文字体不是幼圆。
包括
set guifontwide=幼圆:h12:cGB2312
set gfw=幼圆:h12:cGB2312
我也试过了,还是一样。
博主知道这是为什么吗?
Reply
Dante on #
guifontwide = gfw,写一个就行,不过不生效的确很怪,你 :set guifont=*,手动选择一下,然后 :set guifont,看一下值是什么
Reply
findingsea on #
set guifont是有效的,但是set guifontwide不行,就算在vimrc里面写了,命令模式下:set guifontwide还是为空的
Reply
Joe Ge on #
很棒,终于解决我的问题不。谢谢。
Reply
sailor on #
下载不了。。
Reply