gvim for php,转 : Gvim建立IDE编程环境 (Windows篇)

说明:本文是作者在完全按照著名的《手把手教你把Vim改装成一个IDE编程环境》一文,在Windows XP上用gvim建立IDE环境时所作的备忘。

原作地址:http://blog.csdn.net/wooin/archive/2007/10/31/1858917.aspx。

1.安装gvim7.2。

运行gvim72.exe,选择完全安装(Full),我的安装目录是默认的C:\Program Files\Vim。

安装完成后,包括了文件夹vim72和文件夹vimfiles,以及脚本_vimrc。

2.安装中文帮助手册。

运行vimcdoc-1.7.0-setup.exe,它会自动找到gvim的安装位置。

安装完毕后重新打开gvim,:help 时帮助手册已经是中文的了。

进行到这一步时,我的gvim菜单处的中文出现了乱码。

在网上寻找解决方案,将C:\Program Files\Vim\vim72下名为 lang 的文件夹删去,使菜单语言变为英语。

3.语法高亮。首先,编辑_vimrc文件加入以下内容:

set nu!

colorscheme desert

syntax enable

syntax on

这些设置使得gvim可以显示行号,并使用了desert配色方案,而且打开了语法高亮功能(用不同颜色显示注释、关键字、字符串等)。

我们还可以让函数名也高亮起来,在C:\Program Files\Vim\vim72\syntax下找到 c.vim 和 cpp.vim,分别添加以下内容:

syn match cFunction "\[^()]*)("me=e-2

syn match cFunction "\\s*("me=e-1

hi cFunction gui=NONE guifg=#B5A1FF

重新打开gvim,效果如下:

help_thumb.jpg

4.程序中跳转。将ec57w32.zip解压,在解压后文件夹中找到ctags.exe,将其复制到C:\ProgramFiles\Vim\vim72下,并编辑_vimrc文件,添加以下内容:

set tags=tags;

set autochdir

打开cmd命令行,切换到你要查看的源代码的根目录处,运行

ctags -R

将会在此目录处生成一个tags文件。

用gvim打开一个代码文件,将光标放到某一函数名上,如下图的UpdateViewByPosNo(),按下"ctrl+]",光标会自动跳转到定义处。

jmp_thumb.jpg

按下"ctrl+T"会跳回到原来的位置。

变量、结构体、宏等等,都可以这样做。

当你的源文件有更新时,只能重新运行ctags -R命令,来更新tags文件。

5.窗口管理。

将taglist_45.zip解压,解压后包含一个doc文件夹和一个plugin文件夹,将其中内容分别复制到C:\Program Files\Vim\vim72下的doc及plugin中。

在_vimrc文件中加入以下内容:

let Tlist_Show_One_File=1

let Tlist_Exit_OnlyWindow=1

用gvim打开代码文件(已生成过tags文件),:Tlist,TagList窗口即出现在左侧。

用相同的方法将winmanager.zip解压和拷贝,在_vimrc文件中加入以下内容:

let g:winManagerWindowLayout=’FileExplorer|TagList’

nmap wm :WMToggle

用gvim打开代码文件,normal状态下输入命令"wm",窗口如下

window_thumb.jpg

其中左上是netrw窗口(浏览文件),左下是TagList窗口,再次输入"wm"时这两个窗口会关闭。

6.多文件编辑。

将minibufexpl.vim复制到C:\Program Files\Vim\vim72\plugin,在_vimrc中添加:

let g:miniBufExplMapCTabSwitchBufs=1

let g:miniBufExplMapWindowsNavVim=1

let g:miniBufExplMapWindowNavArrows=1

当用gvim打开两个或两个以上的文件时,会自动弹出MiniBufExplorer窗口,如下图

mul_thumb.jpg

ctrl+Tab,切换到前一个buffer,并在当前窗口打开文件;

ctrl+shift+Tab,切换到后一个buffer,并在当前窗口打开文件;

ctrl+箭头键,可以切换到上下左右窗口中;

ctrl+h,j,k,l,切换到上下左右的窗口中。

7.快速切换头文件/源文件。

将a.vim复制到C:\Program Files\Vim\vim72\plugin,在_vimrc中添加:

nnoremap :A

用gvim打开源码文件后,按F12即可以在c/h文件中切换,也可以通过输入:A实现。

8.在工程中快速查找。

将grep.vim复制到C:\Program Files\Vim\vim72\plugin,在_vimrc中添加:

nnoremap :Grep

用gvim打开源码文件,并将光标定位到要查找的内容上,按下F3,确定要查找的内容和搜索范围,gvim会在弹出的QuickFix窗口中列出所有符合条件的搜索结果。如下图

search_thumb.jpg

确定查找内容时,支持正则表达式。

9.高亮的书签。

将visualmark.vim复制到C:\Program Files\Vim\vim72\plugin。

用gvim打开源码文件,将光标定位在需要添加书签的地方,按下ctrl+F2,即添加了书签。

mark_thumb.jpg

使用F2在书签之间正向切换,shift+F2反向切换。

为了您的安全,请只打开来源可靠的网址

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/459032.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

1081. Rational Sum (20) -最大公约数

题目如下&#xff1a; Given N rational numbers in the form "numerator/denominator", you are supposed to calculate their sum. Input Specification: Each input file contains one test case. Each case starts with a positive integer N (<100), followe…

CRC8校验分析

*************************************************** 更多精彩&#xff0c;欢迎进入&#xff1a;http://shop115376623.taobao.com *************************************************** CRC即循环冗余校验码&#xff08;Cyclic Redundancy Check&#xff09;&#xff1a;是…

insert mysql后加where,如何在MySQL Insert語句中添加where子句?

This doesnt work:這不起作用:INSERT INTO users (username, password) VALUES ("Jack","123") WHERE id1;Any ideas how to narrow insertion to a particular row by id?任何想法如何通過id縮小插入到特定行?8 个解决方案#120In an insert statement y…

阿里云使用笔记-Lrzsz上传下载文件-centos7

2019独角兽企业重金招聘Python工程师标准>>> 上传文件时提示&#xff1a; -bash: rz: command not found rz命令没找到&#xff1f; 执行sz&#xff0c;同样也没找到。 原来是要安装个叫 lrzsz 的东西&#xff0c;一查可以直接yum。 安装lrzsz&#xff1a;# yum -y …

C#中的DBNull、Null、String.Empty和“”

null可赋值任何变量,将变量置为空 DBNull只用于DataRow对象,表示数据库中的空值 String.Empty是0长度字串 Convert.IsDBNull判断是否为DBNull DBNull.Value与Null的区别 Null是.net中无效的对象引用。 DBNull是一个类。DBNull.Value是它唯一的实例。它指数据库中数据为空(&l…

matlab数值很小出错,求大神帮忙解决一下,用MATLAB求解动力学数据总是出错~ - 计算模拟 - 小木虫 - 学术 科研 互动社区...

CODE:function KineticsEst5 % 动力学ODE方程模型的参数估计%%%% The variables y here are y(1)xB, y(2)xoNB, y(3)xmNB,y(4)xpNB,y(5)xDNB .clear allclck0 [5 5 5 5 5]; % 参数初值lb [0 0 0 0 0]; % 参数下限ub [inf inf inf inf inf]; % 参数上限x0 [0 0 0 0 0 0];Kin…

iOS开发--验证码

第一步&#xff0c;拖两个空间textfiled和button到storyboard上的viewcontroller上。 第二步&#xff0c;拖线&#xff0c;链接到.h文件中代码如下&#xff1a; 1property (weak, nonatomic) IBOutlet UIButton *l_timeButton;第三步&#xff0c;在,m文件中为l_timeButton设置监…

Standard C Episode 8

C语言函数和程序结构 通过函数可以把大的计算任务分解成若干个较小任务&#xff0c;从而使得思路更加清晰&#xff0c;同时函数也大大提高了代码的复用率&#xff0c;提高了工作效率。要注意的是多函数之间应该尽可能地高聚合低耦合。另一方面&#xff0c;一个程序可以保存在一…

C# Socket 编程详解

Microsoft.Net Framework为应用程序访问Internet提供了分层的、可扩展的以及受管辖的网络服务&#xff0c;其名字空间System.Net和 System.Net.Sockets包含丰富的类可以开发多种网络应用程序。.Net类采用的分层结构允许应用程序在不同的控制级别上访问网络&#xff0c;开发人员…

java 线程池 wait,Java 多线程 之 wait等待 线程实例

package com.wait.notify;/**题目: 人们在火车站的售票窗口排队买火车票1. 北京西站开门2. 打开售票窗口3. 北京西站有10张去长沙的票4. 打开2个售票窗口,5 假设每个售票窗口每隔1秒钟买完一张票1. 根据 名词 找类人们(Person), 火车站(Station),火车票(Ticket) , 售票窗口e 是…

002 exercises

求列表全排列lst [1,2,3] l1 [(x,y,z) for x in lst for y in lst for z in lst if x ! y if y ! z if x ! z] print(l1)给定一个非负整数num,重复的加每一位,直到最后只剩下一位例如: num 38,计算过程如下:3 8 111 1 2最后输出结果为2#递归 def add(num):if len(str(num…

(线段树 点更新 区间求和)lightoj1112

链接&#xff1a; http://acm.hust.edu.cn/vjudge/contest/view.action?cid88230#problem/D &#xff08;密码0817&#xff09; Description Robin Hood likes to loot rich people since he helps the poor people with this money. Instead of keeping all the money togeth…

TCP/ip通信模式

TCP/IP 应用层与应用程序*************************************************** 更多精彩&#xff0c;欢迎进入&#xff1a;http://shop115376623.taobao.com *************************************************** 文档出处&#xff1a;http://blog.csdn.net/bingxx11/article…

PHP中判断空的方法,php中类型判断和NULL,空值检查的方法

在一些接口和数据库的设计中。数据库的非必填字段可能为null或者为空。这个时候接口前端javascript去判断的时候就会比较麻烦。为了便于统一的判断。一律把null和 空装换成 空.这样前端的判断就变得简洁 if(aa ){........}建议使用 或者 来判断。。以下是我简短的一个把数据…

8 Regular Expressions You Should Know

2019独角兽企业重金招聘Python工程师标准>>> Regular expressions are a language of their own. When you learn a new programming language, theyre this little sub-language that makes no sense at first glance. Many times you have to read another tutori…

poj 3278 catch that cow BFS(基础水)

Catch That CowTime Limit: 2000MS Memory Limit: 65536KTotal Submissions: 61826 Accepted: 19329Description Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a num…

制作已编译的html帮助文件

http://www.cnblogs.com/cm186man/archive/2008/03/10/1098896.html引用 HTML帮助文档从结构上来看可分为两个部分&#xff0c;运行器和文档内容。它的一个好处是能使帮助文档跨平台运行&#xff0c;只要有不同平台上的运行器和浏览器&#xff0c;帮助文档不再需要重新编制&…

matlab %3c handle,volume browser (updated).htm 源代码在线查看 - Matlab显式三维地震数据的源代码 资源下载 虫虫电子下载站...

Comments: any comments on this error:??? Error using > timesIntegers can only be combined with integers of the same class, or scalar doubles.Error in > interp3>linear at 368 F (( arg4(ndx).*(1-t) arg4(ndx1).*t ).*(1-s) ...Error in > inter…

PHPer转战Android的学习过程以及Android学习

原文作者&#xff1a; eoeadmin原文地址&#xff1a; http://my.eoe.cn/shuhai/archive/19684.html--------------------------------------------这篇文章主要写了一个PHP程序猿是如何转战学习Android的。 第一步&#xff1a;直接跨过java的学习&#xff0c;原因有我之前看过毕…

SQL中实现截取字符串的函数

SQL中实现截取字符串的函数 如果想实现从数据库中取数据时截取一个字段下的内容或者截取一串字符串&#xff0c;则能够实现这种效果的函数有Left&#xff0c;Right&#xff0c;SubString三个函数。1.Left函数&#xff1a;Left&#xff08;character_expression , integer_expre…