在GVim中使用所有的Windows字体的方法

  说实话, 一直使用GVIM, 但是没能找到一个在GVIM中能用的好看的字体, 不是因为没有字体, 而是在GVIM不能使用,
GVIM默认在执行:set guifont=*选择字体时只支持等宽字体(貌似也并不是所有的等宽字体都能选择), 这导致很多的字体
不能使用, 而能使用的字体却又显示效果非常差, 很不好看, 反正我是这样觉得, 在Ubuntu下面显示效果很好...
  经测试, 不使用等宽字体,GVIM也能正常工作, 但是这么久以来, 作者为什么没有作修改? 明显, 并不是所有时候都要
使用等宽字体. 虽然Vim是写代码的利器...

  好吧, 说说修改方法(源代码修改):
    1.修改需要用到的工具:VS(VC6,VC2012等貌似都可以)
    2.下载一个你需要的版本的源代码(文件名是vim**src.zip):ftp://ftp.vim.org/pub/vim/pc/
    3.解压出其中的src目录
    4.找到os_mswin.c(以vim74为例)
      找到函数 int get_logfont(LOGFONT    *lf,char_u* name,HDC printer_dc,int verbose);(在第2684行处)

修改 cf.Flags = CF_SCREENFONTS | CF_FIXEDPITCHONLY | CF_INITTOLOGFONTSTRUCT;
为   cf.Flags = /*CF_SCREENFONTS | CF_FIXEDPITCHONLY |*/ CF_INITTOLOGFONTSTRUCT;

      找到函数 static int CALLBACK font_enumproc(ENUMLOGFONT* elf,NEWTEXTMETRIC* ntm,int type,LPARAM lparam);(在第2608行处)
      注释掉以下两行代码,看作者的注释就可以知道.

    /* Ignore non-monospace fonts without further ado */
    //if ((ntm->tmPitchAndFamily & 1) != 0)
    //return 1;

 

    5.用NMAKE重建EXE
      执行命令:nmake -f Make_mvc.mak GUI=yes IME=yes DEBUG=no MBYTE=yes 即可
      关于makefile的命令要求:参考Make_mvc.mak
  
    6.没有了, enjoy!



  如果不想动手的, 可以直接下载我修改后的版本, 我是用VC6.0和NMAKE编译的
  除了以上两个需要修改的地方, 源代码未作其它任何修改
  下载地址:http://pan.baidu.com/s/1bnvlGWv

女孩不哭 @ 2013-06-14 05:33:08 @ http://www.cnblogs.com/nbsofer


有任何问题,请致电 rubble@126.com<br><br>如果你使用 gvim for win32,会遇到不能设置自己意的字体的问题。原因在于官方(www.vim.org)版本的 gvim for win32 只是简单的列出每个字体的一种字体,而不是全部。我做了一下修改,让 gvim 在检索字体时,列出系统所有的字体。这样,set guifont 和 set guifontwide 命令设置字体时,就可以设置系统的任何字体了。<br><br>压缩包里是 gvim 的 ole 版本和不带 ole 的版本,都是基于官方的 7.1.266 制作<br><br>注意事项:<br>1:如果你在 gvim 的命令行上设置字体,enc设置必须是cp936。如果 enc 设置不是 cp936,你将不能在 gvim 的命令行上使用set guifont 和 set guifontwide 来设置名字含有文的字体,比如,enc 为 utf-8,下面的命令是无效的:<br> :set guifont=新宋体:h10<br>gvim会提示找不到字体。但是 enc 的设置不会影响设置字体名字是英文的字体:<br> :set guifont=MingLiu:h10<br>这是可以正常工作的;<br>2:如果你在_vimrc 文件或 _gvimrc 文件设置字体,则这两个文件必须是 cp936 编码的。如果不是,和第一种情况一样,不能设置名字含有文的字体;<br>3:压缩包里有一个设置好的 cp936 编码的_vimrc 文件。<br>这些缺憾有待进一步的工作以消除,并尽快发布修改后的源代码。<br><br>安装方法:<br>1:如果你已经安装了 gvim for win32,则将压缩包里的 gvim.exe 或 gvim_ole.exe(要手工改名为 gvim.exe) 复制到 gvim 的安装目录,覆盖相应的文件即可。<br>2:如果没有安装 gvim for win32 ,请去 www.vim.org 下载 gvim for win32,然后安装。
gvim使用正则表达式进行匹配和替换文本是一种非常强大的编辑功能。首先,确保你的gvim是编译时加入了'+syntax'支持,这样才能使用正则表达式。 要在gvim执行正则表达式替换,你需要使用命令模式(按下 ":" 键),然后输入替换命令。基本的替换命令格式如下: ``` :[range]s/pattern/replacement/[flags] ``` 其各个部分的含义如下: - `[range]`:表示要操作的文本范围,可以是一个数字表示行号,也可以是如`%`代表整个文件,或者`/`代表当前行,或者`'a,'b`表示以标记a和b之间的文本作为范围。 - `s`:表示替换操作。 - `pattern`:是要匹配的正则表达式模式。 - `replacement`:是用来替换匹配到文本的字符串。 - `[flags]`:可以是如下几种标志之一: - `g`:全局替换,即替换行所有匹配项。 - `c`:确认替换,每处匹配都会要求用户确认。 - `n`:数字,指定只替换第n个匹配项。 例如,如果你想替换当前文件所有"hello"为"world",你可以执行如下命令: ``` :%s/hello/world/g ``` 这个命令会在整个文件把"hello"替换为"world",并且是全局替换。 如果你想替换某几行的特定文本,比如替换第5行到第10行所有的"goodbye"为"bye",你可以这样写: ``` :5,10s/goodbye/bye/g ``` 该命令只会对第5行到第10行之间的文本进行替换。 当然,正则表达式还包括许多特殊字符和模式,比如点号`.`表示任意字符,星号`*`表示零个或多个前面的字符,方括号`[]`表示字符集合等等,你可以根据需要使用这些正则表达式的特点来精确匹配和替换文本。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值